playbook
playbook与临时命令
临时命令是一次性对一组目标主机运行的简单任务
playbook是对指定的主机运行一组指定的任务,playbook是一个文本,其中包含多组按特定顺序完成的列表
playbook中运用到YAMl语言
以为要用yaml语言所以要在受控主机上安装python36及以上版本
系统版本 | IP地址 | 主机名 | 服务 | |
---|---|---|---|---|
控制节点 | RedHat8.2 | 192.168.56.129 | control | ansible |
受控主机 | RedHat8.2 | 192.168.56.130 | server1 |
格式化Ansible Playbook
编写playbook:
[root@control playbook]# touch user.yml //先创建一个以.yml结尾的文件
[root@control playbook]# ls
user.yml
[root@control playbook]vim user.yml
--- #开头格式
- name: test #: 后面可有可无
hosts: 192.168.56.130 #受控主机地址
tasks: #项目列表
- name: creart user for YY #项目名称
user: #user模块
name: mmm #用户名
uid: 1007 #uid
state: present #执行创建用户
[root@control book]# ansible-playbook playbook/user.yml
PLAY [192.168.56.130] **********************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.56.130]
TASK [creart user for YY] ******************************************************
changed: [192.168.56.130]
PLAY RECAP *********************************************************************
192.168.56.130 : ok=2 changed=1 unreachable=0 failed=0 //错误 skipped=0 rescued=0 ignored=0
[root@server1 ~]# id mmm //在server1主机上查看
uid=1007(mmm) gid=1007(mmm) groups=1007(mmm)
[root@server1 ~]#
[root@control book]# cat playbook/user.yml
---
- name:
hosts: 192.168.56.130
tasks: #项目列表
- name: creart user for YY #项目名称
user: #user模块
name: mmm #名字
uid: 1008 #修改用户id
state: present #执行创建用户
playbook格式
Playbook是以YAML格式编写的文本文件,通常使用扩展名yml保存
Playbook使用空格字符缩进来表示数据结构。
YAML对用于缩进的空格数量没有严格的要求,但有两个基本的规则:
- 处于层次结构中同一级别的数据元素(例如同一列表中的项目)必须具有相同的缩进量。
- 如果项目属于其他项目的子项,其缩进量必须大于父项
只有空格字符可用于缩进,不允许使用tab键。约定俗成的缩进量一般是一级2个空格。
Playbook开头的一行由三个破折号(—)组成,这是文档开始标记。其末尾可能使用三个圆点(…)作为文档结束标记,尽管在实践中这通常会省略。
在开头(—)和结尾之间的项目由(-)开头 例如:
---
- name
- grepe
- orange
...
在同一play中的键应当使用相同的缩进,显示了三个键的yaml代码片段
[root@control book]# cat playbook/user.yml
---
- name: //
hosts: 192.168.56.130 #受控主机IP
tasks: #项目列表
- name: creart user for YY
user:
name: