天天看點

ansible-playbook

yaml的基本元素

變量

Inventory

條件測試

疊代

playbook的組成結構;

modules

Ad hoc Command

playbooks

tasks:任務

variables:變量

template:模闆

handler:處理器

roles:角色

基本結構:

- hosts:webservers

  remote_user:

  tasks:

  - task1

module_name:module_args

  - task2

第一個playbook

- hosts: webservers

  remote_user: root

  - name: create test group

group: name=test system=yes gid=222

  - name: create test user

user: name=test uid=222 group=test system=yes

- hosts: dbservers

  - name: copy file to dbservers

copy: src=/etc/inittab dest=/tmp/inittab.ans

執行個體二:handlers的使用

  vars:                  ##定義變量

  - package: httpd

  - service: httpd

  - name: install httpd package

yum: name=` package ` state=latest    ##{{}}引用變量

  - name: install configuration file fro httpd

copy: src=/root/httpd.conf dest=/etc/httpd/conf/httpd.conf

notify:              ##定義配置檔案修改後觸發的handlers。

- restart httpd      ##定義handlers的名稱

  - name: start httpd service

service: name=` service ` state=started

  handlers:          ##定義handlers

  - name: restart httpd  ##定義handlers的名稱要于上面notify中定義的保持一緻

service: name={{  service }} state=restarted

條件測試:when:

- hosts: all

  vars:

  - username: user10

  - name: create ` username `  user

user: name=` username`

when: ansible_fqdn == "centos6.5"

疊代:

調用:item

定義循環清單:with_items

- name: add server users

  user: name=` item`.`user ` state=present groups=` item`.`groups `

  with_items:

   -{ name: 'testuser1',groups: 'whell' }

   -{ name: 'testuser2',groups: 'root' }

tags:在playbook可以給某個任務定義一個标簽,在執行playbook的時候可以使用--tags實作隻運作某一個tasks。

ansbile-playbook test.yml --tags="service"

     本文轉自阿倫艾弗森 51CTO部落格,原文連結:http://blog.51cto.com/perper/1979384,如需轉載請自行聯系原作者

繼續閱讀