Skip to content

Commit e28b94a

Browse files
committed
Merge pull request #13 from duhast/master
Configuration and authentication with custom settings fix
2 parents 2e20fc4 + a8e9ad8 commit e28b94a

File tree

7 files changed

+38
-21
lines changed

7 files changed

+38
-21
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ Ansible role which manage [MongoDB](http://www.mongodb.org/)
1212
```yaml
1313
mongodb_package: mongodb-org
1414

15+
mongodb_force_wait_for_port: false # When not forced, the role will wait for mongod port to become available only with systemd
1516
mongodb_additional_packages:
1617
- python-pymongo
1718

defaults/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
---
22

33
mongodb_package: mongodb-org
4+
mongodb_force_wait_for_port: false
45

56
mongodb_additional_packages:
67
- python-pymongo

tasks/auth_initialization.yml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
name: "{{ item.name }}"
1010
password: "{{ item.password }}"
1111
roles: "{{ item.roles }}"
12-
login_host: 127.0.0.1
12+
login_host: "{{ mongodb_listen_ip }}"
1313
with_items:
1414
- {
1515
name: "{{ mongodb_user_admin_name }}",
@@ -25,7 +25,7 @@
2525
name: "{{ item.name }}"
2626
password: "{{ item.password }}"
2727
roles: "{{ item.roles }}"
28-
login_host: 127.0.0.1
28+
login_host: "{{ mongodb_listen_ip }}"
2929
login_user: "{{ mongodb_user_admin_name }}"
3030
login_password: "{{ mongodb_user_admin_password }}"
3131
with_items:
@@ -44,22 +44,18 @@
4444
password: "{{ item.password }}"
4545
roles: "{{ item.roles }}"
4646
replica_set: "{{ mongodb_conf_replSet }}"
47-
login_host: 127.0.0.1
47+
login_host: "{{ mongodb_listen_ip }}"
4848
login_user: "{{ mongodb_user_admin_name }}"
4949
login_password: "{{ mongodb_user_admin_password }}"
5050
with_items:
5151
- "{{ mongodb_users }}"
5252
when: mongodb_users is defined and ansible_local.mongodb.mongodb.mongodb_login_port is undefined
5353

5454
- name: Create facts.d directory
55-
file:
56-
state: directory
57-
recurse: yes
58-
path: /etc/ansible/facts.d
59-
when: rootadmin_user_result|changed or useradmin_user_result|changed
55+
file: path=/etc/ansible/facts.d state=directory recurse=yes
56+
when: (ansible_local.mongodb.mongodb.mongodb_login_port is undefined) and (rootadmin_user_result|changed or useradmin_user_result|changed or config_result|changed)
6057

6158
- name: Create facts file for mongodb
62-
copy:
63-
dest: /etc/ansible/facts.d/mongodb.fact
64-
content: "[mongodb]\nmongodb_login_port={{ mongodb_conf_port }}\n\n"
65-
when: rootadmin_user_result|changed or useradmin_user_result|changed
59+
template: src=mongodb.fact.j2 dest=/etc/ansible/facts.d/mongodb.fact
60+
when: (ansible_local.mongodb.mongodb.mongodb_login_port is undefined) and (rootadmin_user_result|changed or useradmin_user_result|changed or config_result|changed)
61+

tasks/auth_initialization_ald.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
---
12
- name: create administrative user siteUserAdmin port=yes
23
mongodb_user:
34
database: admin
45
name: "{{ item.name }}"
56
password: "{{ item.password }}"
67
roles: "{{ item.roles }}"
7-
login_host: 127.0.0.1
8+
login_host: "{{ mongodb_listen_ip }}"
89
login_port: "{{ ansible_local.mongodb.mongodb.mongodb_login_port }}"
910
with_items:
1011
- {
@@ -19,7 +20,7 @@
1920
name: "{{ item.name }}"
2021
password: "{{ item.password }}"
2122
roles: "{{ item.roles }}"
22-
login_host: 127.0.0.1
23+
login_host: "{{ mongodb_listen_ip }}"
2324
login_port: "{{ ansible_local.mongodb.mongodb.mongodb_login_port }}"
2425
login_user: "{{ mongodb_user_admin_name }}"
2526
login_password: "{{ mongodb_user_admin_password }}"
@@ -30,14 +31,14 @@
3031
roles: "root"
3132
}
3233

33-
- name: create normal users
34+
- name: create normal users port=yes
3435
mongodb_user:
3536
database: "{{ item.database }}"
3637
name: "{{ item.name }}"
3738
password: "{{ item.password }}"
3839
roles: "{{ item.roles }}"
3940
replica_set: "{{ mongodb_conf_replSet }}"
40-
login_host: 127.0.0.1
41+
login_host: "{{ mongodb_listen_ip }}"
4142
login_port: "{{ ansible_local.mongodb.mongodb.mongodb_login_port }}"
4243
login_user: "{{ mongodb_user_admin_name }}"
4344
login_password: "{{ mongodb_user_admin_password }}"

tasks/configure.yml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
---
2+
- name: Register default MongoDB listen IP
3+
set_fact: mongodb_listen_ip=127.0.0.1
4+
when: ansible_local.mongodb.mongodb.mongodb_listen_ip is undefined
5+
6+
- name: Register MongoDB listen IP
7+
set_fact: mongodb_listen_ip={{ ansible_local.mongodb.mongodb.mongodb_listen_ip }}
8+
when: ansible_local.mongodb.mongodb.mongodb_listen_ip is defined
9+
210

311
- name: Create keyFile
412
copy:
@@ -18,8 +26,8 @@
1826
when: mongodb_manager_service
1927

2028
- name: wait MongoDB port is listening
21-
wait_for: host="{{ mongodb_conf_bind_ip }}"port="{{ mongodb_conf_port }}" delay=10 timeout=60 state=started
22-
when: "'systemd' in systemd.stdout"
29+
wait_for: host="{{ mongodb_listen_ip }}" port="{{ mongodb_conf_port }}" delay=10 timeout=60 state=started
30+
when: mongodb_force_wait_for_port or "'systemd' in systemd.stdout"
2331

2432
- include: auth_initialization.yml
2533
when: mongodb_conf_auth
@@ -30,11 +38,17 @@
3038
- name: Configure database directory
3139
file: state=directory path={{ mongodb_conf_dbpath }} owner={{mongodb_user}} group={{mongodb_user}} mode=0755
3240

33-
- name: Configure logs
34-
file: state=file path={{ mongodb_conf_logpath }} owner={{mongodb_user}} group={{mongodb_user}} mode=0644
41+
- name: Create log dir if missing
42+
file: state=directory recurse=yes dest={{ mongodb_conf_logpath|dirname }} owner={{ mongodb_user }} group={{mongodb_user}} mode=0755
43+
44+
- name: Create log if missing
45+
file: state=touch dest={{ mongodb_conf_logpath }} owner={{ mongodb_user }} group={{mongodb_user}} mode=0755
46+
47+
- name: Configure log file
48+
file: state=file path={{ mongodb_conf_logpath }} owner={{mongodb_user}} group={{mongodb_user}} mode=0755
3549

3650
- name: Configure mongodb
37-
template: src=mongod.conf.j2 dest=/etc/mongod.conf owner=root group=root mode=0644
51+
template: src=mongod.conf.j2 dest=/etc/mongod.conf backup=yes owner=root group=root mode=0644
3852
register: config_result
3953

4054
- name: mongodb restart

templates/mongodb.fact.j2

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[mongodb]
2+
mongodb_login_port={{ mongodb_conf_port }}
3+
mongodb_listen_ip={{ mongodb_conf_bind_ip }}

0 commit comments

Comments
 (0)