--- - name: OrientDB installation tags: ['orientdb'] when: orientdb_install block: - name: Create the orientdb user ansible.builtin.user: name: "{{ orientdb_user }}" home: "{{ orientdb_base_dir }}" createhome: false shell: /bin/bash - name: Create the orientdb directories ansible.builtin.file: dest: "{{ item }}" owner: "{{ orientdb_user }}" group: "{{ orientdb_user }}" mode: "0750" state: directory loop: - "{{ orientdb_base_dir }}" - "{{ orientdb_data_dir }}" - name: Get the orientdb distribution ansible.builtin.get_url: url: "{{ orientdb_binary_distribution_url }}" dest: "{{ orientdb_base_dir }}/{{ orientdb_tar_file }}" validate_certs: false owner: root group: root mode: "0444" - name: Unpack the orientdb distribution ansible.builtin.unarchive: src: '{{ orientdb_base_dir }}/{{ orientdb_tar_file }}' dest: '{{ orientdb_base_dir }}' copy: false owner: root group: root args: creates: '{{ orientdb_home_prefix }}/{{ orientdb_user }}/{{ orientdb_dir }}-{{ orientdb_version }}' - name: Create some directories inside the orientdb user home become: true become_user: '{{ orientdb_user }}' ansible.builtin.file: dest: "{{ item }}" state: directory mode: "0750" loop: - '{{ orientdb_pid_dir }}' - '{{ orientdb_automatic_backup_directory }}' - name: Link to the databases directory become: true become_user: '{{ orientdb_user }}' ansible.builtin.file: src: "{{ orientdb_data_dir }}" dest: "{{ orientdb_link_to_data_dir }}" state: link - name: Remove the demodb database ansible.builtin.file: dest: '{{ orientdb_home_prefix }}/{{ orientdb_user }}/{{ orientdb_dir }}-{{ orientdb_version }}/databases/demodb' state: absent - name: Link to the latest version become: true become_user: '{{ orientdb_user }}' ansible.builtin.file: src: '{{ orientdb_tar_filename }}' dest: '{{ orientdb_install_dir }}' state: link - name: Create a link to the data directory ansible.builtin.file: src: '{{ orientdb_data_dir }}' dest: '{{ orientdb_home_prefix }}/{{ orientdb_user }}/{{ orientdb_dir }}-{{ orientdb_version }}/databases' state: link owner: '{{ orientdb_user }}' group: '{{ orientdb_user }}' force: true - name: Create a orientdb log directory out of the distribution directory ansible.builtin.file: dest: '{{ orientdb_log_dir }}' state: directory owner: '{{ orientdb_user }}' group: '{{ orientdb_user }}' mode: '0755' - name: Link the log directory inside the orientdb user home become: true become_user: '{{ orientdb_user }}' ansible.builtin.file: src: "{{ orientdb_log_dir }}" dest: "{{ orientdb_home_prefix }}/{{ orientdb_user }}/logs" state: link - name: Remove the old hook jars ansible.builtin.shell: rm -f {{ orientdb_install_dir }}/lib/{{ item }} loop: '{{ orientdb_hooks_to_be_removed | default([]) }}' tags: ['orientdb', 'orientdb_hooks'] - name: Fetch and install the hook jars ansible.builtin.get_url: url: "{{ item }}" dest: "{{ orientdb_install_dir }}/lib" owner: root group: root mode: "0644" loop: '{{ orientdb_hooks_jars | default([]) }}' notify: Restart orientdb tags: ['orientdb', 'orientdb_hooks'] - name: Install the orientdb default settings ansible.builtin.template: src: orientdb.default.j2 dest: /etc/default/orientdb owner: root group: root mode: "0444" notify: Restart orientdb - name: Fix the pid file path inside the start and shutdown scripts ansible.builtin.lineinfile: dest: '{{ orientdb_install_dir }}/bin/{{ item }}' regexp: "^ORIENTDB_PID=.*$" line: "ORIENTDB_PID={{ orientdb_pid_dir }}/orientdb.pid" insertafter: "^PRG=.*$" firstmatch: true loop: - server.sh - shutdown.sh tags: ['orientdb', 'orientdb_pid'] - name: Install the orientdb configuration files ansible.builtin.template: src: '{{ item }}.j2' dest: '{{ orientdb_install_dir }}/config/{{ item }}' owner: '{{ orientdb_user }}' group: '{{ orientdb_user }}' mode: '0640' loop: '{{ orientdb_configuration_files }}' notify: Restart orientdb tags: ['orientdb', 'orientdb_config'] - name: Set the permissions of some configuration files ansible.builtin.file: dest: '{{ orientdb_install_dir }}/config/{{ item }}' owner: '{{ orientdb_user }}' group: '{{ orientdb_user }}' mode: '0600' loop: - custom-sql-functions.json - security.json - orientdb-etl-log.properties notify: Restart orientdb tags: ['orientdb', 'orientdb_config'] - name: Install the nagios nrpe configuration ansible.builtin.template: src: orientdb-nrpe.cfg.j2 dest: "{{ nrpe_include_dir }}/orientdb-nrpe.cfg" owner: root group: root mode: "0444" notify: Reload NRPE server when: - nrpe_include_dir is defined - nagios_enabled is defined and nagios_enabled tags: ['orientdb', 'orientdb_nagios'] - name: Install the orientdb SYSV startup script ansible.builtin.template: src: orientdb.init.j2 dest: /etc/init.d/orientdb owner: root group: root mode: "0755" tags: ['orientdb', 'orientdb_init'] when: ansible_service_mgr != 'systemd' - name: Install the orientdb systemd unit ansible.builtin.template: src: orientdb.service.j2 dest: /etc/systemd/system/orientdb.service owner: root group: root mode: "0644" tags: ['orientdb', 'orientdb_init'] when: ansible_service_mgr == 'systemd' register: reload_systemd - name: Reload the systemd service ansible.builtin.systemd: daemon_reload: true when: reload_systemd is changed - name: Ensure that the service is enabled and running ansible.builtin.service: name: orientdb state: started enabled: true when: orientdb_enabled - name: Ensure that the service is stopped and disabled ansible.builtin.service: name: orientdb state: stopped enabled: false when: not orientdb_enabled - name: Clean up the backups tags: ['orientdb', 'orientdb_backup'] when: orientdb_install block: - name: Install a script that removes the old orientdb backups ansible.builtin.template: src: backup-cleaner.sh.j2 dest: /usr/local/bin/orientdb-backup-cleaner owner: root group: root mode: "0555" - name: Add a cron job that removes the old backups ansible.builtin.cron: cron_file: orientdb-backup-cleaner disabled: false job: "/usr/local/bin/orientdb-backup-cleaner >/dev/null 2>&1" special_time: daily user: "{{ orientdb_user }}" name: "Remove old orientdb backups" state: present - name: Manage the Letsencrypt certificates tags: ['orientdb', 'letsencrypt', 'orientdb_letsencrypt'] when: - orientdb_install - orientdb_letsencrypt_ssl_enabled - letsencrypt_acme_install is defined and letsencrypt_acme_install block: - name: Create the acme hooks directory if it does not yet exist ansible.builtin.file: dest: "{{ letsencrypt_acme_services_scripts_dir }}" state: directory owner: root group: root mode: "0755" - name: Install a letsencrypt hook to update the orientdb certificate ansible.builtin.template: src: orientdb-letsencrypt-acme.sh.j2 dest: "{{ letsencrypt_acme_services_scripts_dir }}/orientdb" owner: root group: root mode: "4555" - name: Remove OrientDB tags: ['orientdb'] when: not orientdb_install block: - name: Ensure that the service is disabled and stopped ansible.builtin.service: name: orientdb state: stopped enabled: false - name: Remove the orientdb SysV startup file ansible.builtin.file: dest: /etc/init.d/orientdb state: absent when: ansible_service_mgr != 'systemd' - name: Remove the orientdb systemd unit ansible.builtin.file: dest: /usr/lib/systemd/system/orientdb.service state: absent when: ansible_service_mgr == 'systemd' - name: Remove the link to the orientdb distribution ansible.builtin.file: dest: "{{ orientdb_home_prefix }}/{{ orientdb_user }}/{{ orientdb_dir }}" state: absent - name: Remove the default options file ansible.builtin.file: dest: /etc/default/orientdb state: absent - name: Remove the backup cleaner script ansible.builtin.file: dest: /usr/local/bin/orientdb-backup-cleaner state: absent - name: Remove the backup cleaner cron job ansible.builtin.cron: cron_file: orientdb-backup-cleaner disabled: false job: "/usr/local/bin/orientdb-backup-cleaner >/dev/null 2>&1" special_time: daily user: '{{ orientdb_user }}' name: "Remove old orientdb backups" state: absent