Перечень условий для отказоустойчивой установки:
Упрощенная схема отказоустойчивой установки представлена на рисунке.
Перечень обозначенных компонентов приведен в таблице.
Отказоустойчивая установка проводится в следующей последовательности: 1) устанавливается узел с компонентами СУБД и RabbitMQ-server (обе службы на одном узле). Выполняется настройка СУБД; 2) устанавливается основной узел Termidesk. При установке необходимо выбрать компоненты «Broker» и «Gateway» в диалоговом окне псевдографического интерфейса инсталлятора; 3) с основного узла Termidesk на резервные копируется каталог 4) устанавливаются резервные узлы Termidesk; 5) проверяется работоспособность узлов Termidesk; 6) выполняется настройка узлов в режиме высокой доступности.
Для завершения настройки RabbitMQ-server нужно:
Сервис СУБД должен быть настроен таким образом, чтобы он мог принимать подключения с узлов Termidesk, для этого нужно:
После установки необходимо:
После установки основного узла Termidesk нужно передать каталог
где:
Перед началом установки остальных узлов необходимо переместить скопированный ранее каталог
На основном узле вывод команды должен отображать, что активны и загружены все службы Termidesk, пример вывода:
На резервных узлах вывод команды должен отображать, что активны и загружены только службы
Затем необходимо проверить доступность резервных узлов по протоколу HTTPS, выполнив в веб-браузере переход по адресу |
Настройка узлов в режиме высокой доступностиДействия по настройке узлов будут идентичными приведенным в подразделе Настройка менеджера ВРМ в режиме высокой доступности документа СЛЕТ.10001-01 90 02 «Руководство администратора. Настройка программного комплекса» за исключением файла |
Файл /etc/keepalived/keepalived.conf должен быть приведен к виду (по очереди на каждом из узлов):
Значения параметров в файле Параметры, явно подлежащие изменению, отмечены комментарием «# НУЖНО УКАЗАТЬ». |
global_defs {
router_id disp1.termidesk.local # НУЖНО УКАЗАТЬ: hostname хоста
script_user user # НУЖНО УКАЗАТЬ: вместо user -> пользователь, от имени которого запускается keepalived
enable_script_security
}
vrrp_script check_httpd {
script "/usr/bin/pgrep apache" # path of the script to execute
interval 1 # seconds between script invocations, default 1 second
timeout 3 # seconds after which script is considered to have failed
#weight <INTEGER:-254..254> # adjust priority by this weight, default 0
rise 1 # required number of successes for OK transition
fall 2 # required number of successes for KO transition
#user USERNAME [GROUPNAME] # user/group names to run script under
init_fail # assume script initially is in failed state
}
# Для каждого виртуального IPv4-адреса создается свой экземпляр vrrp_instance
vrrp_instance termidesk-taskman {
notify /etc/keepalived/notify.sh
# Initial state, MASTER|BACKUP
# As soon as the other machine(s) come up,
# an election will be held and the machine
# with the highest priority will become MASTER.
# So the entry here doesn't matter a whole lot.
state BACKUP
# interface for inside_network, bound by vrrp
# НУЖНО УКАЗАТЬ: eth0 -> интерфейс, смотрящий в Интернет
interface eth0
# arbitrary unique number from 0 to 255
# used to differentiate multiple instances of vrrpd
# running on the same NIC (and hence same socket).
# НУЖНО УКАЗАТЬ: вместо 2 -> номер экземпляра vrrp_instance
virtual_router_id 2
# for electing MASTER, highest priority wins.
# to be MASTER, make this 50 more than on other machines.
# НУЖНО УКАЗАТЬ: вместо 128 -> приоритет экземпляра vrrp_instance
priority 128
preempt_delay 5 # Seconds
# VRRP Advert interval in seconds (e.g. 0.92) (use default)
advert_int 1
# НУЖНО УКАЗАТЬ: вместо 192.0.2.1 -> IPv4-адрес интерфейса, смотрящего в Интернет
unicast_src_ip 192.0.2.1
authentication {
auth_type PASS
# НУЖНО УКАЗАТЬ: ksedimret -> заменить на безопасный пароль
auth_pass ksedimret
}
virtual_ipaddress {
# В этой секции происходит назначение IP-алиаса
# НУЖНО УКАЗАТЬ: вместо 192.0.2.1/24 -> виртуальный IPv4-адрес и сетевой префикс с интерфейса, смотрящего в Интернет
# НУЖНО УКАЗАТЬ: вместо eth0 -> интерфейс, смотрящий в Интернет
# НУЖНО УКАЗАТЬ: вместо eth0:106 -> интерфейс, смотрящий в Интернет:4-й октет виртуального IPv4-адреса
192.0.2.1/24 dev eth0 label eth0:106
}
track_script {
check_httpd
}
}
vrrp_instance termidesk-vdi {
notify /etc/keepalived/notify.sh
# Initial state, MASTER|BACKUP
# As soon as the other machine(s) come up,
# an election will be held and the machine
# with the highest priority will become MASTER.
# So the entry here doesn't matter a whole lot.
state BACKUP
# interface for inside_network, bound by vrrp
# НУЖНО УКАЗАТЬ: eth0 -> интерфейс, смотрящий в Интернет
interface eth0
# arbitrary unique number from 0 to 255
# used to differentiate multiple instances of vrrpd
# running on the same NIC (and hence same socket).
# НУЖНО УКАЗАТЬ: вместо 107 -> номер экземпляра vrrp_instance
virtual_router_id 107
# for electing MASTER, highest priority wins.
# to be MASTER, make this 50 more than on other machines.
# НУЖНО УКАЗАТЬ: вместо 128 -> приоритет экземпляра vrrp_instance
priority 128
preempt_delay 5 # Seconds
# VRRP Advert interval in seconds (e.g. 0.92) (use default)
advert_int 1
# НУЖНО УКАЗАТЬ: вместо 192.0.2.3 -> IPv4-адрес интерфейса, смотрящего в Интернет
unicast_src_ip 192.0.2.3
authentication {
auth_type PASS
# НУЖНО УКАЗАТЬ: ksedimret -> заменить на безопасный пароль
auth_pass ksedimret
}
virtual_ipaddress {
# В этой секции происходит назначение IP-алиаса
# НУЖНО УКАЗАТЬ: вместо 192.0.2.1/24 -> виртуальный IPv4-адрес и сетевой префикс с интерфейса, смотрящего в Интернет
# НУЖНО УКАЗАТЬ: вместо eth0 -> интерфейс, смотрящий в Интернет
# НУЖНО УКАЗАТЬ: вместо eth0:107 -> интерфейс, смотрящий в Интернет:4-й октет виртуального IPv4-адреса
192.0.2.1/24 dev eth0 label eth0:107
}
track_script {
check_httpd
}
}
vrrp_instance termidesk-wsproxy {
notify /etc/keepalived/notify.sh
# Initial state, MASTER|BACKUP
# As soon as the other machine(s) come up,
# an election will be held and the machine
# with the highest priority will become MASTER.
# So the entry here doesn't matter a whole lot.
state BACKUP
# interface for inside_network, bound by vrrp
# НУЖНО УКАЗАТЬ: eth0 -> интерфейс, смотрящий в Интернет
interface eth0
# arbitrary unique number from 0 to 255
# used to differentiate multiple instances of vrrpd
# running on the same NIC (and hence same socket).
# НУЖНО УКАЗАТЬ: вместо 108 -> номер экземпляра vrrp_instance
virtual_router_id 108
# for electing MASTER, highest priority wins.
# to be MASTER, make this 50 more than on other machines.
# НУЖНО УКАЗАТЬ: вместо 64 -> приоритет экземпляра vrrp_instance
priority 64
preempt_delay 5 # Seconds
# VRRP Advert interval in seconds (e.g. 0.92) (use default)
advert_int 1
# НУЖНО УКАЗАТЬ: вместо 192.0.2.2 -> IPv4-адрес интерфейса, смотрящего в Интернет
unicast_src_ip 192.0.2.2
authentication {
auth_type PASS
# НУЖНО УКАЗАТЬ: ksedimret -> заменить на безопасный пароль
auth_pass ksedimret
}
virtual_ipaddress {
# В этой секции происходит назначение IP-алиаса
# НУЖНО УКАЗАТЬ: вместо 192.0.2.1/24 -> виртуальный IPv4-адрес и сетевой префикс с интерфейса, смотрящего в Интернет
# НУЖНО УКАЗАТЬ: вместо eth0 -> интерфейс, смотрящий в Интернет
# НУЖНО УКАЗАТЬ: вместо eth0:108 -> интерфейс, смотрящий в Интернет:4-й октет виртуального IPv4-адреса
192.0.2.1/24 dev eth0 label eth0:108
}
track_script {
check_httpd
}
} |