2022年12月23日 星期五

在 RHEL / CentOS 9 上使用 Podman 安裝 Wordpress

學習目標:
  • 在 RHEL / CentOS 9 上使用 Podman 安裝 Wordpress CMS 系統
安裝設定流程:
  1. 安裝 podman 套件:
    # yum install -y podman
    
  2. 啟動 podman 服務:
    # systemctl enable --now podman
    
  3. 設定 8085 port 為 Wordpress 對外服務的 port,所以在建立 pod 時,指定 8085 對內部的 container 80 port:
    # podman pod create --name wordpress-pod -p 8085:80
    # firewall-cmd --add-port=8085/tcp
    # firewall-cmd --runtime-to-permanent
    # podman pod start wordpress-pod
    
  4. 建立並啟動 MariaDB 的 container :
    # podman run -d \
    --pod wordpress-pod \
    -e MYSQL_ROOT_PASSWORD="mysql" \
    -e MYSQL_DATABASE="wordpress" \
    -e MYSQL_USER="wordpress" \
    -e MYSQL_PASSWORD="mypassword2W3E" \
    --name=wordpress-database mariadb
    
  5. 建立並啟動 Wordpress 的 container :
    # podman run -d \
    --pod wordpress-pod \
    -e WORDPRESS_DB_NAME="wordpress" \
    -e WORDPRESS_DB_USER="wordpress" \
    -e WORDPRESS_DB_PASSWORD="mypassword2W3E" \
    -e WORDPRESS_DB_HOST="127.0.0.1" \
    --name wordpress-web wordpress
    
  6. 查看 container 運作情況:
    # podman ps
    # podman pod list
    
  7. 使用瀏覽器,開啟 http://localhost:8085,即可開啟全新的 WordPress 安裝流程。

參考文獻:
  1. https://kamadiam.com/wordpress-on-podman/
  2. https://frankknow.com/woo-ecpay-settings/
  3. https://podman-desktop.io/docs/getting-started/getting-started

2022年12月4日 星期日

在 CentOS / RHEL 8上安裝 389 Directory Server

學習目標:
  • 安裝企業級 LDAP 服務:389 Directory Server (389 DS)
安裝設定流程:
  1. 安裝 389 DS 基礎套件:
    # yum upgrade
    # dnf copr enable @389ds/389-directory-server
    # dnf install 389-ds-base cockpit-389-ds
    # yum install cockpit*
    
  2. 開啟瀏覽器,登入 https://localhost:9090 網址,選擇 389 Directory Server,按下 Create New Instance 按鍵:

  3. 輸入相關欄位資料,用來建立新的實例:

  4. 更改主機名稱設定:

  5. 在按下 Save Setting 之後,記得按 Action 進行重新啟動~~
  6. 切換至 Database 標籤,按下 Create Suffix :

  7. 輸入資料之後,按下 Create Suffix:

  8. 確定 Suffix 是否被建立:

  9. PS: 若不想使用 Cockpit 企面,可在啟動 389 DS 之前,利用編寫基本設定檔,導入系統中:
    # vim /root/instance.inf
    [general]
    config_version = 2
    
    [slapd]
    root_password = 這裡放管理者密碼
    
    [backend-userroot]
    sample_entries = yes
    suffix = dc=example,dc=com
    
    # dscreate from-file /root/instance.inf
    
  10. 開啟防火牆設定:
    # firewall-cmd --add-port={389/tcp,636/tcp}
    # firewall-cmd --add-port={389/tcp,636/tcp} --permanent
      
  11. 查詢運作中的 389 DS Server
    # dsctl ds1 status
    Instance "ds1" is running
    

使用方式:
  1. 在本機上設定管理 389 DS Server:
    # vim ~/.dsrc
    [ds1]
    # Note that '/' is replaced to '%%2f'.
    uri = ldapi://%%2fvar%%2frun%%2fslapd-ds1.socket
    basedn = dc=example,dc=com
    binddn = cn=Directory Manager
    
  2. 新增使用者: (系統上並不需要建立該使用者帳號)
    # dsidm ds1 user create
    Enter password for cn=Directory Manager on ldaps://ds1.example.com:
    Enter value for uid : alice
    Enter value for cn : Alice
    Enter value for displayName : Alice User
    Enter value for uidNumber : 1000
    Enter value for gidNumber : 1000
    Enter value for homeDirectory : /home/alice
    Sucessfully created alice
    
    # dsidm ds1 user get alice
    
參考文獻:
  • https://directory.fedoraproject.org/docs/389ds/howto/quickstart.html
  • https://directory.fedoraproject.org/docs/389ds/download.html
  • https://www.techsupportpk.com/2020/04/how-to-set-up-389-directory-server-centos-rhel-8.html
  • https://access.redhat.com/documentation/en-us/red_hat_directory_server/12
  • 2022年12月2日 星期五

    在 CentOS / RHEL 9上安裝 Quay 服務

    學習目標:
    • 架設 Quay 服務,用來放置容器印象檔。
    • 與 Quay 配合的服務,包含 PostgreSQL、Redis、Podman 等服務。
    安裝設定流程:
    1. 安裝 PostgreSQL 服務:
        # yum install -y postgresql-*
        # postgresql-setup initdb
        # vim /var/lib/pgsql/data/pg_hba.conf
          host  all   all   0.0.0.0/0  md5
          host  all   all   ::1/128       md5
        # vim /var/lib/pgsql/data/postgresql.conf
          listen_addresses = '*';
        # systemctl enable --now postgresql
        
    2. 新增 PostgreSQL 內的資料庫給 Quay 使用:
        # su - postgres
        $ psql
        postgres=# \password postgres
        postgres=# CREATE USER quay WITH PASSWORD 'quay123';
        postgres=# CREATE DATABASE quay;
        postgres=# ALTER DATABASE quay OWNER TO quay;
        postgres=# GRANT ALL PRIVILEGES ON DATABASE quay TO quay;
        postgres=# \connect quay;
        quay=# ALTER SHCEMA public OWNER TO quay;
        quay=# GRANT ALL PRIVILEGES ON SCHEMA public TO quay;
        quay=# CREATE EXTENSION IF NOT EXISTS pg_trgm;
        quay=# \q
        $ exit
        #
        
    3. 測試連結 PostgreSQL Server:
        # psql -U quay -d quay -h 127.0.0.1
        quay=> \q
        #
        
    4. 安裝 Redis 服務:
      # yum install -y redis-*
      # vim /etc/redis/redis.conf
      requirepass quay
      bind * -::1
      # systemctl enable --now redis
      
    5. 設定防火牆:
      # firewall-cmd --add-service=http
      # firewall-cmd --add-service=https
      # firewall-cmd --add-service=postgresql
      # firewall-cmd --add-service=redis
      # firewall-cmd --runtime-to-permanent
      
    6. 安裝 Podman 容器服務:
      # yum install -y podman container-tools
        
    7. 登入 Registry Server:
      # podman login registry.redhat.io
        
    8. 安裝 Quay 服務,並且進行初始化設定:
      # podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.7.10 config secret
        
    9. 打開瀏覽器,輸入網址:http://localhost
    10. 在畫面中,輸入帳號密碼:quayconfig / secret

    11. 設定首頁的 Title 名稱:

    12. 設定 Quay 主機名稱:

    13. 設定連結 PostgreSQL 相關資料:

    14. 設定連結 Redis 相關資料:

    15. 按下 Validate Configuration Changes 用來驗證資料是否正確:

    16. 驗證成功之後,下載設定檔,並且停止 quay_config 容器的運作:
      # podman stop quay_config
        
    17. 將下載的設定檔,解開至指定的資料夾內:
      # mkdir -p /opt/quay/config
      # cp ~/Downloads/quay-config.tar.gz /opt/quay/config
      # cd /opt/quay/config
      # tar xvf quay-config.tar.gz
           
    18. 建立一個資料夾,用來存放容器印象檔:
      # mkdir -p /opt/quay/storage
      # setfacl -m u:1001:-wx /opt/quay/storage
           
    19. 佈署一個新的 Quay 服務:
      # podman run -d --rm -p 80:8080 -p 443:8443  \
         --name=quay \
         -v /opt/quay/config:/conf/stack:Z \
         -v /opt/quay/storage:/datastorage:Z \
         registry.redhat.io/quay/quay-rhel8:v3.7.10
           
    20. 打開瀏覽器,輸入網址名稱,例如:http://registry.example.com

    21. 下拉網頁至下方,點選「Creaet Account」建立一個管理者帳號:

    22. 登入後,即可開始使用:

    23. 為 Quay 建立一個系統服務,設定開機時可立即啟動:
      # podman stop quay
      # podman create -p 80:8080 -p 443:8443  \
         --name=quay \
         -v /opt/quay/config:/conf/stack:Z \
         -v /opt/quay/storage:/datastorage:Z \
         registry.redhat.io/quay/quay-rhel8:v3.7.10
      # podman images
      # podman generate systemd --new --files --name quay
      # cp -Z container-quay.service /etc/systemd/system
      # systemctl daemon-reload
      # systemctl enable --now container-quay.service
        
    24. 可修改相關設定,讓 QUAY 更安全:
      # vim /opt/quay/config/config.yaml
      FEATURE_ANONYMOUS_ACCESS: false
      SETUP_COMPLETE: true
      SUPER_USERS:
        - admin
      FEATURE_USER_CREATION: false
      # systemctl restart container-quay.service
      # restorecon -Rvv /opt/quay/
        
    參考文獻:
  • https://github.com/quay/quay/blob/master/docs/quick-local-deployment.md
  • https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/proc_auto-generating-a-systemd-unit-file-using-podman_assembly_porting-containers-to-systemd-using-podman
  • https://blog.stderr.at/quay/2020-05-13-quay-tutorial1/