Ansible的Playbook使用YAML编写,YAML的语法规则如下:
YAML文件中的第一行为“---”,表示这是一个YAML文件; YAML中的字段大小写敏感; YAML与Python一样,使用缩进表示层级关系; YAML的缩进不允许使用Tab键,只允许使用空格,且空格的数目不重要,只要相同层级的元素左侧对齐即可; “#”表示注释,从这个字符一直到行尾都会被解析器忽略。
YAML支持三种格式的数据,分别是:
对象:键值对的集合,又称为映射,类似于Python中的字典; 数组:一组按次序排列的值,又称为序列(sequence),类似于Python中的列表; 纯量(scalars):单个的、不可再分的值,如字符串、布尔值与数字。Playbook示例一:
针对centos6系统安装mysql-server,使用shell模块启动mysql服务;
centos7系统安装mariadb-server,使用yum模块启动mariadb服务;
--- - hosts: web # gather_facts: True tasks: - name: install mariadb in centos7 yum: name=mariadb-server state=present when: ansible_distribution_major_version == "7" - name: start mariadb in centos7 service: name=mariadb state=started enabled=yes when: ansible_distribution_major_version == "7" - name: install mysql in centos6 yum: name=mysql-server state=present when: ansible_distribution_major_version == "6" - name: start mysql-server in centos6 shell: /etc/init.d/mysqld start when: ansible_distribution_major_version == "6" |