ansible playbook
-
編寫劇本需要遵循YAML語法。
- YAML語法:
進行縮進時,必須使用空格進行縮進。 第一行使用三個橫槓作爲開始。 "---" 表示文檔開始。 第二行使用"-"作爲開頭(橫槓後面有空格), 表示一個塊序列的節點。 在YAML語法中使用冒號映射鍵值對時,冒號後面要有空格。 可同時寫多個主機,每臺主機用逗號隔開。
- 編寫playbook劇本:
$ cat ping.yaml --- - hosts: test remote_user: yuan tasks: - name: ping host ping: - name: mkdir test directory file: path: /testdir/test state: directory
- 檢查和調試劇本:
語法檢查: $ ansible-playbook --syntax-check ping.yaml 調試劇本: $ ansible-playbook -S -R root --check ping.yaml 調試劇本不會在被控機真正執行。只是模擬是否能正常執行劇本。
- 運行劇本:
$ ansible-playbook -S -R root ping.yaml 一個playbook是由一個或多個play組成的。 每個play在執行時都先執行一個默認任務(Gathering Facts)會收集當前play對應的目標主機的相關信息。收集完信息,才執行指定的任務。
- 編寫一個安裝nginx的playbook劇本:
$ cat nginx.yaml --- - hosts: test remote_user: yuan tasks: - name: add nginx keys apt_key: url: http://nginx.org/keys/nginx_signing.key state: present - name: nginx add source.list deb url lineinfile: path: /etc/apt/sources.list line: "deb http://nginx.org/packages/ubuntu/ xenial nginx" - name: add deb-src url lineinfile: path: /etc/apt/sources.list line: "deb-src http://nginx.org/packages/ubuntu/ xenial nginx" - name: nginx apt: name: nginx state: latest update_cache: yes - name: start nginx systemd: name: nginx state: started
歡迎關注本人的微信公衆號: