要練習 Ansible 並控制多臺機器(叢集)的環境,一般透過 VM 虛擬機來模擬多台機器,不過缺點是如果沒有一台資源(CPU、RAM)較多的電腦很難達成,且執行速度相對慢很多,那如果想要練習又不想額外花錢買好的電腦去練習怎麼辦呢?
好佳在 HowHowWen 幫你打造了客制化 container ( 模擬 RH294 紅帽課程練習環境 ), 可以快速創建環境、重置環境及一口氣控制 7 台叢集機器( 1 Cores, 1G 機器都可以使用),還不快手刀來使用 ~~
基本要求:
1. 需具備 Dokcer 及 Docker-compose 能力,如果不知道請自下方連結快去安裝八。
2. 支援 AMD 64、Ppc64le 及 ARM 64 不同核心 (如使用樹梅派請用 ARM 64bit OS 才能使用)
3. 如開啟 selinux 功能需暫停使用
操作方式:
1. 下載下方 Docker-compose.yml,並存放置任意資料夾( lab_example )
2. 執行 docker-compose up -d , 確認叢集均正常啟動
3. 執行 ssh student@10.10.10.10 (密碼: redhat ) ,登入 workstation 機器
4. /home/student/playground/labs 下目錄有課程範例。
5. /home/student/playground/example 目錄下有配置好所有機器的inventory及ansible.cfg,可以做驗證測試。
ps. 請務必在 /home/student/playground 下的子目錄執行,否則停止叢集,將重置資料。
Docker-compose.yml 下載請點我
進階操作:
1. 可以透過下方 howhowwen 寫的 reset 腳本指定特定機器重置
2. 下載後賦予執行權限 chmod +x reset.sh
3. 執行 ./reset.sh servera serverb , 即可重置 servera 及 serverb
ps. 如全部機器都要重置,請直接執行 docker-compose down && docker-compose up -d,比較快~~
reset.sh 腳本下載請點我
客制化自己的執行環境:
0. howhowwen 盡可能打造與虛擬機相同環境:
擁有 systemctl 能力、 所有機器公鑰均同步、 sudo 不用密碼、 開啟 ssh daemon 等功能,所以需要使用privileged權限。
1. 透過下方下載howhow的 Dockerfile 可自行修改,並客制化自己的環境。
Dockerfile 下載請點我
開放原始碼:
GitHub 請點我 ..
DockerHub 請點我 ..
示範DEMO:
- 測試機器規格

- 下載 Docker-compose.yml 及 reset腳本 (可選)至任意目錄

- 執行 docker-compose up -d 啟動叢集

- 待叢集都啟動完畢後,即可使用 student 身份登入 workstation
ssh student@10.10.10.10
,密碼為: redhat
ps.如果啟動docker的作業系統非原生Linux( 使用Mac或是Windows 因為是透過虛擬化技術啟動Docker),無法直接透過輸入IP登入,請使用 docker exec -it 機器名 進入機器內~

- 至 /home/student/playground/example 內使用 Ansible 測試所有機器狀態
ansible all -m ping

- 重置 serverb 及 serverc 機器

- 停止所有機器

操作上限制:
0. 囿於是容器化技術,故與虛擬機擁有實際OS還是有些區別
1. 容器化的機器無法透過 ansible 執行 reboot
2. 容器化的機器無法透過 ansible 執行 selinux
如果覺得內容還不錯,請我喝杯咖啡吧~
One Comment
Comments are closed.