mirror of
https://git.lapiole.org/dani/ansible-roles.git
synced 2025-07-27 00:05:44 +02:00
Update to 2021-12-01 19:13
This commit is contained in:
13
roles/dolibarr/tasks/archive_post.yml
Normal file
13
roles/dolibarr/tasks/archive_post.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
|
||||
- name: Lock installation process
|
||||
copy: content='' dest={{ dolibarr_root_dir }}/data/install.lock
|
||||
tags: dolibarr
|
||||
|
||||
- import_tasks: ../includes/webapps_compress_archive.yml
|
||||
vars:
|
||||
- root_dir: "{{ dolibarr_root_dir }}"
|
||||
- version: "{{ dolibarr_current_version }}"
|
||||
when: dolibarr_install_mode == 'upgrade'
|
||||
tags: dolibarr
|
||||
|
15
roles/dolibarr/tasks/archive_pre.yml
Normal file
15
roles/dolibarr/tasks/archive_pre.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/webapps_archive.yml
|
||||
vars:
|
||||
- root_dir: "{{ dolibarr_root_dir }}"
|
||||
- version: "{{ dolibarr_current_version }}"
|
||||
- db_name: "{{ dolibarr_db_name }}"
|
||||
- db_server: "{{ dolibarr_db_server }}"
|
||||
tags: dolibarr
|
||||
|
||||
- name: Unlock installation process
|
||||
file: path={{ dolibarr_root_dir }}/data/install.lock state=absent
|
||||
when: dolibarr_install_mode == 'upgrade'
|
||||
tags: dolibarr
|
||||
|
11
roles/dolibarr/tasks/cleanup.yml
Normal file
11
roles/dolibarr/tasks/cleanup.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
|
||||
- name: Remove temp and obsolete files
|
||||
file: path={{ item }} state=absent
|
||||
loop:
|
||||
- "{{ dolibarr_root_dir }}/tmp/dolibarr-{{ dolibarr_version }}.tgz"
|
||||
- "{{ dolibarr_root_dir }}/tmp/dolibarr-{{ dolibarr_version }}"
|
||||
- /etc/backup/pre.d/dolibarr_{{ dolibarr_id }}_dump_db
|
||||
- /etc/backup/post.d/dolibarr_{{ dolibarr_id }}_rm_dump
|
||||
tags: dolibarr
|
||||
|
41
roles/dolibarr/tasks/conf.yml
Normal file
41
roles/dolibarr/tasks/conf.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
|
||||
- name: Deploy Dolibarr config
|
||||
template: src=dolibarr.conf.j2 dest={{ dolibarr_root_dir }}/web/htdocs/conf/conf.php
|
||||
tags: dolibarr
|
||||
|
||||
- name: Initialize Dolibarr installation (first step)
|
||||
command: php{{ dolibarr_php_version }}-cgi step2.php action=set
|
||||
args:
|
||||
chdir: "{{ dolibarr_root_dir }}/web/htdocs/install/"
|
||||
#become_user: "{{ dolibarr_php_user }}"
|
||||
when: dolibarr_install_mode == 'install'
|
||||
tags: dolibarr
|
||||
|
||||
- name: Create default admin user
|
||||
command: php{{ dolibarr_php_version }}-cgi step5.php action=set login=admin pass=admin pass_verif=admin
|
||||
args:
|
||||
chdir: "{{ dolibarr_root_dir }}/web/htdocs/install/"
|
||||
#become_user: "{{ dolibarr_php_user }}"
|
||||
when: dolibarr_install_mode == 'install'
|
||||
tags: dolibarr
|
||||
|
||||
- name: Upgrade Dolibarr
|
||||
command: php{{ dolibarr_php_version }} {{ item }} {{ dolibarr_current_version }} {{ dolibarr_version }}
|
||||
args:
|
||||
chdir: "{{ dolibarr_root_dir }}/web/htdocs/install/"
|
||||
become_user: "{{ dolibarr_php_user }}"
|
||||
when: dolibarr_install_mode == 'upgrade'
|
||||
with_items:
|
||||
- upgrade.php
|
||||
- upgrade2.php
|
||||
- step5.php
|
||||
tags: dolibarr
|
||||
|
||||
- import_tasks: ../includes/webapps_webconf.yml
|
||||
vars:
|
||||
- app_id: dolibarr_{{ dolibarr_id }}
|
||||
- php_version: "{{ dolibarr_php_version }}"
|
||||
- php_fpm_pool: "{{ dolibarr_php_fpm_pool | default('') }}"
|
||||
tags: dolibarr
|
||||
|
13
roles/dolibarr/tasks/directories.yml
Normal file
13
roles/dolibarr/tasks/directories.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
|
||||
- name: Create directory structure
|
||||
file: path={{ item.dir }} state=directory mode={{ item.mode | default(omit) }}
|
||||
with_items:
|
||||
- dir: "{{ dolibarr_root_dir }}"
|
||||
- dir: "{{ dolibarr_root_dir }}/archives"
|
||||
- dir: "{{ dolibarr_root_dir }}/tmp"
|
||||
- dir: "{{ dolibarr_root_dir }}/sessions"
|
||||
- dir: "{{ dolibarr_root_dir }}/meta"
|
||||
- dir: "{{ dolibarr_root_dir }}/db_dumps"
|
||||
- dir: "{{ dolibarr_root_dir }}/data"
|
||||
tags: dolibarr
|
28
roles/dolibarr/tasks/facts.yml
Normal file
28
roles/dolibarr/tasks/facts.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/webapps_set_install_mode.yml
|
||||
vars:
|
||||
- root_dir: "{{ dolibarr_root_dir }}"
|
||||
- version: "{{ dolibarr_version }}"
|
||||
tags: dolibarr
|
||||
- set_fact: dolibarr_install_mode={{ (install_mode == 'upgrade' and not dolibarr_manage_upgrade) | ternary('none',install_mode) }}
|
||||
tags: dolibarr
|
||||
- set_fact: dolibarr_current_version={{ current_version | default('') }}
|
||||
tags: dolibarr
|
||||
|
||||
- import_tasks: ../includes/get_rand_pass.yml
|
||||
vars:
|
||||
- pass_file: "{{ dolibarr_root_dir }}/meta/ansible_cookie_key"
|
||||
tags: dolibarr
|
||||
- set_fact: dolibarr_cookie_key={{ rand_pass }}
|
||||
tags: dolibarr
|
||||
|
||||
- import_tasks: ../includes/get_rand_pass.yml
|
||||
vars:
|
||||
- pass_file: "{{ dolibarr_root_dir }}/meta/ansible_dbpass"
|
||||
when: dolibarr_db_pass is not defined
|
||||
tags: dolibarr
|
||||
- set_fact: dolibarr_db_pass={{ rand_pass }}
|
||||
when: dolibarr_db_pass is not defined
|
||||
tags: dolibarr
|
||||
|
142
roles/dolibarr/tasks/install.yml
Normal file
142
roles/dolibarr/tasks/install.yml
Normal file
@@ -0,0 +1,142 @@
|
||||
---
|
||||
|
||||
- name: Install needed tools
|
||||
yum:
|
||||
name:
|
||||
- tar
|
||||
- mariadb
|
||||
- acl
|
||||
- patch
|
||||
tags: dolibarr
|
||||
|
||||
- name: Download Dolibarr
|
||||
get_url:
|
||||
url: "{{ dolibarr_archive_url }}"
|
||||
dest: "{{ dolibarr_root_dir }}/tmp/"
|
||||
checksum: "sha1:{{ dolibarr_archive_sha1 }}"
|
||||
when: dolibarr_install_mode != 'none'
|
||||
tags: dolibarr
|
||||
|
||||
- name: Extract dolibarr archive
|
||||
unarchive:
|
||||
src: "{{ dolibarr_root_dir }}/tmp/dolibarr-{{ dolibarr_version }}.tgz"
|
||||
dest: "{{ dolibarr_root_dir }}/tmp"
|
||||
remote_src: yes
|
||||
when: dolibarr_install_mode != 'none'
|
||||
tags: dolibarr
|
||||
|
||||
- name: Move files to the correct directory
|
||||
synchronize:
|
||||
src: "{{ dolibarr_root_dir }}/tmp/dolibarr-{{ dolibarr_version }}/"
|
||||
dest: "{{ dolibarr_root_dir }}/web/"
|
||||
recursive: True
|
||||
delete: True
|
||||
delegate_to: "{{ inventory_hostname }}"
|
||||
when: dolibarr_install_mode != 'none'
|
||||
tags: dolibarr
|
||||
|
||||
- name: Apply local patches
|
||||
patch:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
backup: True
|
||||
loop:
|
||||
- src: dolibarr_token.patch
|
||||
dest: "{{ dolibarr_root_dir }}/web/htdocs/main.inc.php"
|
||||
tags: dolibarr
|
||||
|
||||
# Custom dir is where custom modules are installed.
|
||||
# This dir was in data previously, but this is not working with
|
||||
# some modules which use relative path for their includes
|
||||
- name: Check if custom dir is linked to the data dir
|
||||
stat: path={{ dolibarr_root_dir }}/web/htdocs/custom
|
||||
register: dolibarr_custom_link
|
||||
tags: dolibarr
|
||||
- stat: path={{ dolibarr_root_dir }}/data/custom
|
||||
register: dolibarr_custom_data
|
||||
tags: dolibarr
|
||||
|
||||
- name: Remove custom symlink
|
||||
file: path={{ dolibarr_root_dir }}/web/htdocs/custom state=absent
|
||||
when:
|
||||
- dolibarr_custom_link.stat.islnk is defined
|
||||
- dolibarr_custom_link.stat.islnk == True
|
||||
tags: dolibarr
|
||||
|
||||
- name: Make sure the custom dir exists
|
||||
file: path={{ dolibarr_root_dir }}/web/htdocs/custom state=directory
|
||||
tags: dolibarr
|
||||
|
||||
- name: Move custom content to the htdocs/custom dir
|
||||
synchronize:
|
||||
src: "{{ dolibarr_root_dir }}/data/custom/"
|
||||
dest: "{{ dolibarr_root_dir }}/web/htdocs/custom/"
|
||||
recursive: True
|
||||
delegate_to: "{{ inventory_hostname }}"
|
||||
when:
|
||||
- dolibarr_custom_link.stat.islnk is defined
|
||||
- dolibarr_custom_link.stat.islnk == True
|
||||
- dolibarr_custom_data.stat.isdir is defined
|
||||
- dolibarr_custom_data.stat.isdir == True
|
||||
tags: dolibarr
|
||||
|
||||
- name: Remove custom dir from the data dir
|
||||
file: path={{ dolibarr_root_dir }}/data/custom/ state=absent
|
||||
when:
|
||||
- dolibarr_custom_data.stat.isdir is defined
|
||||
- dolibarr_custom_data.stat.isdir == True
|
||||
tags: dolibarr
|
||||
|
||||
- name: Restore custom dir after an upgrade
|
||||
synchronize:
|
||||
src: "{{ dolibarr_root_dir }}/archives/{{ dolibarr_current_version }}/web/htdocs/custom/"
|
||||
dest: "{{ dolibarr_root_dir }}/web/htdocs/custom/"
|
||||
recursive: True
|
||||
delegate_to: "{{ inventory_hostname }}"
|
||||
when: dolibarr_install_mode == 'upgrade'
|
||||
tags: dolibarr
|
||||
|
||||
- import_tasks: ../includes/webapps_create_mysql_db.yml
|
||||
vars:
|
||||
- db_name: "{{ dolibarr_db_name }}"
|
||||
- db_user: "{{ dolibarr_db_user }}"
|
||||
- db_server: "{{ dolibarr_db_server }}"
|
||||
- db_pass: "{{ dolibarr_db_pass }}"
|
||||
tags: dolibarr
|
||||
|
||||
- name: Add a script to sync from LDAP
|
||||
copy:
|
||||
content: |
|
||||
#!/bin/sh
|
||||
/bin/php{{ dolibarr_php_version }} {{ dolibarr_root_dir }}/web/scripts/user/sync_users_ldap2dolibarr.php now -y
|
||||
/bin/php{{ dolibarr_php_version }} {{ dolibarr_root_dir }}/web/scripts/user/sync_groups_ldap2dolibarr.php now -y
|
||||
dest: "{{ dolibarr_root_dir }}/web/scripts/user/sync_ldap2dolibarr.sh"
|
||||
tags: dolibarr
|
||||
|
||||
- name: Deploy backup scripts
|
||||
template: src={{ item }}-backup.j2 dest=/etc/backup/{{ item }}.d/dolibarr_{{ dolibarr_id }} mode=750
|
||||
loop:
|
||||
- pre
|
||||
- post
|
||||
tags: dolibarr
|
||||
|
||||
- name: Setup cron job to sync users and groups from LDAP
|
||||
cron:
|
||||
name: dolibarr_{{ dolibarr_id }}_ldap
|
||||
minute: '*/15'
|
||||
user: "{{ dolibarr_php_user }}"
|
||||
job: "sleep $[ ( $RANDOM \\% 30 ) ] && {{ dolibarr_root_dir }}/web/scripts/user/sync_ldap2dolibarr.sh | /bin/systemd-cat -t dolibarr_{{ dolibarr_id }}"
|
||||
cron_file: dolibarr_{{ dolibarr_id }}_ldap
|
||||
state: "{{ (dolibarr_sync_from_ldap is defined and dolibarr_sync_from_ldap) | ternary('present','absent') }}"
|
||||
tags: dolibarr
|
||||
|
||||
- name: Set var_log_t context for log files
|
||||
sefcontext:
|
||||
target: '{{ dolibarr_root_dir }}/data/.*\.log'
|
||||
setype: httpd_log_t
|
||||
when: ansible_selinux.status == 'enabled'
|
||||
tags: dolibarr
|
||||
|
||||
- name: Install logrotate configuration
|
||||
template: src=logrotate.conf.j2 dest=/etc/logrotate.d/dolibarr_{{ dolibarr_id }}
|
||||
tags: dolibarr
|
13
roles/dolibarr/tasks/main.yml
Normal file
13
roles/dolibarr/tasks/main.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
|
||||
- include: user.yml
|
||||
- include: directories.yml
|
||||
- include: facts.yml
|
||||
- include: archive_pre.yml
|
||||
when: dolibarr_install_mode == 'upgrade'
|
||||
- include: install.yml
|
||||
- include: conf.yml
|
||||
- include: archive_post.yml
|
||||
when: dolibarr_install_mode == 'upgrade'
|
||||
- include: write_version.yml
|
||||
- include: cleanup.yml
|
8
roles/dolibarr/tasks/user.yml
Normal file
8
roles/dolibarr/tasks/user.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/create_system_user.yml
|
||||
vars:
|
||||
- user: "{{ dolibarr_php_user }}"
|
||||
- comment: "PHP FPM for dolibarr {{ dolibarr_id }}"
|
||||
tags: dolibarr
|
||||
|
7
roles/dolibarr/tasks/write_version.yml
Normal file
7
roles/dolibarr/tasks/write_version.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
|
||||
- import_tasks: ../includes/webapps_post.yml
|
||||
vars:
|
||||
- root_dir: "{{ dolibarr_root_dir }}"
|
||||
- version: "{{ dolibarr_version }}"
|
||||
tags: dolibarr
|
Reference in New Issue
Block a user