rocketchat: First version of role
This commit is contained in:
parent
1f10474860
commit
1952f5f96e
8 changed files with 111 additions and 0 deletions
|
@ -10,3 +10,4 @@
|
||||||
| 8006 | scanservjs | SANE Scanner webui |
|
| 8006 | scanservjs | SANE Scanner webui |
|
||||||
| 8007 | frigate | Network video recorder |
|
| 8007 | frigate | Network video recorder |
|
||||||
| 8008 | hoemeassistant | Home Assistant |
|
| 8008 | hoemeassistant | Home Assistant |
|
||||||
|
| 8009 | rocketchat | Rocket.Chat |
|
||||||
|
|
|
@ -33,3 +33,4 @@
|
||||||
when: ansible_fqdn == 'oci-node01.home.foo.sh'
|
when: ansible_fqdn == 'oci-node01.home.foo.sh'
|
||||||
- role: roundcube
|
- role: roundcube
|
||||||
when: ansible_fqdn == 'oci-node01.home.foo.sh'
|
when: ansible_fqdn == 'oci-node01.home.foo.sh'
|
||||||
|
- rocketchat
|
||||||
|
|
2
roles/rocketchat/defaults/main.yml
Normal file
2
roles/rocketchat/defaults/main.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
rocketchat_versin: default
|
6
roles/rocketchat/handlers/main.yml
Normal file
6
roles/rocketchat/handlers/main.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
- name: Restart rocketchat
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: rocketchat-container
|
||||||
|
daemon_reload: true
|
||||||
|
state: restarted
|
3
roles/rocketchat/meta/main.yml
Normal file
3
roles/rocketchat/meta/main.yml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- {role: podman}
|
74
roles/rocketchat/tasks/main.yml
Normal file
74
roles/rocketchat/tasks/main.yml
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
---
|
||||||
|
- name: Create group
|
||||||
|
ansible.builtin.group:
|
||||||
|
name: rocketchat
|
||||||
|
|
||||||
|
- name: Create user
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: rocketchat
|
||||||
|
comment: Podman Rocket.Chat
|
||||||
|
group: rocketchat
|
||||||
|
shell: /sbin/nologin
|
||||||
|
|
||||||
|
- name: Enable user lingering
|
||||||
|
ansible.builtin.command:
|
||||||
|
argv:
|
||||||
|
- loginctl
|
||||||
|
- enable-linger
|
||||||
|
- rocketchat
|
||||||
|
creates: /var/lib/systemd/linger/rocketchat
|
||||||
|
|
||||||
|
- name: Generate combined certificate/private key file contents
|
||||||
|
ansible.builtin.command:
|
||||||
|
argv:
|
||||||
|
- /bin/cat
|
||||||
|
- "{{ tls_certs }}/{{ inventory_hostname }}.crt"
|
||||||
|
- "{{ tls_private }}/{{ inventory_hostname }}.key"
|
||||||
|
changed_when: false
|
||||||
|
check_mode: false
|
||||||
|
register: rocketchat_cert_key
|
||||||
|
|
||||||
|
- name: Create combined certificate/private key file
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "{{ tls_private }}/rocketchat.pem"
|
||||||
|
content: "{{ rocketchat_cert_key.stdout }}"
|
||||||
|
mode: "0640"
|
||||||
|
owner: root
|
||||||
|
group: rocketchat
|
||||||
|
notify: Restart rocketchat
|
||||||
|
|
||||||
|
- name: Create service config
|
||||||
|
ansible.builtin.template:
|
||||||
|
dest: /etc/sysconfig/rocketchat-container
|
||||||
|
src: rocketchat-container.sysconfig.j2
|
||||||
|
mode: "0600"
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
notify: Restart rocketchat
|
||||||
|
|
||||||
|
- name: Create service file
|
||||||
|
ansible.builtin.template:
|
||||||
|
dest: /etc/systemd/system/rocketchat-container.service
|
||||||
|
src: rocketchat-container.service.j2
|
||||||
|
mode: "0644"
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
notify: Restart rocketchat
|
||||||
|
|
||||||
|
- name: Enable service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: rocketchat-container
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: Copy nginx config
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: /etc/nginx/conf.d/{{ inventory_hostname }}/rocketchat-container.conf
|
||||||
|
content: |
|
||||||
|
location /rocketchat/ {
|
||||||
|
proxy_pass http://127.0.0.1:8008/;
|
||||||
|
}
|
||||||
|
mode: "0644"
|
||||||
|
owner: root
|
||||||
|
group: "{{ ansible_wheel }}"
|
||||||
|
notify: Restart nginx
|
21
roles/rocketchat/templates/rocketchat-container.service.j2
Normal file
21
roles/rocketchat/templates/rocketchat-container.service.j2
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Rocket.Chat Container
|
||||||
|
Wants=network-online.target
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=rocketchat
|
||||||
|
EnvironmentFile=/etc/sysconfig/rocketchat-container
|
||||||
|
ExecStartPre=/usr/bin/podman pull docker.io/rocketchat/rocket.chat:{{ rocketchat_version }}-alpine
|
||||||
|
ExecStart=/usr/bin/podman run \
|
||||||
|
--rm -p 127.0.0.1:8008:3000 \
|
||||||
|
--name rocketchat \
|
||||||
|
--volume={{ tls_certs }}/ca.crt:/etc/ssl/certs/ca.crt:ro \
|
||||||
|
--volume={{ tls_private }}/rocketchat.pem:/etc/ssl/private/rocketchat.pem:ro \
|
||||||
|
--env ROOT_URL --env MONGO_URL --env MONGO_OPLOG_URL \
|
||||||
|
docker.io/rocketchat/rocket.chat:{{ rocketchat_version }}-alpine
|
||||||
|
ExecStop=/usr/bin/podman stop --ignore rocketchat
|
||||||
|
ExecStopPost=/usr/bin/podman rm -f --ignore rocketchat
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
|
@ -0,0 +1,3 @@
|
||||||
|
ROOT_URL="https://chat.foo.sh/"
|
||||||
|
MONGO_URL="mongodb://rocketchat:{{ rocketchat_mongodb_pass }}@mongodb01.home.foo.sh:27017/rocketchat?tls=true&tlscafile=/etc/ssl/certs/ca.crt&tlscertificatekeyfile=/etc/ssl/private/rocketchat.pem"
|
||||||
|
MONGO_OPLOG_URL="mongodb://mongodb01.home.foo.sh:27017/local"
|
Loading…
Add table
Add a link
Reference in a new issue