187 lines
5.2 KiB
YAML
187 lines
5.2 KiB
YAML
- name: Configuration of jabber server
|
|
hosts: chatservers
|
|
|
|
tasks:
|
|
- name: Use variables
|
|
ansible.builtin.include_vars: vars.yml
|
|
|
|
- name: Configure ejabber apt sources
|
|
ansible.builtin.blockinfile:
|
|
path: /etc/apt/sources.list.d/process-one-stable.sources
|
|
create: true
|
|
block: |
|
|
Enabled: yes
|
|
Types: deb
|
|
URIs: https://repo.process-one.net/deb
|
|
Suites: stable
|
|
Components: main
|
|
Architectures: amd64
|
|
Signed-By: /etc/apt/keyrings/ejabberd.gpg
|
|
owner: "{{ root.user }}"
|
|
group: "{{ root.group }}"
|
|
mode: "755"
|
|
|
|
- name: Create keyrings folder
|
|
ansible.builtin.file:
|
|
path: /etc/apt/keyrings
|
|
state: directory
|
|
owner: "{{ root.user }}"
|
|
group: "{{ root.group }}"
|
|
mode: "755"
|
|
|
|
- name: Adding process-one (ejabberd) gpg key to apt keyring
|
|
ansible.builtin.get_url:
|
|
url: https://repo.process-one.net/ejabberd.gpg
|
|
dest: /etc/apt/keyrings/ejabberd.gpg
|
|
owner: "{{ root.user }}"
|
|
group: "{{ root.group }}"
|
|
mode: "755"
|
|
|
|
- name: Installing required packages
|
|
ansible.builtin.package:
|
|
name:
|
|
- composer
|
|
- php-fpm
|
|
- php-curl
|
|
- php-mbstring
|
|
- php-imagick
|
|
- php-gd
|
|
- php-pgsql
|
|
- php-xml
|
|
- postgresql
|
|
- nginx
|
|
- ejabberd
|
|
- git
|
|
- python3-certbot-nginx
|
|
- python3-psycopg2
|
|
state: present
|
|
|
|
- name: Installing Movim App
|
|
block:
|
|
- name: Cloning
|
|
ansible.builtin.git:
|
|
repo: https://github.com/movim/movim.git
|
|
dest: "{{ movim.path }}"
|
|
version: "{{ movim.version }}"
|
|
rescue:
|
|
- name: Fetching
|
|
ansible.builtin.command:
|
|
argv:
|
|
- git
|
|
- fetch
|
|
chdir: "{{ movim.path }}"
|
|
become: true
|
|
become_user: "{{ www.user }}"
|
|
- name: Checking Out
|
|
ansible.builtin.command:
|
|
argv:
|
|
- git
|
|
- checkout
|
|
- "{{ movim.version }}"
|
|
chdir: "{{ movim.path }}"
|
|
become: true
|
|
become_user: "{{ www.user }}"
|
|
always:
|
|
- name: Setting Mode and Ownershp
|
|
ansible.builtin.file:
|
|
path: "{{ movim.path }}"
|
|
state: directory
|
|
owner: "{{ www.user }}"
|
|
group: "{{ www.group }}"
|
|
recurse: true
|
|
mode: "755"
|
|
|
|
- name: Installing Movim dependanciens
|
|
community.general.composer:
|
|
working_dir: "{{ movim.path }}"
|
|
command: install
|
|
become: true
|
|
become_user: "{{ www.user }}"
|
|
|
|
- name: Create Database User
|
|
community.postgresql.postgresql_user:
|
|
user: movim
|
|
password: movim
|
|
state: present
|
|
become_user: "{{ postgres.user }}"
|
|
become: true
|
|
|
|
- name: Create Database
|
|
community.postgresql.postgresql_db:
|
|
name: movim
|
|
owner: movim
|
|
state: present
|
|
become_user: "{{ postgres.user }}"
|
|
become: true
|
|
|
|
- name: Setting-Up Movim execution environment
|
|
ansible.builtin.blockinfile:
|
|
path: "{{ movim.path }}/.env"
|
|
block: |
|
|
# Database configuration
|
|
DB_DRIVER=pgsql
|
|
DB_HOST=127.0.0.1
|
|
DB_PORT=5432
|
|
DB_DATABASE=movim
|
|
DB_USERNAME=movim
|
|
DB_PASSWORD=movim
|
|
|
|
# Daemon configuration
|
|
DAEMON_URL=https://chat.trans13nrv.eu.org/ # Public URL of your Movim instance
|
|
DAEMON_PORT=8080 # Port on which the daemon will listen
|
|
DAEMON_INTERFACE=127.0.0.1 # Interface on which the daemon will listen, must be an IP
|
|
DAEMON_DEBUG=false
|
|
DAEMON_VERBOSE=false
|
|
|
|
owner: "{{ www.user }}"
|
|
group: "{{ www.group }}"
|
|
create: true
|
|
mode: "600"
|
|
|
|
- name: Migrating Database
|
|
community.general.composer:
|
|
command: "movim:migrate"
|
|
working_dir: "{{ movim.path }}"
|
|
become: true
|
|
become_user: "{{ www.user }}"
|
|
|
|
- name: Setting-Up Movim demon service
|
|
ansible.builtin.blockinfile:
|
|
path: /etc/systemd/system/movim.service
|
|
block: |
|
|
[Unit]
|
|
Description=Movim daemon
|
|
After=nginx.service network.target local-fs.target
|
|
|
|
[Service]
|
|
User=www-data
|
|
Type=simple
|
|
Environment=PUBLIC_URL=https://chat.trans13nrv.eu.org/
|
|
Environment=WS_PORT=8080
|
|
EnvironmentFile=-/etc/default/movim
|
|
ExecStart=/usr/bin/php daemon.php start
|
|
WorkingDirectory={{ movim.path }}
|
|
StandardOutput=syslog
|
|
SyslogIdentifier=movim
|
|
PIDFile=/run/movim.pid
|
|
Restart=on-failure
|
|
RestartSec=10
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
owner: "{{ root.user }}"
|
|
group: "{{ root.group }}"
|
|
mode: "644"
|
|
create: true
|
|
|
|
- name: Reload SystemD daemon
|
|
ansible.builtin.command:
|
|
argv:
|
|
- systemctl
|
|
- daemon-reload
|
|
|
|
- name: Enable and start Movim Damon Service
|
|
ansible.builtin.systemd_service:
|
|
service: movim.service
|
|
enabled: true
|
|
state: started
|