ansible-playbook组件-hosts|remote_user|name|tasks

1.ansible-playbook组件

ansible-playbook主要的组件有:

  1. hosts:主机列表
  2. remote_user 远程用户
  3. name  描述任务
  4. tasks:任务
  5. variables:变量
  6. templates:模板
  7. handlers和notity:触发器
  8. 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 

 

posted @ 2023-09-14 17:33  家乐福的搬砖日常  阅读(212)  评论(0编辑  收藏  举报