详解ansible批量管理服务(8)

第二个历程,编写剧本

[root@m01 ansible_playbook]#vim sersync_auto.yaml 
- hosts: sersync_server
 tasks:
  - name: 安装rsync
   yum: name=rsync state=installed
  - name: 将sersync传输到客户端
   file: src=/usr/local/sersync_installdir_64bit/sersync/ dest=/usr/local
  - name: 将写好的配置文件传输到客户端
   copy: src=/usr/local/sersync_installdir_64bit/sersync/conf/confxml.xml dest=/usr/local/sersync/conf/
  - name: 加上执行权限
   file: path=/usr/local/sersync/bin/sersync mode=a+x
  - name: 创建软链接
   file: src=/usr/local/sersync/bin/sersync path=/usr/local/sbin/sersync state=link
  - name: 启动sersync 测试实时同步
   shell: sersync -dro /usr/local/sersync/conf/confxml.xml

恢复环境剧本

[root@m01 ansible_playbook]#cat sersync_backup.yaml
- hosts: sersync_server
 tasks:
  - name: 卸载rsync 
   yum: name=rsync state=removed
  - name: 删除sersync
   file: path=/usr/local/sersync

2 多个剧本如何进行整合

第一个历程: 确保每个剧本执行成功第二个历程: 进行剧本整合方法一:不建议使用

[root@m01 ansible_playbook]#vim zhenghe.yaml # ---角色里使用
- hosts: all
 remote_user: root
 tasks:
  - include_tasks: nfs_auto.yml
  - include_tasks: rsync_auto.yml
# 不写hosts信息,只写任务信息

方法二:在以后的ansible中可能会取消include功能

[root@m01 ansible_playbook]#vim zhenghe.yaml 
- include:nfs_auto.yml 
- include:rsync_auto.yml

方法三:建议使用这个方法

[root@m01 ansible_playbook]#vim zhenghe.yaml 
- import_playbook: nfs_auto.yaml   
- import_playbook: rsync_auto.yaml

3 ansible剧本编写方式:角色

(1)规范ansible程序目录结构(2)汇总剧本中有定义的主机信息

3.1 角色调用流程图

3.2 nfs服务角色编写

第一个历程: 创建角色目录结构

cd roles/;mkdir {nfs,rsync,web,sersync} 
cd nfs/{vars,tasks,templates,handlers,files}
# vars:   定义变量信息
# tasks:   定义任务信息
# templates: 定义模板文件(jinja2模板文件)
# handlers: 定义触发器信息
# files:   定义需要分发的文件
      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1594.html