RPM安装后Ansible修改文件

时间:2016-02-06 01:54:23

标签: configuration rpm ansible-playbook ansible-2.x

作为我的Ansible playbook的一部分,我从内部存储库中安装了一个RPM。这个RPM包含一堆配置。对于我的大多数机器,我不需要更改此配置。但是,对于由ansible组定义的小子集,我需要修改一些配置字段。

我假设我需要做一些事情:

  1. 等到我的RPM已安装且“正在运行”
  2. 停止服务
  3. 以某种方式修改配置文件?使用when子句将其限制为我想要修改的组。
  4. 重新启动服务
  5. 或者可能有更好的方法来实现这一目标。任何人都可以建议我如何实现我的总体目标吗?

1 个答案:

答案 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