Реализация идемпотентной Ansible-роли, позволяющая автоматизировать следующие действия:
- Установка nginx, cron, jq
- Настройка и обеспечение запуска Nginx таким образом, чтобы
GET /service_data
отдавал/opt/service_state.json
- Настройка изменения значений в файле
/opt/serivce_state.json
Файл /opt/service_state.json
выглядит следующим образом:
{
"title": "Seems working",
"uptime": 0
}
Решение протестировано и работает на Ubuntu 22.04
,Centos 7
. Для автоматизации работы с виртуальными машинам, на которых тестировалась Ansible-Role, использовался IaC Vagrant
Свойства:
- Повторный запуск ansible с той же конфигурацией не сбрасывает значение uptime в файле /opt/service_state.json и не перезапускает nginx
- После изменения поля
title
в шаблоне в файле/opt/service_state.json
происходит обновление/opt/service_state.json
и рестарт nginx.
Подробную документацию по работе с ролью смотрите в соответствующем файле nginx_timer/README.md