Эй, все еще новичок в Ansible.
Я создал книгу игр (тест), в которой будет выполнено скользящее обновление для кластера Mariadb, который использует HAproxy в качестве фунта.
Iпонятия не имею, как использовать словарь (нижнюю часть кода) для всех моих задач в игре.Кроме того, он должен зацикливаться, как первый сервер 1, затем сервер 3, затем сервер 2, а затем сервер 4. Идея состоит в том, что если хост или ip изменились, вам придется изменить его только в словаре.
Напримерtask1 должен использовать key.value host1, такой же, как для task2, и когда его цикл done для следующего хоста.
Я пытался использовать модуль vars, но он работал только для конкретной задачи.Я думал об использовании папки Vars, но я не использую архитектуру ролей.
- hosts: DBserver
become: yes
tasks:
- name: disable the haproxy server
replace:
path: /etc/haproxy/haproxy.cfg
regexp: "{{ item }}"
replace: 'server "{{}}" "{{}}" check weight 0'
with_items:
- 'server "{{}}" "{{}}" check weight 1'
- hosts: "{{}}"
become: yes
tasks:
- name: stop the mariadb
service:
name: mariadb
state: stopped
- hosts: DBserver
become: yes
tasks:
replace:
path: /etc/haproxy/haproxy.cfg
regexp: "{{ item }}"
replace: 'server "{{}}}" "{{}}" check weight 1'
with_items:
- 'server "{{}}" "{{}}" check weight 0'
dictionary:
{ 'name': 'host1', 'key': 'ipxxx' }, { 'name': 'host2', 'key': 'ipxxxx' }, { 'name': 'host3', 'key': 'ipxxx' }, { 'name': 'host4', 'key': 'ipxxx' }