Ansible - 執行 Ad-Hoc 命令
Contents
Ad Hoc 是一個拉丁文常用短語,意思是指定或是特殊的任務,在 Ansible 中如果指定單一任務執行,可以使用 ad hoc 命令快速完成指定的任務。
練習環境
可以使用 HowHow 的創建 Lab 練習環境,來操作多台機器練習 Ansible,使用方式請參閱 HowHow 網站。
1. Ad-Hoc 命令
Ad hoc 一次僅能執行一個 task ,對於測試及驗證是個非常方便的好工具。
1.1 執行方式
使用 ansible 命令並指定任務的模組即可快速使用
|
|
-host group : 表示要執行哪台機器或是群組( inventory 清單內 )
-m : 指定的 ansbile 模組
-a : 模組的參數 (有些模組不需要加參數)
1.2 ping 範例
執行最簡單的模組 ping 範例
|
|
Note
需先配置好 inventory 及 ansible.cfg。
2. 如何有效使用 module 在 Ad-Hoc 命令?
Ad-Hoc 快速又很方便,不過對於不熟的模組要下手就很些棘手,不過透過 ansible-doc 可以快速查閱使用方式及模組使用的範例。
2.1 ansible-doc 查詢
ansible-doc 是快速查詢的手冊,加上 l 參數可以查看目前機器上有哪些模組名稱及簡單說明。
|
|
2.1 ansible-doc 查看 ping 模組
使用 ansible-doc 加上模組名稱,查看模組詳細使用方式,試者查詢 ping 模組內容。
|
|
3. 模組摘要
Ansible 模組非常的多,除了官方本身開發的模組、協力廠商開發及第三方社區開發的模組,以下僅摘要幾些模組。
3.1 檔案模組:
- copy: 複製本地檔案至控制端機器
- file: 設定檔案權限
- lineinfile: 增減文字至檔案內
3.2 管理套件模組:
- yum : 使用 YUM 套件管理工具
- apt : 使用 APT 套件管理工具
- pip : 安裝 Python 套件
3.3 系統模組:
- firewalld : 管理防火牆開啟關閉 port 或 services
- service : 管理 systemctl 服務
- user : 增刪及管理使用者
3.4 網路模組:
- get_url : 從網路資源下載檔案至被控端機器
- nmcli : 管理系統網路
Note
Ansible 官方網站模組列表連結請點我。
4. LAB 練習
4.1 LAB
- 下載 Lab 檔案,如果已經下載可以忽略此步驟。
|
|
- 使用 deploy-adhoc 專案,以 Ad-Hoc 執行 yum_repository 模組,在所有機器增加兩個倉庫來源,並以寫入 ad-hoc.sh,以腳本方式執行。
倉庫來源列表
|
|
yum_repository 模組範例 :
|
|
- name: add BaseOS repo
yum_repository:
name: BaseOS
description: BaseOS
baseurl: http://mirror01.idc.hinet.net/rockylinux/8.5/BaseOS/x86_64/os/
- name: add AppStream repo
yum_repository:
name: AppStream
description: AppStream
baseurl: http://mirror01.idc.hinet.net/rockylinux/8.5/AppStream/x86_64/os/
4.2 LAB 解答
參考解答在 deploy-adhoc/solution 資料夾內。
|
|
|
|
Quote
如果使用 HowHow 的 Lab 環境,可以再練習前或是練習後,於 bastion 機器上輸入
rht-vmctl reset <server name>
重置機器,恢復原始環境。5. 小結
善用 ansible-doc 可以很快速的查閱模組的使用,並透過 ad-hoc 命令執行單一任務驗證。建議多開個終端機一個專門查閱 ansible-doc ,可以幫助使用者快速查閱及使用。
如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!