Skip to content

Commit 845f25d

Browse files
author
Sergei Antipov
committed
Added authorization based on local fact
1 parent 4c3919d commit 845f25d

File tree

2 files changed

+64
-4
lines changed

2 files changed

+64
-4
lines changed

tasks/auth_initialization.yml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
---
22

3+
- include: auth_initialization_ald.yml
4+
when: ansible_local.mongodb.mongodb.mongodb_login_port is defined
5+
36
- name: create administrative user siteRootAdmin
47
mongodb_user:
58
database: admin
69
name: "{{ item.name }}"
710
password: "{{ item.password }}"
811
roles: "{{ item.roles }}"
912
login_host: 127.0.0.1
10-
login_port: "{{ mongodb_conf_port|default(27017) }}"
1113
with_items:
1214
- {
1315
name: "{{ mongodb_root_admin_name }}",
1416
password: "{{ mongodb_root_admin_password }}",
1517
roles: "root"
1618
}
19+
register: rootadmin_user_result
20+
when: ansible_local.mongodb.mongodb.mongodb_login_port is undefined
1721

1822
- name: create administrative user siteUserAdmin
1923
mongodb_user:
@@ -22,13 +26,14 @@
2226
password: "{{ item.password }}"
2327
roles: "{{ item.roles }}"
2428
login_host: 127.0.0.1
25-
login_port: "{{ mongodb_conf_port|default(27017) }}"
2629
with_items:
2730
- {
2831
name: "{{ mongodb_user_admin_name }}",
2932
password: "{{ mongodb_user_admin_password }}",
3033
roles: "userAdminAnyDatabase"
3134
}
35+
register: useradmin_user_result
36+
when: ansible_local.mongodb.mongodb.mongodb_login_port is undefined
3237

3338
- name: create normal users
3439
mongodb_user:
@@ -38,9 +43,21 @@
3843
roles: "{{ item.roles }}"
3944
replica_set: "{{ mongodb_conf_replSet }}"
4045
login_host: 127.0.0.1
41-
login_port: "{{ mongodb_conf_port|default(27017) }}"
4246
login_user: "{{ mongodb_user_admin_name }}"
4347
login_password: "{{ mongodb_user_admin_password }}"
4448
with_items:
4549
- "{{ mongodb_users }}"
46-
when: mongodb_users is defined
50+
when: mongodb_users is defined and ansible_local.mongodb.mongodb_login_port is undefined
51+
52+
- name: Create facts.d directory
53+
file:
54+
state: directory
55+
recurse: yes
56+
path: /etc/ansible/facts.d
57+
when: rootadmin_user_result|changed or useradmin_user_result|changed
58+
59+
- name: Create facts file for mongodb
60+
copy:
61+
dest: /etc/ansible/facts.d/mongodb.fact
62+
content: "[mongodb]\nmongodb_login_port={{ mongodb_conf_port }}\n"
63+
when: rootadmin_user_result|changed or useradmin_user_result|changed

tasks/auth_initialization_ald.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
- name: create administrative user siteRootAdmin
2+
mongodb_user:
3+
database: admin
4+
name: "{{ item.name }}"
5+
password: "{{ item.password }}"
6+
roles: "{{ item.roles }}"
7+
login_host: 127.0.0.1
8+
login_port: "{{ ansible_local.mongodb.mongodb.mongodb_login_port|default(27017) }}"
9+
with_items:
10+
- {
11+
name: "{{ mongodb_root_admin_name }}",
12+
password: "{{ mongodb_root_admin_password }}",
13+
roles: "root"
14+
}
15+
16+
- name: create administrative user siteUserAdmin
17+
mongodb_user:
18+
database: admin
19+
name: "{{ item.name }}"
20+
password: "{{ item.password }}"
21+
roles: "{{ item.roles }}"
22+
login_host: 127.0.0.1
23+
login_port: "{{ ansible_local.mongodb.mongodb_login_port|default(27017) }}"
24+
with_items:
25+
- {
26+
name: "{{ mongodb_user_admin_name }}",
27+
password: "{{ mongodb_user_admin_password }}",
28+
roles: "userAdminAnyDatabase"
29+
}
30+
31+
- name: create normal users
32+
mongodb_user:
33+
database: "{{ item.database }}"
34+
name: "{{ item.name }}"
35+
password: "{{ item.password }}"
36+
roles: "{{ item.roles }}"
37+
replica_set: "{{ mongodb_conf_replSet }}"
38+
login_host: 127.0.0.1
39+
login_port: "{{ ansible_local.mongodb.mongodb_login_port|default(27017) }}"
40+
login_user: "{{ mongodb_user_admin_name }}"
41+
login_password: "{{ mongodb_user_admin_password }}"
42+
with_items:
43+
- "{{ mongodb_users }}"

0 commit comments

Comments
 (0)