作为我的Ansible playbook的一部分,我从内部存储库中安装了一个RPM。这个RPM包含一堆配置。对于我的大多数机器,我不需要更改此配置。但是,对于由ansible组定义的小子集,我需要修改一些配置字段。
我假设我需要做一些事情:
或者可能有更好的方法来实现这一目标。任何人都可以建议我如何实现我的总体目标吗?
答案 0 :(得分:0)
你的四步程序对我来说很好看。也许在修改配置之前不必停止服务。
我创建了一个Ansible角色,其中定义了必要的任务。该角色的基础结构由ansible-galaxy init命令创建。
ansible-galaxy init my_role
可以使用Ansible's template module修改(或生成)配置文件:
- name: Modify the configuration file
template: src=myconf.cnf.j2 dest=/etc/myconf.cnf
when: "'my_group_name' in group_names"
notify: Restart the service
它仅对属于my_group_name
组的主机运行。必须在myconf.cnf.j2
目录中找到模板my_role/templates
。只有在任务中通知Restart the service
处理程序时,才会重新启动该服务。处理程序需要放到my_role/handlers/main.yml
文件:
- name: Restart the service
service: name=service_name state=restarted