Требуемые условия завершения
Задание:
ii. Установить и настроить Keepalived:
- 1. Режим работы: Active-Backup;
- 2. Cloud-HA01: Активный узел (приоритет 100);
- 3. Cloud-HA02: Резервный узел (приоритет 90);
- 4. Настроить виртуальный IP (VIP) для отказоустойчивости, используйте первый не занятый IP-адрес из подсети Internal-Net;
- 5. Настроить аутентификацию между узлами с использованием общего секретного ключа (в текущей вариации задания VIP — должен просто быть, и корректно переезжать между Активным и Резервным узлом, использовать VIP — для настройки какого-либо иного функционала не требуется).
Вариант реализации:
Cloud-ADM:
- Вся дальнейшая работа реализуется в контексте директории /home/altlinux/bin/ansible:
cd /home/altlinux/bin/ansible
- Создадим файл 'keepalive_deploy_playbook.yml', в котором последовательно будем описывать всё что касается настройки серверов Cloud-HA01 и Cloud-HA02 в контексте данного задания:
vim keepalive_deploy_playbook.yml
-
- Добавляем следующее содержимое:
- см. комментарии в коде;
- Добавляем следующее содержимое:
---
- name: Install Keepalive
hosts: ha
become: true
tasks:
# Установка пакета "keepalived"
- name: Install Keepalive
community.general.apt_rpm:
name: keepalived
state: present
update_cache: true
# Включение функции перессылки пакетов (forwarding)
- name: Enable IPv4 forwarding
ansible.posix.sysctl:
name: net.ipv4.ip_forward
value: '1'
sysctl_set: yes
state: present
reload: yes
ignoreerrors: true
failed_when: false
# Настройка Cloud-HA01
- hosts: Cloud-HA01
become: true
tasks:
# Копирование конфигурационного файла "keepalived.conf" из шаблона
- name: Copy file 'keepalived.conf'
ansible.builtin.template:
src: templates/ha01_keepalived.conf.j2
dest: /etc/keepalived/keepalived.conf
notify:
- Restarted Keepalive
# Включение и добавление в автозагрузку Keepalive
- name: Started and enabled Keepalive
ansible.builtin.systemd:
name: keepalived
state: started
enabled: true
handlers:
- name: Restarted Keepalive
ansible.builtin.systemd:
name: keepalived
state: restarted
# Настройка Cloud-HA01
- hosts: Cloud-HA02
become: true
tasks:
# Копирование конфигурационного файла "keepalived.conf" из шаблона
- name: Copy file 'keepalived.conf'
ansible.builtin.template:
src: templates/ha02_keepalived.conf.j2
dest: /etc/keepalived/keepalived.conf
notify:
- Restarted Keepalive
# Включение и добавление в автозагрузку Keepalive
- name: Started and enabled Keepalive
ansible.builtin.systemd:
name: keepalived
state: started
enabled: true
handlers:
- name: Restarted Keepalive
ansible.builtin.systemd:
name: keepalived
state: restarted
- В директории templates создаём файл шаблона "ha01_keepalived.conf.j2":
vim templates/ha01_keepalived.conf.j2
-
- и указываем следующее содержимое:
global_defs {
router_id HAProxy_Cluster_Master
}
vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass P@ssw0rd
}
virtual_ipaddress {
192.168.10.7
}
}
- В директории templates создаём файл шаблона "ha02_keepalived.conf.j2":
vim templates/ha02_keepalived.conf.j2
-
- и указываем следующее содержимое:
global_defs {
router_id HAProxy_Cluster_Backup
}
vrrp_instance VI_1 {
state BACKUP
interface eth1
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass P@ssw0rd
}
virtual_ipaddress {
192.168.10.7
}
}
- Запускаем playbook для настройки веб-серверов:
ansible-playbook keepalive_deploy_playbook.yml
-
- Результат:
- Проверить наличие виртуального IP-адреса на Cloud-HA01:
- Остановить службу keepalived на Cloud-HA01 и проверить наличие виртуального IP на Cloud-HA02:
Последнее изменение: вторник, 24 июня 2025, 13:05