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
tasks:
- 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' }