ansible的playbook模式的简介

playbook与之前介绍过的ansible自带的命令行中加-m的那些模块有所不同,playbook使用YAML编写的脚本,比之前的更加灵活功能更加强大。

playbook的模式简介

在ansible官方网站提供了一个配置httpd的一个yaml脚本案例,如下

#选择的主机组,比如写在/etc/ansible/hosts下的组
- hosts: webserver
#定义的一些参数
  vars:
    user: www
    group: www
    maxclients: 2000
    DocumentRoot: /var/www/html
#远程控制的用户,使用root,如果是别的用户权限不够需要使用sudo
  remote_user: root
#被控制的主机所需要执行的任务  
  tasks:
#-name为这个任务的名称
  - name: ensure apache is at the latest version
#安装模块 
    yum: pkg=httpd state=latest
  - name: Apache config file
#template模块用于传送文件,这里是配置文件
    template: src=/home/zyc/httpd.conf.bak dest=/etc/httpd/conf/httpd.conf
#一旦配置文件修改,触发服务重启
    notify:
    - restart apache
#service模块,开启httpd模块
  - name: ensusre apache is running
    service: name=httpd state=started
  handlers:
    - name: restart apache
      service: name=httpd state=restarted

我们检查语法错误的时候可以使用

ansible-playbook /home/zyc/httpd.yml --list-hosts --list-tasks

执行写好的yaml脚本使用如下脚本

ansible-playbook -i /etc/ansible/hosts(主机组) httpd.yml(脚本文件名)

返回的结果为如下

PLAY [webserver] ***************************************************************

TASK [Gathering Facts] *********************************************************
ok: [172.25.254.41]
ok: [172.25.254.45]

TASK [ensure apache is at the latest version] **********************************
changed: [172.25.254.41]
changed: [172.25.254.45]

TASK [Apache config file] ******************************************************
ok: [172.25.254.41]
ok: [172.25.254.45]

TASK [ensusre apache is running] ***********************************************
changed: [172.25.254.41]
changed: [172.25.254.45]

PLAY RECAP *********************************************************************
172.25.254.41              : ok=4    changed=2    unreachable=0    failed=0   
172.25.254.45              : ok=4    changed=2    unreachable=0    failed=0   

你可能感兴趣的:(运维)