Ansible中Playbook的光速教程

什麼是Playbook?

playbook是由一個或者多個模塊組成的, 使用多個不同的模塊, 完成一件事。

playbook通過yaml語法來識別描述的狀態文件, 擴展名爲yaml

Playbook的三個語法特點

縮進

YAML使用一個固定的縮進風格表示層級結構, 每個縮進由兩個空格組成, 不能使用Tab

冒號

除了以冒號爲結尾的以外, 其他所有的冒號後面必須要有空格。

短橫線

  • 表示列表項, 使用一個短橫線加一個空格。
  • 多個項使用同樣的縮進級別作爲同一列表。

一個安裝Httpd的簡單實例:

# ansible install httpd

- hosts:    # 這裏是需要安裝的機器列表, 也可以是ansible配置好的組名
  - 192.168.199.110
  - 192.168.199.180
  tasks:    # 任務塊
    - name: install httpd server   # 描述信息
      yum:    # ansible 模塊
        name: httpd,lrzsz  # 需要安裝的軟件名稱 
        state: installed   # 執行動作
    - name: start httpd server
      service:
        name: httpd
        state: started
        enabled: yes

Playbook 常用到的關鍵字

hosts

hosts這一塊的內容一個或者多個組或主機, 以逗號爲分隔符, 或者也可換行寫。

例子如下:

兩種寫法, 都可:

- hosts: web
  remote_user: root   # 遠程執行的用戶
  sudo: yes   # 是否使用sudo
  sudo_user: lanyulei   # 登陸到遠程機器後sudo到其他用戶

或者

- hosts:
  - 192.168.1.1
  - 192.168.1.2

如果你需要在使用sudo時指定密碼, 可在運行ansible-playbook命令時加上選項--ask-sudo-pass(-K)

如果使用sudo時, playbook疑似被掛起, 可能是在sudo提示處被卡住, 這時可執行Control-C殺死卡住的任務, 再重新運行一次。

點擊查看完整文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章