Я использую playbook для достижения следующих целей:
- Подключение локального хоста к удаленной сети через OpenVPN
- Установка пакета программного обеспечения на удаленный хост в удаленной сети
- Отключить localhost от соединения OpenVPN
Примечательно, что первый и последний шаги должны быть выполнены на localhost, чтобы иметь возможность (отключить) подключение OpenVPN.
При возникновении любой ошибки в игре № 2 (установка программного обеспечения), воспроизведение прерывается по умолчанию. Однако это, в свою очередь, полностью прерывает выполнение playbook, и соединение OpenVPN остается нетронутым, что нежелательно.
Я уже искал документы для обработки ошибок, но они не указываютлюбой способ спасения на «уровне игры» и продолжения следующей игры в книге игр.
Я не могу использовать block
с rescue
, потому что этот метод ограничен текущим воспроизведением.
Моя книга игр выглядит следующим образом:
- name: Connect to OpenVPN-Server
hosts: localhost
roles:
- role: ovpn-connect
when: HOSTING_TYPE == 'openvpn'
- name: 'Setup {{ PRODUCT }} server on {{ HOSTNAME }}'
hosts: '{{ HOSTNAME }}'
gather_facts: no
roles:
- role: docker
- role: certbot
when: SSL == 'yes'
- role: {{ PRODUCT }}
- role: seeding
vars:
INITIAL_USER: admin
INITIAL_PASS: ***
- role: restore
when: FILENAME is defined and FILENAME != ''
- role: zabbix-agent
when: MONITORING is defined and MONITORING == 'yes'
- name: Disconnect from OpenVPN-Server
hosts: localhost
roles:
- role: ovpn-close
when: HOSTING_TYPE == 'openvpn'
Кто-нибудь из вас знает, как мне решить эту проблему?