Ansible(自动化运维工具--playbook)

一、什么是playbook

ansible-playbook是一系列ansible命令的集合,就像执行shell命令与写shell脚本一样,也可以理解为批处理任务利用yaml 语言编写。playbook命令根据自上而下的顺序依次执行。

play的主要功能在于将事先归并为一组的主机装扮成事先通过ansible中的task定义好的角色

二、playbooy剧本主要有三部分组成:

1、hosts部分:使用hosts指示使用哪个主机或主机组来运行下面的tasks,每个playbook都必须指定hosts,hosts也可以使用通配符格式。主机或主机组在inventory清单中指定,可以使用系统默认的/etc/ansible/hosts,也可以自己编辑,在运行的时候加上-i选项,指定清单的位置即可

2、remote_user:指定远端主机中的哪个用户来登录远端系统,在远端系统执行task的用户,可以任意指定,也可以使用sudo,但是用户必须要有执行相应task的权限。

3、tasks:指定远端主机将要执行的一系列动作。tasks的核心为ansible的模块,前面已经提到模块的用法。tasks包含name和要执行的模块,name是可选的,只是为了便于用户阅读,不过还是建议加上去,模块是必须的,同时也要给予模块相应的参数。

[root@ansible ansible]# cat test.yml 
#创建测试文件
- hosts: web  #主机组或主机名
  remote_user: root  #设置执行任务的用户
  tasks:
        - name: create files  #任务名字
          shell: touch /tmp/bin/test{100..120}  #执行的任务

三、示例

1、安装Samba服务

[root@ansible ansible]# cat samba_server.yml 
# install samba
- hosts: web
  remote_user: root
  tasks:
        - name: yum install samba server.
          yum: name=samba state=latest

执行结果:

2、不同主机安装不同服务:

[root@ansible ansible]# cat servers.yml 
# install server
- hosts: 192.168.64.129
  remote_user: root
  tasks:
        - name: yum install nginx server.
          yum: name=nginx state=latest
- hosts: 192.168.64.131
  remote_user: root
  tasks:
        - name: yum install vsftpd server.
          yum: name=vsftpd state=latest

 

 

 

posted @ 2018-06-10 18:13  Damien1  阅读(392)  评论(0编辑  收藏  举报