diff options
Diffstat (limited to 'ansible/minio-policies.yml')
-rw-r--r-- | ansible/minio-policies.yml | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/ansible/minio-policies.yml b/ansible/minio-policies.yml new file mode 100644 index 0000000..536314c --- /dev/null +++ b/ansible/minio-policies.yml @@ -0,0 +1,49 @@ +- 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 }}" |