Ansible之ansible-playbook roles

剛開始學習運用 playbook 時,可能會把 playbook 寫成一個很大的文件,到後來可能你會但願這些文件是能夠方便去重用的,因此須要從新去組織這些文件。nginx

  基本上,使用 include 語句引用 task 文件的方法,可容許你將一個配置策略分解到更小的文件中。使用 include 語句引用 tasks 是將 tasks 從其餘文件拉取過來。由於 handlers 也是 tasks,因此你也能夠使用 include 語句去引用 handlers 文件。handlers 文件來自 ‘handlers:’ section。學習

  Playbook 一樣能夠使用 include 引用其餘 playbook 文件中的 play。這時被引用的 play 會被插入到當前的 playbook 中,當前的 playbook 中就有了一個更長的的 play 列表。code

  假如你但願在多個 play 或者多個 playbook 中重用同一個 task 列表,你能夠使用 include files 作到這一點。 當咱們但願爲系統定義一個角色時,使用 include 去包含 task 列表是一種很好用的方法。須要記住的是,一個 play 所要達成 的目標是將一組系統映射爲多個角色。it

將一整個playbook文件改寫成採用roles完成

  先看目錄層級關係:io

tree ./nginx
./nginx
├── hosts                       # 主機清單inventory文件
├── roles                       # roles角色目錄
│   └── nginx
│       └── tasks               # nginx角色的tasks
│           └── main.yml        # nginx角色要執行的tasks的yaml文件
└── site.yml                    # 這個playbook的主入口

  分別查看每個文件的內容:配置

nginx/hosts文件:file

[nginx]
172.16.1.10

nginx/site.yml文件:service

---
- hosts: all
  gather_facts: no

  roles:
    - nginx

nginx/roles/nginx/tasks/main.yml文件:語法

---
- name: Install Nginx
  yum: name=nginx state=present
- name: Start Nginx Service
  service: name=nginx state=started

檢測語法

ansible-playbook -i hosts site.yml --syntax-check

playbook: site.yml

執行playbook

ansible-playbook -i hosts site.yml

PLAY [all] ***************************************************************************************************************************************

TASK [nginx : Install Nginx] *********************************************************************************************************************
ok: [172.16.1.10]

TASK [nginx : Start Nginx Service] ***************************************************************************************************************
ok: [172.16.1.10]

PLAY RECAP ***************************************************************************************************************************************
172.16.1.10                : ok=2    changed=0    unreachable=0    failed=0
相關文章
相關標籤/搜索