From e61972fd4baf0ad5414541d8fdfd2d01c033c9e5 Mon Sep 17 00:00:00 2001 From: uumas Date: Mon, 27 Jan 2025 05:32:38 +0200 Subject: [PATCH] kimai: Add argspec, sane defaults, upgrade if requested, fixes --- roles/kimai/defaults/main.yaml | 6 ++++ roles/kimai/meta/argument_specs.yaml | 46 ++++++++++++++++++++++++++++ roles/kimai/tasks/main.yaml | 12 ++++---- roles/kimai/templates/htaccess.j2 | 2 +- 4 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 roles/kimai/defaults/main.yaml create mode 100644 roles/kimai/meta/argument_specs.yaml diff --git a/roles/kimai/defaults/main.yaml b/roles/kimai/defaults/main.yaml new file mode 100644 index 0000000..9f10c06 --- /dev/null +++ b/roles/kimai/defaults/main.yaml @@ -0,0 +1,6 @@ +--- +kimai_db_user: "{{ kimai_db }}" +kimai_db_host: localhost + +kimai_php_executable: php +kimai_upgrade: false diff --git a/roles/kimai/meta/argument_specs.yaml b/roles/kimai/meta/argument_specs.yaml new file mode 100644 index 0000000..5ed7a45 --- /dev/null +++ b/roles/kimai/meta/argument_specs.yaml @@ -0,0 +1,46 @@ +--- +argument_specs: + main: + description: Installs kimai if not already installed system-wide + options: + kimai_installdir: + description: Directory to install kimai in + type: str + required: true + kimai_webroot: + description: Directory of kimai webroot + type: str + required: true + + kimai_db: + description: Kimai mysql database name + type: str + required: true + kimai_db_user: + description: Kimai mysql database user. Defaults to database name. + type: str + required: false + kimai_db_pw: + description: Kimai mysql database password + type: str + required: true + kimai_db_host: + description: Kimai mysql database host + type: str + required: false + default: localhost + kimai_db_server_version: + description: Kimai mysql server version. You can check this with `mysql --version`. + type: str + required: true + + kimai_php_executable: + description: Php executable to use for kimai install scripts + type: str + required: false + default: php + kimai_upgrade: + description: Whether to upgrade kimai to the latest version if already installed + type: bool + required: false + default: false diff --git a/roles/kimai/tasks/main.yaml b/roles/kimai/tasks/main.yaml index 2d3882e..a2b9c38 100644 --- a/roles/kimai/tasks/main.yaml +++ b/roles/kimai/tasks/main.yaml @@ -1,33 +1,33 @@ --- - - name: Clone kimai git repo ansible.builtin.git: repo: "https://github.com/kevinpapst/kimai2.git" dest: "{{ kimai_installdir }}" version: main + update: "{{ kimai_upgrade }}" - name: Install kimai dependencies using composer community.general.composer: working_dir: "{{ kimai_installdir }}" composer_executable: "{{ composer_path | default(omit) }}" - executable: "{{ kimai_php_executable | default(omit) }}" + executable: "{{ kimai_php_executable }}" - name: Configure kimai database ansible.builtin.lineinfile: path: "{{ kimai_installdir }}/.env" regexp: "^DATABASE_URL=.*$" line: "\ - DATABASE_URL=mysql://{{ kimai_db_user | default(kimai_db) }}:{{ kimai_db_pw }}\ + DATABASE_URL=mysql://{{ kimai_db_user }}:{{ kimai_db_pw }}\ @{{ kimai_db_host | default('localhost') }}:3306/{{ kimai_db }}\ - ?charset=utf8&serverVersion={{ kimai_db_server }}" + ?charset=utf8&serverVersion={{ kimai_db_server_version }}" - name: Run kimai install script - ansible.builtin.command: "{{ kimai_php_executable + ' ' if kimai_php_executable is defined else '' }}bin/console kimai:install -n" + ansible.builtin.command: "{{ kimai_php_executable ~ ' ' }}bin/console kimai:install -n" args: chdir: "{{ kimai_installdir }}" register: kimai_install changed_when: "'[OK] Already at the latest version' not in kimai_install.stdout" - failed_when: "'[OK] Congratulations! Successfully installed Kimai' not in kimai_install.stdout" + failed_when: "'[OK] Successfully installed Kimai' not in kimai_install.stdout" - name: Add symlink to kimai public in webroot ansible.builtin.file: diff --git a/roles/kimai/templates/htaccess.j2 b/roles/kimai/templates/htaccess.j2 index 5f81822..b82a44d 100644 --- a/roles/kimai/templates/htaccess.j2 +++ b/roles/kimai/templates/htaccess.j2 @@ -1,4 +1,4 @@ -{{ ansible_managed }} +# {{ ansible_managed }} RewriteEngine On