ansible/roles/framadate/tasks/main.yml

101 lines
2.5 KiB
YAML

---
# Setup dependencies
- name: Install framadate APT dependencies
ansible.builtin.apt:
update_cache: true
name:
- nginx
- php-fpm
- php-intl
- php-mbstring
- php-mysql
- composer
- python3-passlib # Necessary for htpasswd module
- python3-pymysql
- mariadb-server
register: apt_result
retries: 3
until: apt_result is succeeded
- name: Clone framadate project
ansible.builtin.git:
repo: "{{ glob_framadate.repo }}"
dest: "{{ loc_framadate.path }}"
version: "{{ glob_framadate.version }}"
# Cet item là raises forcement un changed à cause du recurse: true
# https://github.com/ansible/ansible/issues/32636
- name: Set perms on framadate code
ansible.builtin.file:
path: "{{ loc_framadate.path }}"
state: directory
owner: www-data
group: www-data
recurse: true
- name: Install Framadate dependencies
community.general.composer:
command: install
working_dir: "{{ loc_framadate.path }}"
become: true
become_user: www-data
register: composer_result
retries: 3
until: composer_result is succeeded
- name: Create log file
ansible.builtin.file:
path: "{{ loc_framadate.path }}/admin/stdout.log"
owner: www-data
mode: 0600
state: file
- name: Configure framadate
ansible.builtin.template:
src: framadate/app/inc/config.php.j2
dest: "{{ loc_framadate.path }}/app/inc/config.php"
owner: www-data
group: www-data
- name: Configure admin password
community.general.htpasswd:
path: /etc/nginx/.htpasswd
name: "{{ glob_framadate.admin_username }}"
password: "{{ glob_framadate.admin_password }}"
owner: root
group: www-data
mode: 0640
- name: Configure nginx site
ansible.builtin.template:
src: nginx/sites-available/framadate.j2
dest: /etc/nginx/sites-available/framadate
notify: restart nginx
- name: Enable nginx site
ansible.builtin.file:
src: /etc/nginx/sites-available/framadate
dest: /etc/nginx/sites-enabled/framadate
state: link
notify: restart nginx
- name: Create the database
community.mysql.mysql_db:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: framadate
state: present
- name: Grant access right to framadate
community.mysql.mysql_user:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: framadate
password: "{{ glob_framadate.db_password }}"
priv: framadate.*:ALL
state: present
- name: Indicate role in motd
ansible.builtin.template:
src: update-motd.d/05-service.j2
dest: /etc/update-motd.d/05-framadate
mode: 0755