- hosts: localhost tasks: - command: mc admin user list --json "{{ minio_config }}" register: cmd_users # - debug: var=cmd_users.stdout - hosts: localhost tasks: - with_items: "{{ backup_policies }}" include_tasks: minio/backup-policy.yml vars: hostname: "{{ item }}" host: "{{ minio_users['backup-' + item] }}" - hosts: localhost vars: registered_minio_users: "{{ cmd_users.stdout_lines | map('from_json') | list }}" present_users: "{{ minio_users | dict2items | json_query('[] | [?value.state == `present`]') | items2dict }}" absent_users: "{{ minio_users | dict2items | json_query('[] | [?value.state == `absent`]') | items2dict }}" tasks: - name: all present users debug: msg: "{{ present_users | join(', ') }}" when: false - name: all absent users debug: msg: "{{ absent_users | join(', ') }}" when: false - name: all minio users debug: msg: "{{ registered_minio_users }}" when: false - name: Adding user to Minio command: "mc admin user add {{ minio_config }} {{ item }} {{ user.secret }} {{ user.policy }}" when: user_count == "0" vars: user: "{{ minio_users[item] }}" user_count: "{{ registered_minio_users | json_query('[] | [?accessKey == `' + item + '`]') | length }}" with_items: "{{ present_users }}" - name: Removing user from Minio command: "mc admin user remove {{ minio_config }} {{ item }}" when: user_count vars: user_count: "{{ registered_minio_users | json_query('[] | [?accessKey == `' + item + '`]') | length }}" with_items: "{{ absent_users }}"