ansible-playbook
简介
playbooks记录并执行Ansible的配置、部署和编排功能。使用yaml格式,文件以yaml或者yml结尾
官方网站:https://docs.ansible.com/ansible/latest/user_guide/playbooks.html#working-with-playbooks
yaml语言
YAML(Yet Another Markup Language)不是标记语言,它是适用于所有编程语言的人类友好数据序列化标准。
使用 YAML 是因为它比 XML 或 JSON 等其他常见数据格式更易于人类读写。此外,大多数编程语言中都有可用于 YAML 的库。
yaml官网: https://yaml.org/
ansible官网:https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
play语法简介
语法简介:
几乎每个 YAML 文件都以列表开头。列表中的每一项都是一个键/值对列表,通常称为“哈希”或“字典”。
所有 YAML 文件(无论它们是否与 Ansible 关联)都可以选择---以...,表示文档的开始和结束。
列表的所有成员都是以相同缩进级别开头的行,以破折号和空格开头:"- "。
字典以简单的形式表示(冒号后面必须跟一个空格):key: value。
次行一般书写文件内容、缩进严格、大小写敏感。
key/value可以多行书写也可一行书写,一行书写用,隔开。
value可以是个字符串,也可是list。
一个play需要包括name和tasks,name 是描述;tasks 是动作。
一个name只能包含一个task。
扩展名称yml或者yaml。
例:
cat yml_file/sshd.yml
---
- name: change sshd file # 前面有横线就是列表
hosts: 192.168.1.1 # 需要执行的主机,可以时IP地址,主机名,inventory组名
gather_facts: false # 不收集facts变量
vars: # 设置变量,key-value形式,也可以使用vars_files指定文件的形式
port: 9222 # 单个变量的键值对
users: # 单个key对应多个值
- user01
- user02
tasks: # ansible任务
- name: add port # 任务名称
lineinfile: # 使用的模块
path: /etc/ssh/sshd_config
insertafter: '^#Port 22'
line: 'Port {{ port }}'
backup: yes
- name: add permit user # 第二个任务
lineinfile:
path: /etc/ssh/sshd_config
line: 'allowusers {{ users | join(" ") }}' # 使用join函数连接所有的value值
state: present
notify: rest sshd # 触发定义的handlers,表示执行该模块成功后触发
handlers:
- name: rest sshd
service:
name: httpd
state: restarted
标签:sshd,name,YAML,value,yaml,ansible
From: https://www.cnblogs.com/kkit/p/18336205