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/
  • 2022年11月30日 星期三

    設定 Keycloak 連結 PostgreSQL Server

    學習目標:
    • 設定 KeyCloak 的資料,存放於 PostgreSQL 上!
    • 需要先架設好 Keycloak 服務,可參考這一篇
    安裝設定流程:
    1. 請參考前一篇的安裝設定
    2. 在第四個步驟,啟動 keycloak 之前,編輯設定檔內容:
      # vim /opt/keycloak-20.0.1/conf/keycloak.conf
      db=postgres
      db-username=keycloak
      db-password=XXXXXXXXXX
      db-url=jdbc:postgresql://127.0.0.1/keycloak
      (只修改需要的!修改好之後,存檔離開。)
      
    3. 登入 PostgreSQL Server ,建立新的使用者與資料庫。
      # psql -h 127.0.0.1 -U postgres -d postgres
      Password for user postgres: 
      postgres=# CREATE USER keycloak WITH PASSWORD 'XXXXXXXXXX';
      postgres=# CREATE DATABASE keycloak;
      postgres=# GRANT ALL PRIVILEGES ON DATABASE keycloak TO keycloak;
      postgres=# \connect keycloak;
      keycloak=# ALTER SCHEMA public OWNER TO keycloak;
      keycloak=# \q
      
    4. 設定完成後,即可啟動 Keycloak 服務。接下來的步驟,請參考前一篇內容

    2022年11月19日 星期六

    在 CentOS/RHEL 上架設 KeyCloak Server

    學習目標:
    • 在 CentOS/RHEL 作業系統上,安裝 KeyCloak 服務!
    • 需要先架設好 CentOS/RHEL 作業系統
    安裝設定流程:
    1. 安裝相關必要軟體安裝工作!
      # yum -y epel-release
      # yum -y upgrade
      # reboot
      
    2. 安裝 OpenJDK 套件:
      # yum -y install java-17-openjdk-*
      
    3. 取得 KeyCloak 套件軟體!
      # cd /opt
      # wget https://github.com/keycloak/keycloak/releases/download/20.0.1/keycloak-20.0.1.zip
      
    4. 進行安裝與設定 KeyCloak Server 工作!
      # unzip keycloak-20.0.1.zip
      # cd keycloak-20.0.1/
      # export KEYCLOAK_ADMIN="admin" (管理者帳號,可以自訂)
      # export KEYCLOAK_ADMIN_PASSWORD="a123456" (管理者密碼,可以自訂)
      # bin/kc.sh start-dev &
      
    5. 開啟瀏覽器,輸入 http://localhost:8080

    6. 點選網頁中的「Administration Console」出現下列的登入畫面,輸入上兩個步驟所自訂的管理者帳號密碼:

    7. 登入後的畫面如下所示:

    8. 設定防火牆
      # firewall-cmd --add-port=8080/tcp --permanent
      # firewall-cmd --reload
      
    9. 設定服務啟動檔:
      # cd /etc/systemd/system
      # vim keycloak.service
      [Unit]
      Description=KeyCloak Service
      After=multi-user.target
      
      [Service]
      ExecStart=/usr/bin/bash /opt/keycloak-20.0.1/bin/kc.sh start-dev
      Type=simple
      
      [Install]
      WantedBy=multi-user.target
      (存檔後離開)
      
    10. 測試是否可以正常啟動
      # kill %1
      # systemctl daemon-reload
      # systemctl start keycloak.service
      # systemctl status keycloak.service -l
      # systemctl enable keycloak.service
      
    11. 重新登入 http://localhost:8080 查看是否可以登入

    使用 Keycloak 官方測試程式進行測試:
    1. 以管理者帳號登入 Keycloak 系統
    2. 在最左方下拉選單中,按下「Create Realm」按鈕

    3. 在 Realm name 櫚位內,輸入想要的名稱。確認 Enabled 欄位是 On 的狀態後,按下「Create」按鈕即可。

    4. 在已新增的 Realm 內,選擇「Users」項目。在右邊畫面中,按下「Create new user」按鈕。

    5. 在 Username 欄位內,輸入新增的使用者帳號,以及相關的訊息。最後再按下「Create」按鈕。

    6. 選擇 Credentials 標籤,選下「Set password」按鈕

    7. 連續輸入兩次密碼之後,Temporary 選擇「Off」,再按下「Save」按鈕之後,再於確認視窗內,按下「Save password」。

    8. 在左方選單中,選擇 Clients 選項,再按下右方「Create client」按鈕

    9. 在 Client type 欄位中,選擇「OpenID Connect」,在 Client ID 中,輸入想要的名稱,再按下「Next」按鈕。

    10. 接下來的畫面中,在 Authentication flow 欄位內,勾選 Standard flow 選目,然後按下「Save」按鈕。

    11. 接下來的畫面中,選擇右邊 Access settings 選項,再輸入 Valid redirect URIs 以及下方的 Web origins,最後按下「Save」按鈕。

      Valid redirect URIs: https://www.keycloak.org/app/*
      Web origins: https://www.keycloak.org
      
    12. 在溜覽器上開新的分頁,網址輸入:https://www.keycloak.org/app/,進入測試頁面。
    13. 在 Keycloak 的測試頁面中,輸入相關的訊息,再按下「Save」按鈕。

    14. 接下來的畫面,按下「Sing in」按鈕。

    15. 畫面將轉回本地端的 Keycloak 登入畫面,輸入剛才新增的使用者帳密後,再按下「Sign In」按鈕。

    16. 畫面將轉到 Keycloak 官方測試站台,如下圖,表示自架的 Keycloak Server 有成功運作。



    參考文獻:
    • https://www.keycloak.org/getting-started/getting-started-zip
    • https://linuxhandbook.com/create-systemd-services/