diff --git a/ansible-imalive/defaults/main.yml b/ansible-imalive/defaults/main.yml index 17da77c..4a9d30e 100644 --- a/ansible-imalive/defaults/main.yml +++ b/ansible-imalive/defaults/main.yml @@ -1,4 +1,6 @@ --- -imalive_api_version: 1.7 +imalive_api_version: 4.0.1 imalive_port: 8099 imalive_wait_time: 300 +imalive_force_recreate: true +imalive_monitors: [] diff --git a/ansible-imalive/meta/main.yml b/ansible-imalive/meta/main.yml index ae8a47c..60db9aa 100644 --- a/ansible-imalive/meta/main.yml +++ b/ansible-imalive/meta/main.yml @@ -7,5 +7,4 @@ galaxy_info: min_ansible_version: 2.2 platforms: - - name: CentOS - name: RaspberrypiOS diff --git a/ansible-imalive/tasks/main.yml b/ansible-imalive/tasks/main.yml index 3d9981b..2a597d2 100644 --- a/ansible-imalive/tasks/main.yml +++ b/ansible-imalive/tasks/main.yml @@ -5,10 +5,13 @@ template: src: "{{ item.template }}.j2" dest: "{{ item.path }}/{{ item.template }}" - mode: '0644' + mode: "{{ item.mode }}" with_items: - - { template: docker-compose-imalive.yml , path: "{{ node_home }}" } + - { template: docker-compose-imalive.yml , path: "{{ node_home }}", mode: '0644' } + - { template: .env.imalive , path: "{{ node_home }}", mode: '0644' } + - { template: imalive.yml , path: "{{ node_home }}", mode: '0644' } + - { template: imalive_start.sh , path: "{{ node_home }}", mode: '0755' } - name: Run the container become: yes - command: "docker-compose -f {{ node_home }}/docker-compose-imalive.yml up -d --force-recreate" + command: "bash {{ node_home }}/imalive_start.sh" diff --git a/ansible-imalive/templates/.env.imalive.j2 b/ansible-imalive/templates/.env.imalive.j2 new file mode 100644 index 0000000..087ed69 --- /dev/null +++ b/ansible-imalive/templates/.env.imalive.j2 @@ -0,0 +1,6 @@ +WAIT_TIME={{ imalive_wait_time }} +IMALIVE_NODE_NAME={{ node_name }} + +{% if imalive_otel_collector_endpoint is defined and imalive_otel_collector_endpoint %} +OTEL_COLLECTOR_ENDPOINT={{ imalive_otel_collector_endpoint }} +{% endif %} diff --git a/ansible-imalive/templates/docker-compose-imalive.yml.j2 b/ansible-imalive/templates/docker-compose-imalive.yml.j2 index 18e5c44..383b23d 100644 --- a/ansible-imalive/templates/docker-compose-imalive.yml.j2 +++ b/ansible-imalive/templates/docker-compose-imalive.yml.j2 @@ -5,8 +5,9 @@ services: image: comworkio/imalive-api:{{ imalive_api_version }}-x86 container_name: imalive-api restart: always - environment: - - WAIT_TIME={{ imalive_wait_time }} - - IMALIVE_NODE_NAME={{ node_name }} + env_file: + - .env.imalive + volumes: + - {{ node_home }}/imalive.yml:/app/imalive.yml:ro ports: - {{ imalive_port }}:8080 diff --git a/ansible-imalive/templates/imalive.yml.j2 b/ansible-imalive/templates/imalive.yml.j2 new file mode 100644 index 0000000..07c228c --- /dev/null +++ b/ansible-imalive/templates/imalive.yml.j2 @@ -0,0 +1,2 @@ +--- +monitors: {{ imalive_monitors }} diff --git a/ansible-imalive/templates/imalive_start.sh.j2 b/ansible-imalive/templates/imalive_start.sh.j2 new file mode 100644 index 0000000..7e6f689 --- /dev/null +++ b/ansible-imalive/templates/imalive_start.sh.j2 @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +FORCE_RECREATE_OPT="" +FORCE_RECREATE_FLAG="{{ imalive_force_recreate }}" + +if [[ $FORCE_RECREATE_FLAG = "True" ]]; then + FORCE_RECREATE_OPT="--force-recreate" + docker ps -a|awk '($2 ~ "comworkio/imalive"){system("docker rm -f "$1)}' || : +fi + +{% if centos_version is defined and (centos_version == "9" or centos_version == 9) %} +COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker compose -f {{ node_home }}/docker-compose-imalive.yml up -d $FORCE_RECREATE_OPT +{% else %} +COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose -f {{ node_home }}/docker-compose-imalive.yml up -d $FORCE_RECREATE_OPT +{% endif %}