Configuration ansible基础架构代码:创建、更新、删除配置文件中的用户 太长,读不下去了

Configuration ansible基础架构代码:创建、更新、删除配置文件中的用户 太长,读不下去了,configuration,ansible,configuration-as-code,Configuration,Ansible,Configuration As Code,我希望我们的基础设施上的用户能够准确地反映我提供给ansible的配置文件(json) 一种快速而简单的方法是: 删除所有用户 重新创建所有用户 但这意味着在每次部署时,用户都会消失片刻,这必须避免!更好的方法可能是: 列出基础设施上的所有用户 创建缺少的用户 更新所有用户(确保他们使用json文件中的最新配置) 删除所有其他用户 虽然我可能可以手动实现,但这似乎相当麻烦。使用ansible是否有更简单的实现方法 长话短说 我们正在使用ansible配置我们的基础架构。例如,创建用户时,

我希望我们的基础设施上的用户能够准确地反映我提供给ansible的配置文件(json)

一种快速而简单的方法是:

  • 删除所有用户
  • 重新创建所有用户
但这意味着在每次部署时,用户都会消失片刻,这必须避免!更好的方法可能是:

  • 列出基础设施上的所有用户
  • 创建缺少的用户
  • 更新所有用户(确保他们使用json文件中的最新配置)
  • 删除所有其他用户
虽然我可能可以手动实现,但这似乎相当麻烦。使用ansible是否有更简单的实现方法

长话短说 我们正在使用
ansible
配置我们的基础架构。例如,创建用户时,主要任务如下所示:

- name: import users
  uri:
    url: "{{ '%(url)s/users/user/%(user)s'|format(
        url=url,
        user=user
      ) }}"
    method: PUT
    user: "{{ configuration_user }}"
    password: "{{ configuration_password }}"
    force_basic_auth: yes
    body_format: json
    body: "{{ lookup('template', item) }}"
    status_code: 200, 201
  vars:
    user: "{{ item | basename | regex_replace('.json','') }}"
  with_fileglob:
    - security/users/*.json
因此,我们只是使用
PUT
方法来创建/更新用户。这种方法的困难:

  • 基础结构必须提供创建/更新方法(
    PUT
    POST
    带有覆盖选项或类似选项)
  • 当用户被删除时,我们删除了相应的json文件,再次运行ansible脚本不会删除该用户

什么系统中的用户?我不认为Ansible是你想要的工具,不管是什么系统。对我来说,这似乎是相当标准的API用法:我有一个用户配置文件的列表user-a.json,user-b.json。在系统上,用户a和用户c已经存在,我想创建b,更新a(和b)并删除c。在我的例子中,这至少适用于mongodb atlas和elasticsearch,也适用于不止一个用户:角色或任何对象。这些都是众所周知的工具,如果您需要管理这些系统上的用户,那么已经有了一个模块或插件。不要重新发明轮子。谢谢你的投入。有些模块/集合的存在是正确的。但是,它们大多数都不完整(只允许配置用户,不允许配置角色、监视等)。ansible elasticsearch模块用于安装,而不仅仅是配置(我们使用弹性云)。我需要调查什么是最好的前进方式。