ansible-playbook组件-hosts|remote_user|name|tasks
1.ansible-playbook组件
ansible-playbook主要的组件有:
- hosts:主机列表
- remote_user 远程用户
- name 描述任务
- tasks:任务
- variables:变量
- templates:模板
- handlers和notity:触发器
- tags:标签
2.ansible-playbook hosts组件
ansible远程执行playbook指定任务的主机列表,需事先在hosts文件中指定主机列表清单。默认路径:/etc/ansible/hosts
[webservers] alpha.example.org beta.example.org 192.168.1.100 192.168.1.110 [dbservers] db01.intranet.mydomain.net db02.intranet.mydomain.net 10.25.1.56 10.25.1.57
3.ansible-playbook remote_user组件
准备:创建admin用户
[root@localhost home]# useradd admin
配置admin密码
[root@localhost home]# passwd admin
主节点添加目标节点的SSH认证信息
ssh-copy-id admin@192.168.235.147
执行user.yml
[root@localhost home]# cat user.yml --- - hosts: webservers remote_user: admin tasks: - name: file file: name=/home/admin/admin.txt state=touch ...
测试ansible-playbook
[root@localhost home]# ansible-playbook -C user.yml
在root用户下ping,admin用户下创建文件
[root@localhost home]# cat demo.yml --- - hosts: webservers remote_user: root tasks: - name: pingtest ping: tasks: - name : create new file remote_user: admin file: name=/home/admin/2.txt state=touch
4. ansible-playbook name组件
用于指定任务的名称。这个名称可以在整个playbook中唯一地标识该任务。
5. ansible-playbook tasks组件
tasks 任务列表
指定远端主机将要执行的ansible任务。tasks的核心为ansible的模块,tasks包含name和要执行的模块,name是可选的,只是为了便于用户阅读,模块是必须的,同时也要给予模块相应的参数。
在tasks任务列表中,一个name指定的就是一个task任务。在任务列表下面有一个或多个任务,每个任务只能对应一个ansible模块,执行顺序为由上到下。
--- - hosts: dbsrvs remote_user: root tasks: - name: install httpd #task任务描述 #调用yum模块安装httpd服务 yum: name=httpd - name: start httpd #task任务描述 #调用service模块启动httpd服务并设置开机自启 service: name=httpd state=started enabled=yes