-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathrocketchat.yml
98 lines (91 loc) · 2.75 KB
/
rocketchat.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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
- name: create mongodb container for rocketchat
hosts: localhost
vars:
wipe: false
c_state: '{{ "absent" if wipe | bool else "started" }}'
c_name: my-rocketchat
tasks:
- name: create network for rocketchat
docker_network:
name: '{{ c_name }}'
state: present
- name: create mongodb for rocketchat container
docker_container:
name: '{{ c_name }}-mongo'
image: pschiffe/mongo-ansible
pull: true
state: '{{ c_state }}'
restart_policy: always
purge_networks: true
networks:
- name: '{{ c_name }}'
aliases:
- db
- mongo
volumes:
- /etc/localtime:/etc/localtime:ro
- '{{ c_name }}-db-data:/data/db:z'
- '{{ c_name }}-db-config-data:/data/configdb:z'
command: --auth --smallfiles
- meta: refresh_inventory
- name: create db users in mongodb container
hosts: '{{ c_name }}-mongo'
connection: docker
vars:
c_name: my-rocketchat
mongo_admin: admin
rocket_user: rocket
vars_files:
- passwords.yml
tasks:
- name: create admin user
shell: "echo \"db.createUser({ user: '{{ mongo_admin }}', pwd: '{{ mongo_admin_pass }}', roles: [ { role: 'userAdminAnyDatabase', db: 'admin' } ] });\" | mongo admin"
- name: create rocket user
mongodb_user:
login_user: '{{ mongo_admin }}'
login_password: '{{ mongo_admin_pass }}'
database: '{{ rocket_user }}'
name: '{{ rocket_user }}'
password: '{{ rocket_password }}'
roles:
- db: '{{ rocket_user }}'
role: readWrite
state: present
- name: create rocketchat container
hosts: localhost
vars:
wipe: false
c_state: '{{ "absent" if wipe | bool else "started" }}'
c_name: my-rocketchat
rocket_user: rocket
vars_files:
- passwords.yml
tasks:
- name: create rocketchat container
docker_container:
name: '{{ c_name }}'
image: rocket.chat
pull: true
state: '{{ c_state }}'
restart_policy: always
purge_networks: true
networks:
- name: '{{ c_name }}'
published_ports:
- '3001:3000'
env:
MONGO_URL: 'mongodb://{{ rocket_user }}:{{ rocket_password }}@db:27017/{{ rocket_user }}'
volumes:
- /etc/localtime:/etc/localtime:ro
- '{{ c_name }}-data:/app/uploads:z'
- name: remove docker volumes
command: docker volume rm {{ c_name }}-data {{ c_name }}-db-data {{ c_name }}-db-config-data
ignore_errors: true
when: wipe | bool
- name: remove network
docker_network:
name: '{{ c_name }}'
state: absent
ignore_errors: true
when: wipe | bool