--- - 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