详解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: 定义需要分发的文件
内容版权声明:除非注明,否则皆为本站原创文章。