forked from FedorSymkin/alco-bootstrap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
convert_users.yml
67 lines (64 loc) · 2.56 KB
/
convert_users.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---
- name: Installing platform
hosts: rockstat
become: yes
vars_files:
- vars/config.yml
vars:
_nginx_users: {}
_nginx_admin: {}
tasks:
- block:
- command: 'cat /srv/platform/bootstrap/files/users.yml'
register: users_out
failed_when: 'False'
- block:
- debug: var=pb_users
- debug: var=users_data
- debug: msg="loc_gen:{{loc_gen}}"
- debug: msg="loc_conf:{{loc_conf}}"
- debug: msg="loc_admpwd:{{loc_admpwd}}"
- debug: msg="pb_woadmin:{{pb_notadmin}}"
- debug: msg="pb_admin:{{pb_admin}}"
- debug: var=loc_users_raw
- debug: var=loc_users_xx
- debug: msg="loc_users:{{loc_users}}"
- set_fact:
_nginx_users: "{{ _nginx_users | combine({row.0: row.0+':'+row.1}) }}"
vars:
row: "{{item.split(':')}}"
loop: "{{users_list|flatten}}"
- set_fact:
_nginx_admin: "{{ _nginx_admin | combine({row.0: row.1}) }}"
vars:
row: "{{item.split(':')}}"
loop: "{{admin_list|flatten}}"
- file:
path: /etc/ansible/facts.d
state: directory
- template:
src: 'facts.d/config.fact.j2'
dest: /etc/ansible/facts.d/config.fact
vars:
_facts_dict: "{{ loc_gen|combine({'admin_password': (_nginx_admin.values()|list)[0]})}}"
vars:
users_data: "{{ (users_out.rc == 0) | ternary(users_out.stdout|from_yaml, {}) }}"
pb_users: "{{ users_data.iternal_users | default(users_data.users|default([])) }}"
loc_conf: "{{ ansible_local.config | default({}) }}"
loc_gen: "{{ loc_conf.general | default({}) }}"
loc_admpwd: "{{ loc_gen.admin_password | default('') }}"
loc_adm: "{{ (loc_admpwd != '')|ternary(['admin:'+loc_admpwd], []) }}"
init_adm: "{{ ['admin:'+init_admin_pass|apr1pass] if init_admin_pass is defined else [] }}"
loc_users_raw: "{{ loc_gen.users|default('') }}"
loc_users: "{{ (loc_users_raw == '')|ternary(' [] ', loc_users_raw)|from_json }}"
pb_notadmin: "{{ pb_users | select('match', '^(?!admin).*$') | list }}"
pb_admin: "{{ pb_users | select('match', '^admin.*$') | list }}"
users_list:
- "{{loc_users}}"
- "{{pb_notadmin}}"
admin_list:
- "{{init_adm}}"
- "{{ 'admin:'+((users_list|flatten)[0].split(':'))[1] }}"
- "{{pb_admin}}"
- "{{loc_adm}}"
# when: "http_users|length > 0"