instance-status/tasks/main.yml
Knut Ahlers c8d0d96e58
Update role to match new packaging format
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2024-03-31 14:51:14 +02:00

63 lines
2.3 KiB
YAML

---
- name: "Loading distribution specific instructions for {{ ansible_distribution }}"
include_tasks: "{{ ansible_distribution }}.yml"
- name: Set up checks file for ELB Instance Status
template:
src: templates/checks.yml
dest: '{{ instance_status_checks_file }}'
register: instance_status_config
when: "'http://' not in instance_status_checks_file and 'https://' not in instance_status_checks_file"
- name: Get current elb-instance-status version
shell: "/usr/local/bin/elb-instance-status --version || true"
check_mode: no
register: instance_status_version_cmd
- name: Download elb-instance-status release
unarchive:
src: 'https://github.com/Luzifer/elb-instance-status/releases/download/{{ instance_status_version }}/elb-instance-status_linux_amd64.tgz'
remote_src: true
dest: /usr/local/bin
when: instance_status_version not in instance_status_version_cmd.stdout
register: instance_status_binary
- name: Install system.d service
copy:
content: |
[Unit]
Description=Machine health checking service
After=network-online.target
Requires=network-online.target
[Service]
TimeoutStartSec=0
TimeoutStopSec=0
Restart=on-failure
RestartSec=10
SyslogIdentifier=elb-instance-status
ExecStart=/usr/local/bin/elb-instance-status \
--check-definitions-file={{ instance_status_checks_file }} \
--check-interval={{ instance_status_check_interval }} \
--config-refresh={{ instance_status_config_refresh }} \
--listen=:{{ instance_status_port }} \
--unhealthy-threshold={{ instance_status_unhealthy_threshold }} \
--verbose={{ instance_status_verbose | to_json }}
[Install]
WantedBy=multi-user.target
dest: /etc/systemd/system/elb-instance-status.service
register: instance_status_service
- name: Ensure elb-instance-status is enabled
systemd:
name: elb-instance-status
daemon_reload: true
enabled: true
- name: Ensure elb-instance-status is restarted on changes
systemd:
name: elb-instance-status
state: restarted
when: (instance_status_config.changed or instance_status_binary.changed or instance_status_service.changed) and packer_build_name is not defined