天天看點

ansible 文法

在控制端裡編寫腳本,執行之前最好儲存目前快照或者先使用測試環境,如果出現錯誤可以及時恢複!

在管理機上使用yum子產品控制兩台被管理機安裝tree軟體

ansible ceshiji -m yum -a 'name=tree state=installed'

ansible 文法

驗證安裝

ansible 文法

在管理機上使用yum子產品控制兩台被管理機解除安裝tree軟體

ansible ceshiji -m yum -a 'name=tree state=absent'

ansible 文法

驗證解除安裝

ansible 文法

下載下傳ansible一個檢查文法的工具

​yum -y install search ansible-lint.noarch

子產品以及yaml文法補充

通過 Ansible 提供的用于遠端執行指令的 command、shell、raw、script 子產品,我們可以将被管理節點的 IP/計算機名資訊寫入 Ansible 的“演員”inventory——/etc/ansbile/hosts,将要執行的指令編排成 Ansible 的 playbook,然後運作這個 playbook 就可以達到遠端配置的目的了。

command、shell、raw、script 子產品有什麼差別呢?

command 和 shell 子產品都依賴 Python 解析器,而 raw、script 這兩個子產品不依賴 Python,直接調用目标用戶端的/bin/sh 來執行指令。如果目标用戶端安裝了 Python,而且要執行的指令很簡單,不涉及特殊的 shell 符号,可以考慮 command 子產品,如果涉及重定向等特殊 shell 符号則要用 shell 子產品;如果目标用戶端沒有安裝 Python,就隻能考慮用 raw 或者script 子產品,如果臨時組裝 shell 指令清單,則使用 raw 子產品,如果在 Ansible 控制器上已經編寫好 shell腳本檔案,需要發送到用戶端去執行,則應該使用 script 子產品。

playbook 又是什麼?

playbook字母意思是劇本,劇本裡寫清楚了哪個演員什麼時候應該說什麼台詞、做什麼動作、展現什麼神情等,電影、電視劇是按照劇本來拍攝的。Ansible 裡的 playbook 作用就跟拍電影的劇本一樣,把要執行的指令、任務在 playbook 裡編排好,然後 Ansible 執行這個 playbook,Ansible的“電影”就這樣“拍攝”完成了。由此可見,掌握 playbook 的編排對于掌握 Ansible 的應用有多重要!電影劇本有分幕、場(景)、鏡等結構,Ansible 的 playbook 也分結構,類似于:

playbook #相當于總劇本

|----play #相當于場景劇本

 |----tasks #相當于分鏡頭劇本

 |----pre_tasks #相當于拍攝前準備工作:布置場景,演員化妝等,執行環境的準備

 |----tasks #相當于開始拍攝,要執行的指令清單

 |----post_tasks #相當于拍攝完清場工作:撤換場景,演員卸/換妝等,執行環境的清理

ansible 文法

關于更多的文法資訊可以參考文檔:

​​​https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html​​​YAML 1.1:https://yaml.org/spec/1.1/

YAML 1.2:https://yaml.org/spec/1.2/spec.html

Ansible playbook 的樣例:https://github.com/ansible/ansible-examples

​​​https://blog.csdn.net/qq_51625703/article/details/124364414​​

Command 子產品

功能:在遠端主機執行指令,此為預設子產品,可忽略-m選項

注意:此指令不支援 $VARNAME < > | ; & 等,用shell子產品實作

ansible 文法