首页 > 解决方案 > ansible中的多维列表

问题描述

我有 9 个角色和 10 个环境,我需要根据环境授予对角色的读写/读取访问权限,并且我的数据结构/设置如下,

ROLE  Environment    Access
A    one            ReadWrite
     two            Readwite
     three          Read
     four          Read
    five           Read
    six            Read
    seven          Read
    eight          Read
    Nine           Read
    ten            Read
B   one            Readwrite
    two            Read
    three          Readwrite
    four           Readwrite
    five           Readwrite
    six            Readwrite
    seven          Readwrite
    eight          Readwrite
    Nine           Read
    ten           Read
C   one           Readwrite
    two           Read
    three        Readwrite
    four         Readwrite
    five         Readwrite
    six         Readwrite
    seven       Read
    eight      Readwrite
    Nine       Read
    ten        Read
D   one       Readwrite
    two       Read
    three     Readwrite
    four      Read
    five      Readwrite
    six       Readwrite
    seven     ReadWrite
    eight     Read
    Nine      Read
    ten       Read

我想根据上述数据列表授予读写/读取访问权限,例如 ROLE A Environment One应该获得 readdwrite 访问权限

我们如何在 Ansible 中做到这一点?

笔记:

  1. 为了提供 Access ,我们通过 Ansible URI 模块调用 Rest API
  2. 我提到了 4 个角色,但我有 9 个角色

标签: ansible

解决方案


我假设你的清单是……嗯,一个清单。查看嵌套循环的文档:

- name: Give users access to multiple databases
  community.mysql.mysql_user:
    name: "{{ item[0] }}"
    priv: "{{ item[1] }}.*:ALL"
    append_privs: yes
    password: "foo"
  loop: "{{ ['alice', 'bob'] |product(['clientdb', 'employeedb', 'providerdb'])|list }}"

另请查看本节以获取有关嵌套循环的更多信息。


推荐阅读