ansible系列第三篇(ansible-playbook使用)

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

    歡迎關注本人的微信公衆號:
    ansible系列第三篇(ansible-playbook使用)

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