Configuration 在RPM安装后修改文件

Configuration 在RPM安装后修改文件,configuration,rpm,ansible-playbook,ansible-2.x,Configuration,Rpm,Ansible Playbook,Ansible 2.x,作为Ansible playbook的一部分,我从内部存储库下载并安装了RPM。这个RPM附带了一系列配置。对于我的大多数机器,我不需要更改此配置。然而,对于由ansible组定义的一个小子集,我需要修改一些配置字段 我假设我需要这样做: 等待我的RPM安装并“运行” 停止服务 是否以某种方式修改配置文件?使用when子句将其限制为我要修改的组 重新启动服务 或者可能有更好的方法来实现这一点。有人能建议我如何实现我的总体目标吗?我觉得你的四个步骤很好。也许在修改配置之前不必停止服务 我将创建一个

作为Ansible playbook的一部分,我从内部存储库下载并安装了RPM。这个RPM附带了一系列配置。对于我的大多数机器,我不需要更改此配置。然而,对于由ansible组定义的一个小子集,我需要修改一些配置字段

我假设我需要这样做:

  • 等待我的RPM安装并“运行”
  • 停止服务
  • 是否以某种方式修改配置文件?使用when子句将其限制为我要修改的组
  • 重新启动服务

  • 或者可能有更好的方法来实现这一点。有人能建议我如何实现我的总体目标吗?

    我觉得你的四个步骤很好。也许在修改配置之前不必停止服务

    我将创建一个负责定义必要任务的角色。角色的基本结构由命令创建

    可以使用以下方法修改(或生成)配置文件:

    它将仅对属于
    my\u group\u name
    组的主机运行。模板
    myconf.cnf.j2
    必须从
    myu角色/templates
    目录中找到。只有在任务中通知处理程序重新启动服务时,才会重新启动服务。处理程序需要放入
    my_role/handlers/main.yml
    文件:

    - name: Restart the service
      service: name=service_name state=restarted
    

    嗨,谢谢你的建议。这对我很有效。我也发现了为什么我的服务开始了。我使用runit,它默认启动服务。我必须进行配置更改以确保它已关闭。现在工作流程开始工作了。
    - 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
    
    - name: Restart the service
      service: name=service_name state=restarted