1 编写剧本规范:
1.1 官方链接
http://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
遵循pyyaml语法

1.2 语法说明
YAML基础
列表的所有成员都是以相同的缩进级别开头的行,并以(破折号和空格)开头:”- “

---
# A list of tasty fruits
- Apple
- Orange
- Mango
...

字典以简单的形式表示:key: value

# An employee record
martin:
    name: Martin D'vloper
    job: Developer
    skill: Elite
(冒号后面必须有一个空格)

更复杂的混合数据结构

# Employee records
-  martin:
    name: Martin D'vloper
    skills:
      - python
      - perl
-  tabitha:
    name: Tabitha Bitumen
    skills:
      - lisp
      - fortran

YAML示例

name: Martin D'vloper
employed: True
foods:
    - Apple
    - Mango
languages:
    perl: Elite
    pascal: Lame
education: |
    4 GCSEs
    3 A-Levels

单引号和双引号之间的区别在于,在双引号中可以使用转义符:

foo: "a \t TAB and a \n NEWLINE"

变量使用“ {{var}}”。

foo: "{{ variable }}"

补充:必须使用空格分隔ansible剧本级别,一定不要使用tab键进行分割

1.3 剧本执行方法

ansible-playbook /etc/ansible/ansible-playbook/test.yaml
ansible-playbook -C /etc/ansible/ansible-playbook/test.yaml

2 语法示例
1.2 rsync一键部署

[root@xxxx ~]# cat /server/tools/rsync.yml
# command play-book
- hosts: 172.16.1.41
  tasks:
    - name: step01:install rsync
      yum: name=rsync state=installed
    - name: step02:edit rsync conf file
      copy: src=/etc/ansible/conf/rsync_conf/rsyncd.conf dest=/etc/
    - name: step03:create rsync user
      user: name=rsync state=present createhome=no shell=/sbin/nologin
    - name: step04:create auth file
      copy: src=/etc/ansible/conf/rsync_conf/rsync.password dest=/etc/ mode=600
    - name: step05:create backup dir
      file: dest=/backup state=directory owner=rsync group=rsync
    - name: step06:boot rsync server
      shell: rsync --daemon creates=/var/run/rsyncd.pid

- hosts: 172.16.1.31
  tasks:
    - name: step01:create auth file
      copy: src=/etc/ansible/conf/rsync_conf/rsync_client.password dest=/etc/rsync.password mode=600
文档更新时间: 2023-08-11 07:02   作者:月影鹏鹏
IT运维支持-AIWALY-月影工作室