ansible-roles/roles/kimai/tasks/install.yml

94 lines
2.6 KiB
YAML

---
- name: Install dependencies
package: name={{ kimai_packages }}
tags: kimai
- when: kimai_install_mode != 'none'
block:
- name: Download kimai
get_url:
url: "{{ kimai_archive_url }}"
dest: "{{ kimai_root_dir }}/tmp"
checksum: sha256:{{ kimai_archive_sha256 }}
register: kimai_dl_archive
retries: 3
delay: 5
until: kimai_dl_archive is not failed
- name: Extract the archive
unarchive:
src: "{{ kimai_root_dir }}/tmp/kimai-{{ kimai_version }}.tar.gz"
dest: "{{ kimai_root_dir }}/tmp"
remote_src: True
- name: Move kimai to its final dir
synchronize:
src: "{{ kimai_root_dir }}/tmp/kimai-{{ kimai_version }}/"
dest: "{{ kimai_root_dir }}/app/"
delete: True
compress: False
rsync_opts:
- '--exclude=/var'
delegate_to: "{{ inventory_hostname }}"
- name: Populate data directories
synchronize:
src: "{{ kimai_root_dir }}/tmp/kimai-{{ kimai_version }}/var/"
dest: "{{ kimai_root_dir }}/data/"
compress: False
delegate_to: "{{ inventory_hostname }}"
- name: Link data directories
file: src={{ kimai_root_dir }}/data dest={{ kimai_root_dir }}/app/var state=link
- name: Install PHP libs with composer
composer:
command: install
working_dir: "{{ kimai_root_dir }}/app"
executable: /bin/php{{ kimai_php_version }}
environment:
COMPOSER_ALLOW_SUPERUSER: 1
- name: Install LDAP auth support
composer:
command: require
arguments: laminas/laminas-ldap
working_dir: "{{ kimai_root_dir }}/app"
executable: /bin/php{{ kimai_php_version }}
environment:
COMPOSER_ALLOW_SUPERUSER: 1
- name: Fix empty Authorization header
patch:
src: kimai_empty_authorization.patch
dest: "{{ kimai_root_dir }}/app/src/API/Authentication/ApiRequestMatcher.php"
backup: true
tags: kimai
- import_tasks: ../includes/webapps_create_mysql_db.yml
vars:
- db_name: "{{ kimai_db_name }}"
- db_user: "{{ kimai_db_user }}"
- db_server: "{{ kimai_db_server }}"
- db_port: "{{ kimai_db_port }}"
- db_pass: "{{ kimai_db_pass }}"
tags: kimai
- name: Set correct SELinux context
sefcontext:
target: "{{ kimai_root_dir }}(/.*)?"
setype: httpd_sys_content_t
state: present
when: ansible_selinux.status == 'enabled'
tags: kimai
- name: Install pre/post backup hooks
template: src={{ item }}-backup.j2 dest=/etc/backup/{{ item }}.d/kimai_{{ kimai_id }} mode=700
loop:
- pre
- post
tags: kimai