7.5.4.3 Смена адреса VIP¶
Могут возникать ситуации, при которых требуется высвободить занятый
IP-адрес, назначенный как VIP (точка входа в облачный контроллер).
Для смены адреса VIP потребуется выполнить специальный скрипт
(change_VIP.sh
), на всех УУ стенда (исходный текст – в конце раздела).
Для изменения VIP-адреса в Pacemaker подключитесь к root@control1 и выполните команду:
pcs resource update management_net_vip ip=NEW_IP
Проверьте, что в /etc/
не осталось файлов конфигураций, содержащих
старый VIP-адрес, и появился новый (root@control1):
grep -rnw '/etc/' -e 'OLD_IP'
# root@control1
grep -rnw '/etc/' -e 'NEW_IP'
7.5.4.3.1 Возможные проблемы¶
Не отвечает служба Nova.
В логе /var/log/nova/nova-api.log
ошибка:
«SQL connection failed. -3 attempts left.: oslo_db.exception.DBConnectionError: (pymysql.err.OperationalError) (2003, «Can’t connect to MySQL server on „10.55.13.9“ ([Errno 113] EHOSTUNREACH)») «
Решение:
подключиться к БД (nova-api) и заменить следующее значение в таблице
cell_mappings
(Рис. 7.42).
7.5.4.3.2 Исходный текст скрипта (change_VIP.sh)¶
#!/bin/bash
#old_ip=$1
#new_ip=$2
read -p "Введите старый VIP-адрес: " old_ip
read -p "Введите новый VIP-адрес: " new_ip
###files=(/etc/hosts /etc/haproxy/haproxy.cfg)
files=(/etc/hosts /etc/haproxy/haproxy.cfg /etc/keystone/keystone.conf /etc/glance/glance-api.conf \
/etc/cinder/cinder.conf /etc/neutron/neutron.conf /etc/nova/nova.conf \
/etc/placement/placement.conf /etc/gnocchi/gnocchi.conf /etc/heat/heat.conf \
/etc/tionix/tionix.yaml /etc/tionix/vdi_server.yaml /etc/sysconfig/memcached \
/etc/openstack-dashboard/local_settings /etc/ceilometer/ceilometer.conf \
/etc/glance/glance-registry.conf)
## Проверка того, что IPv4-адреса введены корректно
echo -e "\nПроверка введенных адресов на корректность: \n"
for ip in $old_ip $new_ip; do
if expr "$ip" : '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
IFS=.
set $ip
for quad in 1 2 3 4; do
if eval [ \$$quad -gt 255 ]; then
echo "Проверка IPv4 адреса прошла неуспешно - ($ip)"
exit 1
fi
done
echo "Проверка IPv4 адреса прошла успешно - ($ip)"
else
echo "Проверка IPv4 адреса прошла неуспешно - ($ip)"
exit 1
fi
done
## Замена IPv4-адреса в файлах
IFS=' '
for file in ${files[@]}; do
echo -e "\nИзменение файла: ${file}"
sed -i "s/${old_ip}/${new_ip}/gi" $file || break
echo -e "${file} был изменен"
done