Clean up some files. Enforce the jdk version.

This commit is contained in:
Andrea Dell'Amico 2023-11-21 18:14:36 +01:00
parent c7f933ea9e
commit 2a3375764e
Signed by: andrea.dellamico
GPG Key ID: 147ABE6CEB9E20FF
4 changed files with 190 additions and 132 deletions

View File

@ -6,16 +6,18 @@ orientdb_archive_commpression: tar.gz
orientdb_dir: 'orientdb-community'
orientdb_tar_filename: '{{ orientdb_dir }}-{{ orientdb_version }}'
orientdb_tar_file: '{{ orientdb_tar_filename }}.{{ orientdb_archive_commpression }}'
orientdb_jdk_version: 8
# Pre 3.2.5
# orientdb_binary_distribution_url: 'https://s3.us-east-2.amazonaws.com/orientdb3/releases/{{ orientdb_version }}/{{ orientdb_tar_file }}'
orientdb_binary_distribution_url: 'https://repo1.maven.org/maven2/com/orientechnologies/{{ orientdb_dir }}/{{ orientdb_version }}/{{ orientdb_tar_file }}'
orientdb_user: orientdb
orientdb_log_dir: /var/log/orientdb
orientdb_log_level: INFO
orientdb_home_prefix: /home
orientdb_home_prefix: /srv
orientdb_data_dir: /srv/orientdb_databases
orientdb_base_dir: '{{ orientdb_home_prefix }}/{{ orientdb_user }}'
orientdb_install_dir: '{{ orientdb_base_dir }}/{{ orientdb_dir }}'
orientdb_data_dir: '{{ orientdb_home_prefix }}/{{ orientdb_user }}/databases'
orientdb_link_to_data_dir: '{{ orientdb_home_prefix }}/{{ orientdb_user }}/databases'
orientdb_pid_dir: '{{ orientdb_home_prefix }}/{{ orientdb_user }}/pid'
orientdb_configuration_files:
- orientdb-server-log.properties

View File

@ -1,13 +1,12 @@
galaxy_info:
author: Andrea Dell'Amico
description: Systems Architect
description: Role that installs OrientDB
company: ISTI-CNR
issue_tracker_url: https://redmine-s2i2s.isti.cnr.it/projects/provisioning
namespace: adellam
role_name: orientdb
license: EUPL 1.2+
min_ansible_version: 2.8
min_ansible_version: "2.15"
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
@ -15,11 +14,9 @@ galaxy_info:
platforms:
- name: Ubuntu
versions:
- Trusty
- bionic
- name: EL
versions:
- 7
- focal
- jammy
galaxy_tags:
- orientdb

View File

@ -1,94 +1,125 @@
---
- block:
- name: OrientDB installation
tags: ['orientdb']
when: orientdb_install
block:
- name: Create the orientdb user
user: name={{ orientdb_user }} home={{ orientdb_base_dir }} createhome=yes shell=/bin/bash
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"
loop:
- "{{ orientdb_base_dir }}"
- "{{ orientdb_data_dir }}"
- name: Get the orientdb distribution
get_url: url={{ orientdb_binary_distribution_url }} dest={{ orientdb_base_dir }}/{{ orientdb_tar_file }} validate_certs=no
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
unarchive:
ansible.builtin.unarchive:
src: '{{ orientdb_base_dir }}/{{ orientdb_tar_file }}'
dest: '{{ orientdb_base_dir }}'
copy: no
copy: false
owner: root
group: root
args:
creates: '{{ orientdb_home_prefix }}/{{ orientdb_user }}/{{ orientdb_dir }}-{{ orientdb_version }}'
- name: Create the needed directory inside the orientdb user home
become: True
- name: Create some directories inside the orientdb user home
become: true
become_user: '{{ orientdb_user }}'
file: dest={{ item }} state=directory mode=0750
ansible.builtin.file:
dest: "{{ item }}"
state: directory
mode: "0750"
loop:
- '{{ orientdb_data_dir }}'
- '{{ 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
file:
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: true
become_user: '{{ orientdb_user }}'
file:
ansible.builtin.file:
src: '{{ orientdb_tar_filename }}'
dest: '{{ orientdb_install_dir }}'
state: link
- name: Create a link to the data directory
file:
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
force: true
- name: Create a orientdb log directory out of the distribution directory
file:
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: true
become_user: '{{ orientdb_user }}'
file: dest={{ orientdb_home_prefix }}/{{ orientdb_user }}/logs src={{ orientdb_log_dir }} state=link
ansible.builtin.file:
src: "{{ orientdb_log_dir }}"
dest: "{{ orientdb_home_prefix }}/{{ orientdb_user }}/logs"
state: link
- name: Remove the old hook jars
shell: rm -f {{ orientdb_install_dir }}/lib/{{ item }}
with_items: '{{ orientdb_hooks_to_be_removed | default([]) }}'
tags: [ 'orientdb', 'orientdb_hooks' ]
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
get_url: url='{{ item }}' dest={{ orientdb_install_dir }}/lib
with_items: '{{ orientdb_hooks_jars | default([]) }}'
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' ]
tags: ['orientdb', 'orientdb_hooks']
- name: Install the orientdb default settings
template: src=orientdb.default.j2 dest=/etc/default/orientdb owner=root group=root mode=0444
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
lineinfile:
ansible.builtin.lineinfile:
dest: '{{ orientdb_install_dir }}/bin/{{ item }}'
regexp: "^ORIENTDB_PID=.*$"
line: "ORIENTDB_PID={{ orientdb_pid_dir }}/orientdb.pid"
insertafter: "^PRG=.*$"
firstmatch: yes
firstmatch: true
loop:
- server.sh
- shutdown.sh
tags: [ 'orientdb', 'orientdb_pid' ]
tags: ['orientdb', 'orientdb_pid']
- name: Install the orientdb configuration files
template:
ansible.builtin.template:
src: '{{ item }}.j2'
dest: '{{ orientdb_install_dir }}/config/{{ item }}'
owner: '{{ orientdb_user }}'
@ -96,8 +127,7 @@
mode: '0640'
loop: '{{ orientdb_configuration_files }}'
notify: Restart orientdb
tags: [ 'orientdb', 'orientdb_config' ]
tags: ['orientdb', 'orientdb_config']
- name: Set the permissions of some configuration files
ansible.builtin.file:
dest: '{{ orientdb_install_dir }}/config/{{ item }}'
@ -109,104 +139,133 @@
- security.json
- orientdb-etl-log.properties
notify: Restart orientdb
tags: [ 'orientdb', 'orientdb_config' ]
tags: ['orientdb', 'orientdb_config']
- name: Install the nagios nrpe configuration
template: src=orientdb-nrpe.cfg.j2 dest={{ nrpe_include_dir }}/orientdb-nrpe.cfg owner=root group=root mode=0444
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' ]
tags: ['orientdb', 'orientdb_nagios']
- name: Install the orientdb SYSV startup script
template: src=orientdb.init.j2 dest=/etc/init.d/orientdb owner=root group=root mode=0755
tags: [ 'orientdb', 'orientdb_init' ]
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
template: src=orientdb.service.j2 dest=/etc/systemd/system/orientdb.service owner=root group=root mode=0644
tags: [ 'orientdb', 'orientdb_init' ]
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
systemd:
daemon_reload: yes
ansible.builtin.systemd:
daemon_reload: true
when: reload_systemd is changed
- name: Ensure that the service is enabled and running
service: name=orientdb state=started enabled=yes
ansible.builtin.service:
name: orientdb
state: started
enabled: true
when: orientdb_enabled
- name: Ensure that the service is stopped and disabled
service: name=orientdb state=stopped enabled=no
ansible.builtin.service:
name: orientdb
state: stopped
enabled: false
when: not orientdb_enabled
tags: [ 'orientdb' ]
- name: Clean up the backups
tags: ['orientdb', 'orientdb_backup']
when: orientdb_install
- block:
block:
- name: Install a script that removes the old orientdb backups
template: src=backup-cleaner.sh.j2 dest=/usr/local/bin/orientdb-backup-cleaner owner=root group=root mode=555
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
cron:
cron_file: 'orientdb-backup-cleaner'
disabled: no
job: "/usr/local/bin/orientdb-backup-cleaner >/dev/null 2>&1"
special_time: daily
user: '{{ orientdb_user }}'
name: "Remove old orientdb backups"
state: present
tags: [ 'orientdb', 'orientdb_backup' ]
when: orientdb_install
- block:
- name: Create the acme hooks directory if it does not yet exist
file: dest={{ letsencrypt_acme_services_scripts_dir }} state=directory owner=root group=root
- name: Install a letsencrypt hook to update the orientdb certificate
template: src=orientdb-letsencrypt-acme.sh.j2 dest={{ letsencrypt_acme_services_scripts_dir }}/orientdb owner=root group=root mode=4555
tags: [ 'orientdb', 'letsencrypt', 'orientdb_letsencrypt' ]
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"
- block:
- name: Ensure that the service is disabled and stopped
service: name=orientdb state=stopped enabled=no
- name: Remove the orientdb SysV startup file
file: dest=/etc/init.d/orientdb state=absent
when: ansible_service_mgr != 'systemd'
- name: Remove the orientdb systemd unit
file: dest=/usr/lib/systemd/system/orientdb.service state=absent
when: ansible_service_mgr == 'systemd'
- name: Remove the link to the orientdb distribution
file: dest={{ orientdb_home_prefix }}/{{ orientdb_user }}/{{ orientdb_dir }} state=absent
- name: Remove the default options file
file: dest=/etc/default/orientdb state=absent
- name: Remove the backup cleaner script
file: dest=/usr/local/bin/orientdb-backup-cleaner state=absent
- name: Remove the backup cleaner cron job
cron:
cron_file: 'orientdb-backup-cleaner'
disabled: no
job: "/usr/local/bin/orientdb-backup-cleaner >/dev/null 2>&1"
special_time: daily
user: '{{ orientdb_user }}'
name: "Remove old orientdb backups"
state: absent
tags: [ 'orientdb' ]
- 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

View File

@ -1,2 +1,2 @@
---
# vars file for ansible-role-template
jdk_default: "{{ orientdb_jdk_version }}"