diff --git a/roles/ceems_api_server/defaults/main.yml b/roles/ceems_api_server/defaults/main.yml index 1c1a9ec..b24d095 100644 --- a/roles/ceems_api_server/defaults/main.yml +++ b/roles/ceems_api_server/defaults/main.yml @@ -23,6 +23,7 @@ ceems_api_server_data_backup_interval: "" ceems_api_server_admin_users: [] ceems_api_server_cli_args: [] ceems_api_server_env_vars: {} +ceems_api_server_extra_configs: {} ceems_api_server_binary_install_dir: /usr/local/bin ceems_api_server_system_group: ceems ceems_api_server_system_user: "{{ ceems_api_server_system_group }}" diff --git a/roles/ceems_api_server/meta/argument_specs.yml b/roles/ceems_api_server/meta/argument_specs.yml index 29f8711..9cede9f 100644 --- a/roles/ceems_api_server/meta/argument_specs.yml +++ b/roles/ceems_api_server/meta/argument_specs.yml @@ -110,3 +110,8 @@ argument_specs: - I(Advanced) - Environment variables will be passed to CEEMS API server type: dict + ceems_api_server_extra_configs: + description: + - I(Advanced) + - Extra configuration files for CEEMS API server. These files will be created in CEEMS API server config dir with the same name as key of the argument dict. + type: dict diff --git a/roles/ceems_api_server/molecule/alternative/molecule.yml b/roles/ceems_api_server/molecule/alternative/molecule.yml index 3a15474..abe77af 100644 --- a/roles/ceems_api_server/molecule/alternative/molecule.yml +++ b/roles/ceems_api_server/molecule/alternative/molecule.yml @@ -21,3 +21,7 @@ provisioner: - --web.max.query.period=30d ceems_api_server_env_vars: foo: bar + ceems_api_server_extra_configs: + tsdb_config: + web_url: http://localhost:9090 + queries: {} diff --git a/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py b/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py index a246d13..6e96479 100644 --- a/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py +++ b/roles/ceems_api_server/molecule/alternative/tests/test_alternative.py @@ -21,7 +21,9 @@ def test_directories(host, dir): @pytest.mark.parametrize("file", [ "/etc/systemd/system/ceems_api_server.service", - "/usr/local/bin/ceems_api_server" + "/usr/local/bin/ceems_api_server", + "/etc/ceems_api_server/config.yaml", + "/etc/ceems_api_server/tsdb_config.yaml", ]) def test_files(host, file): f = host.file(file) diff --git a/roles/ceems_api_server/tasks/configure.yml b/roles/ceems_api_server/tasks/configure.yml index 0d07a68..20989ce 100644 --- a/roles/ceems_api_server/tasks/configure.yml +++ b/roles/ceems_api_server/tasks/configure.yml @@ -5,7 +5,7 @@ dest: /etc/systemd/system/ceems_api_server.service owner: root group: root - mode: "0640" + mode: u+rw,g+r,o-rwX notify: restart ceems_api_server - name: Create ceems_api_server config directory @@ -31,7 +31,24 @@ dest: /etc/ceems_api_server/config.yaml owner: "{{ ceems_api_server_system_user }}" group: "{{ ceems_api_server_system_group }}" - mode: "0640" + mode: u+rw,g+r,o-rwX + notify: restart ceems_api_server + +- name: Create extra config files + ansible.builtin.copy: + dest: "/etc/ceems_api_server/{{ item.key }}.yaml" + owner: "{{ ceems_api_server_system_user }}" + group: "{{ ceems_api_server_system_group }}" + mode: u+rw,g+r,o-rwX + content: | + # + # Ansible managed: Do NOT edit this file manually! + # + --- + + {{ item.value | to_nice_yaml }} + when: ceems_api_server_extra_configs | length > 0 + loop: "{{ ceems_api_server_extra_configs | dict2items }}" notify: restart ceems_api_server - name: Make the ceems_api_server data directory