2016-07-22 23:44:27 +01:00
---
2016-07-23 16:41:37 +01:00
2016-07-22 23:44:27 +01:00
- set_fact : manage_native_users=false
- set_fact : manage_native_users=true
when : es_users is defined and es_users.native is defined
- set_fact : manage_native_roles=false
- set_fact : manage_native_roles=true
when : es_roles is defined and es_roles.native is defined
2016-11-07 18:35:28 +01:00
# If playbook runs too fast, Native commands could fail as the Native Realm is not yet up
- name : Wait 15 seconds for the Native Relm to come up
pause : seconds=15
2017-01-11 13:02:23 +00:00
#If the node has just has security installed it maybe either stopped or started 1. if stopped, we need to start to load native realms 2. if started, we need to restart to load
2016-07-22 23:44:27 +01:00
#List current users
- name : List Native Users
uri :
2017-01-11 13:02:23 +00:00
url : http://{{es_api_host}}:{{es_api_port}}/_xpack/security/user
2016-07-22 23:44:27 +01:00
method : GET
user : "{{es_api_basic_auth_username}}"
password : "{{es_api_basic_auth_password}}"
force_basic_auth : yes
status_code : 200
register : user_list_response
when : manage_native_users
2017-01-16 15:17:18 +00:00
#Current users not inc. those reserved
- set_fact : current_users={{ user_list_response.json | filter_reserved }}
2016-07-22 23:44:27 +01:00
when : manage_native_users
#Identify non declared users
- set_fact : users_to_remove={{ current_users | difference ( es_users.native.keys() ) }}
when : manage_native_users
#Delete all non required users
- name : Delete Native Users
uri :
2017-01-11 13:02:23 +00:00
url : http://{{es_api_host}}:{{es_api_port}}/_xpack/security/user/{{item}}
2016-07-22 23:44:27 +01:00
method : DELETE
status_code : 200
user : "{{es_api_basic_auth_username}}"
password : "{{es_api_basic_auth_password}}"
force_basic_auth : yes
when : manage_native_users and users_to_remove | length > 0
with_items : "{{users_to_remove}}"
#Overwrite all other users
- name : Update Native Users
uri :
2017-01-16 15:17:18 +00:00
url : http://{{es_api_host}}:{{es_api_port}}/_xpack/security/user/{{item.key}}
2016-07-22 23:44:27 +01:00
method : POST
body_format : json
body : "{{item.value | to_json}}"
status_code : 200
user : "{{es_api_basic_auth_username}}"
password : "{{es_api_basic_auth_password}}"
force_basic_auth : yes
when : manage_native_users and es_users.native.keys() > 0
2017-01-16 15:17:18 +00:00
#no_log: True
2016-07-22 23:44:27 +01:00
with_dict : "{{es_users.native}}"
2017-01-16 15:17:18 +00:00
#List current roles not. inc those reserved
2016-07-22 23:44:27 +01:00
- name : List Native Roles
uri :
2017-01-11 13:02:23 +00:00
url : http://{{es_api_host}}:{{es_api_port}}/_xpack/security/role
2016-07-22 23:44:27 +01:00
method : GET
2016-08-29 16:34:14 +01:00
body_format : json
2016-07-22 23:44:27 +01:00
user : "{{es_api_basic_auth_username}}"
password : "{{es_api_basic_auth_password}}"
force_basic_auth : yes
status_code : 200
register : role_list_response
when : manage_native_roles
2017-01-16 15:17:18 +00:00
- set_fact : current_roles={{ role_list_response.json | filter_reserved }}
when : manage_native_roles
2016-07-22 23:44:27 +01:00
- debug : msg="{{current_roles}}"
- set_fact : roles_to_remove={{ current_roles | difference ( es_roles.native.keys() ) }}
when : manage_native_roles
#Delete all non required roles
- name : Delete Native Roles
uri :
2017-01-11 13:02:23 +00:00
url : http://{{es_api_host}}:{{es_api_port}}/_xpack/security/role/{{item}}
2016-07-22 23:44:27 +01:00
method : DELETE
status_code : 200
user : "{{es_api_basic_auth_username}}"
password : "{{es_api_basic_auth_password}}"
force_basic_auth : yes
when : manage_native_roles and roles_to_remove | length > 0
with_items : "{{roles_to_remove}}"
#Update other roles
- name : Update Native Roles
uri :
2017-01-11 13:02:23 +00:00
url : http://{{es_api_host}}:{{es_api_port}}/_xpack/security/role/{{item.key}}
2016-07-22 23:44:27 +01:00
method : POST
body_format : json
body : "{{item.value | to_json}}"
status_code : 200
user : "{{es_api_basic_auth_username}}"
password : "{{es_api_basic_auth_password}}"
force_basic_auth : yes
when : manage_native_roles and es_roles.native.keys() > 0
with_dict : "{{es_roles.native}}"