1.開出三台RHEL8機台:
這邊AWS上模擬選則RHEL-8.6.0_HVM-20220503-x86_64–2-Hourly2-GP2
資源大小挑選可以看文件前面(LINK):
Controller : 挑選t3.xlarge(4c16g)
Controller-DB : 挑選t3.xlarge(4c16g)
hub(含hub-DB) : 挑選t2.large(2c8g)
2.設置防火牆:
這部分可以參考文件(LINK):
預計會開得有:
Controller:22/80/443
Controller-DB:5432(實際建置上還是會有22那些)
hub:22/80/443/5432
3.做ssh sync設置(以Controller機當建置主控機):
初步先放檔:
#Controller執行(發動建置設置),先切root身分:
sudo su
cp /tmp/id_rsa /root/.ssh/
chmod 400 /root/.ssh/id_rsa
#Controller再執行(被建置設置),先切root身分:
sudo su
cp /tmp/id_rsa.pub /root/.ssh/
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
#Controller嘗試ssh連自己:
ssh root@{Controller IP}
#Controller-DB機與hub機執行(被建置設置),先切root身分:
sudo su
cp /tmp/id_rsa.pub /root/.ssh/
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys
#然後嘗試由Controller機做ssh連線確認沒問題:
ssh root@{Controller-DB IP}
ssh root@{hub IP}
4.三台進行套建update:
#三台進行套建更新:
sudo yum update -y
跑完畫面大概會看到:
5.hub機上安裝Postgres DB與設置
參考網路上找到的RHEL8安裝PostgreSQL的文件(LINK):
這邊可以注意到Tower建置文建有提到目前搭配的DB版本是PostgreSQL 13
歸結前面經驗,要先在Controller-DB機台上與hub機上分別自建Postgres DB
#在hub機上面執行PostgreSQL安裝:
sudo yum module install postgresql:13/server -y
#初始化數據集群:
sudo postgresql-setup --initdb
#啟動postgresql:
sudo systemctl start postgresql.service
#啟動postgresql自動重啟:
sudo systemctl enable postgresql.service
hub機安裝DB:
接著考量到後面建置inventory檔,要事先針對這兩個DB做一些設置
這部分是在Tower建置文件上完全沒有提到的Postgres相關設置
前篇筆記過程查到的資料,有點像是DB本身的連線權限設置(誰可以連)
hub DB的/var/lib/pgsql/data/pg_hba.conf部分內容要改為:
#hub機調整pg_hba.conf連線DB的允許設定:
sudo vi /var/lib/pgsql/data/pg_hba.conf
#hub機調整postgresql.conf設定:
sudo vi /var/lib/pgsql/data/postgresql.conf
#hub機執行DB服務重啟:
sudo systemctl restart postgresql.service
hub機調整pg_hba.conf連線DB的允許設定:
hub機上pg_hba.conf部分內容調整:
理論上上面設置應該底下那個all那條設到同個subnet就好
但是我機台看起來都是不一樣網段,所以乾脆都加
hub機調整postgresql.conf設定:
hub機執行DB服務重啟:
#然後hub的DB還要設定帳號那些:
sudo su - postgres
(此時會變成postgres身分)
#進入psql console:
psql
#(在psql console)用psql console的指令修改預設帳號的密碼(千萬記得最後要分號;):
alter user postgres with password 'StrongDBPassword';
#或是直接在(在psql console之外):
psql -c "alter user postgres with password 'StrongDBPassword';"
#(在psql console)查看DB連線資訊:
\conninfo
#(在psql console)建立使用者"mydbuser",並給他密碼"mypasswd"
CREATE USER mydbuser WITH PASSWORD 'mypasswd' CREATEROLE CREATEDB;
#離開psql console:
\q
#透過上面建立的帳號mydbuser(密碼是mypasswd)進去建DB,首先用新帳號登到既有DB:
psql -U <dbuser> -h <serverip> -p 5432 <dbname>
#也就是:
psql -U mydbuser -h 127.0.0.1 -d postgres
(然後敲密碼:mypasswd)
#(在psql console)裡面順便建立db-->mydatabase:
CREATE DATABASE mydatabase;
#(在psql console)查看目前既有DB清單:
\l
#(在psql console)離開psql console:
\q
#嘗試用新帳號登入到新DB:
psql -U mydbuser -h 127.0.0.1 -d mydatabase
(一樣要敲密碼mypasswd)
6.Controller-DB機安裝Postgres DB與設置:
參考到預設後面會用到的建置檔,inventory內容
大概這邊只有建的db與帳號會跟上面不太一樣
Controller-DB機一樣建置Postgres DB:
#在Controller-DB機機上面執行PostgreSQL安裝:
sudo yum module install postgresql:13/server -y
#初始化數據集群:
sudo postgresql-setup --initdb
#啟動postgresql:
sudo systemctl start postgresql.service
#啟動postgresql自動重啟:
sudo systemctl enable postgresql.service
畫面省略,跟上面hub一樣
Controller-DB機的DB設定檔調整:
#Controller-DB機調整pg_hba.conf連線DB的允許設定:
sudo vi /var/lib/pgsql/data/pg_hba.conf
#Controller-DB機調整postgresql.conf設定:
sudo vi /var/lib/pgsql/data/postgresql.conf
#Controller-DB機執行DB服務重啟:
sudo systemctl restart postgresql.service
接著Controller機一樣做一個DB調整(根據inventory的DB與帳號名稱):
#然後hub的DB還要設定帳號那些:
sudo su - postgres
(此時會變成postgres身分)
#進入psql console:
psql
#(在psql console)用psql console的指令修改預設帳號的密碼(千萬記得最後要分號;):
alter user postgres with password 'StrongDBPassword';
#或是直接在(在psql console之外):
psql -c "alter user postgres with password 'StrongDBPassword';"
#(在psql console)查看DB連線資訊:
\conninfo
#(在psql console)建立使用者"mydbuser",並給他密碼"mypasswd"
CREATE USER awx WITH PASSWORD 'mypasswd' CREATEROLE CREATEDB;
#離開psql console:
\q
#透過上面建立的帳號awx(密碼是mypasswd)進去建DB(也叫awx),首先用新帳號登到既有DB:
psql -U <dbuser> -h <serverip> -p 5432 <dbname>
#也就是:
psql -U awx -h 127.0.0.1 -d postgres
(然後敲密碼:mypasswd)
#(在psql console)裡面順便建立db-->mydatabase:
CREATE DATABASE awx;
#(在psql console)查看目前既有DB清單:
\l
#(在psql console)離開psql console:
\q
#嘗試用新帳號登入到新DB:
psql -U awx -h 127.0.0.1 -d awx
(一樣要敲密碼mypasswd)
#(在psql console)離開psql console:
\q
7.放置安裝包到Controller機:
這邊內容我貼前一篇的圖,我怎麼拿到安裝包的:
先到RH的Ansible網站(LINK):
目標是嘗試在AWS上面建立60天的試用版Platform
點選右上"FREE TRIAL"
有這些權限:
會要求登入一般個人帳號:
登入後自動下載安裝包:
看起來抓的是更新的bundle版(離線安裝版)
上面網頁往下拉還有很多資源:
也有收到RH的信件通知:
這時候可以看到redhat網頁(LINK):
以上都是上一篇blog的內容,總之就是拿到Ansible Tower的bundle安裝包
其他細節可以看上一篇
我一樣把安裝包丟上Controller機,以Controller機當作建置發動機
#然後搬到root根目錄下來用:
sudo su
cd
mv /tmp/ansible-automation-platform-setup-bundle-2.3-1.tar.gz .
pwd
ls
#解壓縮:
tar zxf ansible-automation-platform-setup-bundle-2.3-1.tar.gz
#進到解出來的目錄內:
cd ansible-automation-platform-setup-bundle-2.3-1
ls
原始的inventory建置設定檔的內容可以看前篇的備份
我這邊直接看建置文建大改(真的跟預設檔差很多)
8.編輯安裝檔”inventory”:
參考建置文件(LINK):
這邊都直接root操作(方便):
我順便學到可以透過vi編輯工具移除檔案全內容方式:
#進到冒號設置打以下:
:1,$d
Enter以後就全空了:
貼入官方範例來改:
9.執行建置:
#在Controller機root帳號下並且在安裝包含有setup.sh目錄下執行:
./setup.sh
這時候發現Controller-DB機又發生怪事:
但是用管理帳號進去看,DB都還在:
然後看看設定檔
#Controller-DB機的pg_hba.conf連線DB的允許設定:
sudo vi /var/lib/pgsql/data/pg_hba.conf
我整個驚呆了,看起來建置過程,Controller-DB的設定都被重置了:
另一個設定檔內容也跟上面不一樣了
#Controller-DB機的postgresql.conf設定:
sudo vi /var/lib/pgsql/data/postgresql.conf
也就是說可以大膽猜測
Controller-DB機的DB或DB User就是不用自己建.....這坑真是...
但是理論上他應該還是要有身分去建要用的DB與DB-User
所以甚至有可能整個Postgres都會自動安裝
但是我這邊沒得試了,建置腳本跑一半才失敗
所以我暫時先移除原本要用的DB(awx)與DB User(awx)
#Controller-DB機我這邊嘗試移除DB與剛剛建立的awx這個db user:
sudo su - postgres
#進到psql console模式:
psql
#(在psql console模式)移除DB:
DROP DATABASE awx;
#(在psql console模式)移除DB User:
dropuser --if-exists awx;
不過可以注意到上面移除DB User沒回應,有可能沒成功!?
然後重跑件置:
如上又看到Controller機連不上Controller-DB機上的DB,密碼有問題
這時候去Controller-DB機上確認
沒錯,awx這個DB User還在(或可能建置的時候又自己建立)
但是密碼被改掉了:
#所以手動進去調整他的密碼:
sudo su - postgres
#進到psql console:
psql
#(在psql console模式下)調整awx這個DB User的密碼:
alter user awx with password 'mypasswd';
#(在psql console模式下)離開console模式:
\q
#嘗試用awx這個User登入既存DB:
psql -U awx -h 127.0.0.1 -d postgres
(敲密碼mypasswd)
\q
#嘗試用awx這個User登入剛剛移除的db->awx:
psql -U awx -h 127.0.0.1 -d awx
(敲密碼mypasswd)
\q
再繼續回Controller機重新建置,大約半小時後看到以下畫面:
上面紅色錯誤已經洗到老遠了,但是應該是可以忽略的錯誤
這時候確定可以到Controller機的Web
一樣做到這邊,這三台直接移除