Skip to content

Commit a8e9ad8

Browse files
committed
mongodb_force_wait_for_port config var; mongodb_listen_iface renamed to mongodb_listen_ip; facts via a template
1 parent 84b9f87 commit a8e9ad8

File tree

7 files changed

+22
-21
lines changed

7 files changed

+22
-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: 5 additions & 10 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: "{{ mongodb_listen_iface }}"
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: "{{ mongodb_listen_iface }}"
28+
login_host: "{{ mongodb_listen_ip }}"
2929
login_user: "{{ mongodb_user_admin_name }}"
3030
login_password: "{{ mongodb_user_admin_password }}"
3131
with_items:
@@ -44,23 +44,18 @@
4444
password: "{{ item.password }}"
4545
roles: "{{ item.roles }}"
4646
replica_set: "{{ mongodb_conf_replSet }}"
47-
login_host: "{{ mongodb_listen_iface }}"
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
55+
file: path=/etc/ansible/facts.d state=directory recurse=yes
5956
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 }}\nmongodb_listen_iface={{ mongodb_conf_bind_ip }}\n"
59+
template: src=mongodb.fact.j2 dest=/etc/ansible/facts.d/mongodb.fact
6560
when: (ansible_local.mongodb.mongodb.mongodb_login_port is undefined) and (rootadmin_user_result|changed or useradmin_user_result|changed or config_result|changed)
6661

tasks/auth_initialization_ald.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
name: "{{ item.name }}"
66
password: "{{ item.password }}"
77
roles: "{{ item.roles }}"
8-
login_host: "{{ mongodb_listen_iface }}"
8+
login_host: "{{ mongodb_listen_ip }}"
99
login_port: "{{ ansible_local.mongodb.mongodb.mongodb_login_port }}"
1010
with_items:
1111
- {
@@ -20,7 +20,7 @@
2020
name: "{{ item.name }}"
2121
password: "{{ item.password }}"
2222
roles: "{{ item.roles }}"
23-
login_host: "{{ mongodb_listen_iface }}"
23+
login_host: "{{ mongodb_listen_ip }}"
2424
login_port: "{{ ansible_local.mongodb.mongodb.mongodb_login_port }}"
2525
login_user: "{{ mongodb_user_admin_name }}"
2626
login_password: "{{ mongodb_user_admin_password }}"
@@ -38,7 +38,7 @@
3838
password: "{{ item.password }}"
3939
roles: "{{ item.roles }}"
4040
replica_set: "{{ mongodb_conf_replSet }}"
41-
login_host: "{{ mongodb_listen_iface }}"
41+
login_host: "{{ mongodb_listen_ip }}"
4242
login_port: "{{ ansible_local.mongodb.mongodb.mongodb_login_port }}"
4343
login_user: "{{ mongodb_user_admin_name }}"
4444
login_password: "{{ mongodb_user_admin_password }}"

tasks/configure.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
2-
- name: Register default MongoDB listen interface
3-
set_fact: mongodb_listen_iface=127.0.0.1
4-
when: ansible_local.mongodb.mongodb.mongodb_listen_iface is undefined
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
55

6-
- name: Register MongoDB listen interface
7-
set_fact: mongodb_listen_iface={{ ansible_local.mongodb.mongodb.mongodb_listen_iface }}
8-
when: ansible_local.mongodb.mongodb.mongodb_listen_iface is defined
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
99

1010

1111
- name: Create keyFile
@@ -25,8 +25,8 @@
2525
service: name={{ mongodb_daemon_name }} state=started enabled=yes
2626

2727
- name: wait MongoDB port is listening
28-
wait_for: host="{{ mongodb_listen_iface }}" port="{{ mongodb_conf_port }}" delay=5 timeout=60 state=started
29-
#when: "'systemd' in systemd.stdout" #TODO Why only with systemd?
28+
wait_for: host="{{ mongodb_listen_ip }}" port="{{ mongodb_conf_port }}" delay=10 timeout=60 state=started
29+
when: mongodb_force_wait_for_port or "'systemd' in systemd.stdout"
3030

3131
- include: auth_initialization.yml
3232
when: mongodb_conf_auth

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)