controller的高可用
1)安装必要软件
[root@openstack-controller2 ~]# yum -y install centos-release-openstack-train.noarch
[root@openstack-controller2 ~]# yum install -y python2-PyMySQL libibverbs python-memcached
[root@openstack-controller2 ~]# yum -y install python-openstackclient openstack-selinux
[root@openstack-controller2 ~]# yum -y install openstack-keystone httpd mod_wsgi
2)keystone部署
2.1)拷贝原来controller1节点的keystone配置文件到controller2
[root@openstack-controller1 ~]# cd /etc/keystone/
[root@openstack-controller1 keystone]# tar zcvf keystone-controller1.tar.gz ./
[root@openstack-controller1 keystone]# scp keystone-controller1.tar.gz 192.168.139.32:/etc/keystone/
[root@openstack-controller2 ~]# cd /etc/keystone/
[root@openstack-controller2 keystone]# tar xf keystone-controller1.tar.gz
`配置解析`
[root@openstack-controller2 keystone]# echo '192.168.139.248 openstack-vip.stangj.local' >> /etc/hosts
2.2)配置启动httpd
[root@openstack-controller2 keystone]# vim /etc/httpd/conf/httpd.conf
# 95 行添加
ServerName 192.168.139.32
[root@openstack-controller2 keystone]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
`启动httpd`
[root@openstack-controller2 keystone]# systemctl enable --now httpd.service
[root@openstack-controller2 keystone]# ss -tnl | grep 5000
LISTEN 0 128 [::]:5000 [::]:*
2.3)验证keystone服务
2.3.1)修改haproxy配置文件
[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg
# 在相应keystone配置进行修改
listen openstack-keystone-5000
bind 192.168.139.248:5000
mode tcp
# server 192.168.139.31 192.168.139.31:5000 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:5000 check inter 3s fall 3 rise 5
`重启服务`
[root@openstack-haproxy ~]# systemctl restart haproxy.service
[root@openstack-haproxy ~]# ss -tnl | grep 5000
LISTEN 0 128 192.168.139.248:5000 *:*
2.3.2)controller1验证是否可以使用keystone
[root@openstack-controller1 ~]# source admin.sh
[root@openstack-controller1 ~]# openstack user list
+----------------------------------+-----------+
| ID | Name |
+----------------------------------+-----------+
| 5c4b6243d95742799de0fc97ef119967 | admin |
| f40449a65bcf491aaf44cc4f8e09f3fa | myuser |
| 34a900b8a67f40439804c830cd5957da | glance |
| cb85bb0ca6494d2fa018e0a9de0e946b | placement |
| a4dea845d5b7456fb2ba6f426d59f8ba | nova |
| 282317cd0bb74396a7a12dcdd96aeed0 | neutron |
+----------------------------------+-----------+
看到上面信息,这说明controller2的keystone服务没有问题
3)glance部署
3.1)安装相应包
[root@openstack-controller2 ~]# yum -y install openstack-glance
3.2)配置镜像挂载点
[root@openstack-controller2 ~]# mkdir /var/lib/glance/images
[root@openstack-controller2 ~]# chown -R glance:glance /var/lib/glance/images
[root@openstack-mysql ~]# echo '192.168.139.36:/data/glance /var/lib/glance/images nfs defaults,_netdev 0 0' >> /etc/fstab
[root@openstack-controller2 ~]# mount -a
[root@openstack-controller2 ~]# df -TH
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 13M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 81G 5.7G 75G 8% /
/dev/sda1 xfs 1.1G 158M 906M 15% /boot
tmpfs tmpfs 396M 0 396M 0% /run/user/0
192.168.139.36:/data/glance nfs4 81G 2.6G 78G 4% /var/lib/glance/images
[root@openstack-controller2 ~]# ll /var/lib/glance/images
total 880600
-rw-r----- 1 glance glance 12716032 Dec 14 23:34 060a4a23-5aa8-4176-8f31-0ccd318ebf2a
-rw-r----- 1 glance glance 888995840 Dec 18 13:58 f3d8d733-347c-4960-ba1f-55a087cb19cb
3.3)拷贝原来controller1节点的glance配置文件到controller2
[root@openstack-controller1 ~]# cd /etc/glance/
[root@openstack-controller1 glance]# tar zcf glance-controller1.tar.gz ./*
[root@openstack-controller1 glance]# scp glance-controller1.tar.gz 192.168.139.32:/etc/glance/
[root@openstack-controller2 glance]# tar xf glance-controller1.tar.gz
3.4)启动glance服务
[root@openstack-controller2 ~]# systemctl enable --now openstack-glance-api.service
[root@openstack-controller2 ~]# ss -tnl | grep 9292
LISTEN 0 128 *:9292 *:*
3.5)修改haproxy
[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg
# 修改增加下面消息
listen openstack-glance-9292
bind 192.168.139.248:9292
mode tcp
# server 192.168.139.31 192.168.139.31:9292 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:9292 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service
[root@openstack-haproxy ~]# ss -tnl | grep 9292
LISTEN 0 128 192.168.139.248:9292 *:*
3.6)验证服务
[root@openstack-controller1 ~]# source admin.sh
[root@openstack-controller1 glance]# openstack image list
+--------------------------------------+-----------------+--------+
| ID | Name | Status |
+--------------------------------------+-----------------+--------+
| f3d8d733-347c-4960-ba1f-55a087cb19cb | CentOS-7-x86_64 | active |
| 060a4a23-5aa8-4176-8f31-0ccd318ebf2a | cirros-0.4.0 | active |
+--------------------------------------+-----------------+--------+
看到上面信息,这说明controller2的glance服务没有问题
4)部署Placement
4.1)安装相应包
[root@openstack-controller2 ~]# yum -y install openstack-placement-api
4.2)拷贝原来controller1节点的placement配置文件到controller2
[root@openstack-controller1 ~]# cd /etc/placement/
[root@openstack-controller1 placement]# tar zcf placement-controller1.tar.gz ./*
[root@openstack-controller1 placement]# scp placement-controller1.tar.gz 192.168.139.32:/etc/placement/
[root@openstack-controller2 ~]# cd /etc/placement/
[root@openstack-controller2 placement]# tar xf placement-controller1.tar.gz
[root@openstack-controller2 placement]# vim /etc/httpd/conf.d/00-placement-api.conf
[root@openstack-controller2 placement]# vim /etc/httpd/conf.d/00-placement-api.conf
# 在最后一行添加下面9行内容
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
4.3)重启httpd服务
[root@openstack-controller2 placement]# systemctl restart httpd
4.4)修改haproxy
[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg
# 修改增加下面消息
listen openstack-placement-8778
bind 192.168.139.248:8778
mode tcp
# server 192.168.139.31 192.168.139.31:8778 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:8778 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service
[root@openstack-haproxy ~]# ss -tnl | grep 8778
LISTEN 0 128 192.168.139.248:8778 *:*
4.5)验证服务
[root@openstack-controller1 ~]# placement-status upgrade chack
+----------------------------------+
| Upgrade Check Results |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success |
| Details: None |
+----------------------------------+
| Check: Incomplete Consumers |
| Result: Success |
| Details: None |
+----------------------------------+
看到上面信息,这说明controller2的Placement服务没有问题
5)部署nova
5.1)安装相应包
[root@openstack-controller2 ~]# yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler
5.2)拷贝原来controller1节点的nova配置文件到controller2
[root@openstack-controller1 ~]# cd /etc/nova/
[root@openstack-controller1 nova]# tar zcf nova-controller1.tar.gz ./*
[root@openstack-controller1 nova]# scp nova-controller1.tar.gz 192.168.139.32:/etc/nova/
[root@openstack-controller2 nova]# tar xf nova-controller1.tar.gz
`需要修改下面这个文件,把IP改为本地地址`
[root@openstack-controller2 nova]# grep 192 ./ -R
./nova.conf:server_listen = 192.168.139.31
./nova.conf:server_proxyclient_address = 192.168.139.31
[root@openstack-controller2 nova]# vim nova.conf
.......
server_listen = 192.168.139.32
server_proxyclient_address = 192.168.139.32
.......
5.3)启动服务
[root@openstack-controller2 nova]# systemctl enable --now \
openstack-nova-api.service \
openstack-nova-scheduler.service \
openstack-nova-conductor.service \
openstack-nova-novncproxy.service
5.4)修改haproxy
[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg
# 修改增加下面消息
listen openstack-nova-8774
bind 192.168.139.248:8774
mode tcp
# server 192.168.139.31 192.168.139.31:8774 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:8774 check inter 3s fall 3 rise 5
# 修改增加下面消息
listen openstack-nova_api-8775
bind 192.168.139.248:8775
mode tcp
# server 192.168.139.31 192.168.139.31:8775 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:8775 check inter 3s fall 3 rise 5
# 修改增加下面消息
listen openstack-vnc-6080
bind 192.168.139.248:6080
mode tcp
# server 192.168.139.31 192.168.139.31:6080 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:6080 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service
[root@openstack-haproxy ~]# ss -tnl | grep -E '8774|6080'
LISTEN 0 128 192.168.139.248:6080 *:*
LISTEN 0 128 192.168.139.248:8774 *:*
5.5)验证服务
[root@openstack-controller1 ~]# nova service-list
+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | Forced down |
+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| 518a8c83-c6d4-451c-8943-fa55c593948c | nova-conductor | openstack-controller1.stangj.local | internal | enabled | up | 2023-12-19T13:34:11.000000 | - | False |
| 9d9d1228-2096-4ca3-97a9-8b85133db7fa | nova-scheduler | openstack-controller1.stangj.local | internal | enabled | up | 2023-12-19T13:34:16.000000 | - | False |
| a45e7eeb-1907-4ecf-a836-7ca69b588edf | nova-compute | openstack-node1.stangj.local | nova | enabled | up | 2023-12-19T13:34:04.000000 | - | False |
| f8bb561e-8f49-4db1-b16e-8af55b376027 | nova-conductor | openstack-controller2.stangj.local | internal | enabled | up | 2023-12-19T13:33:58.000000 | - | False |
| 5c96b39a-609c-4508-b4d4-50f8f7e0a6f3 | nova-scheduler | openstack-controller2.stangj.local | internal | enabled | up | 2023-12-19T13:34:01.000000 | - | False |
+--------------------------------------+----------------+------------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+
看到上面信息,这说明controller2的nova服务没有问题
6)部署neutron
6.1)安装相应包
[root@openstack-controller2 ~]# yum -y install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
6.2)拷贝原来controller1节点的neutron配置文件到controller2
[root@openstack-controller1 ~]# cd /etc/neutron/
[root@openstack-controller1 neutron]# tar zcf neutron-controller1.tar.gz ./*
[root@openstack-controller1 neutron]# scp neutron-controller1.tar.gz 192.168.139.32:/etc/neutron/
[root@openstack-controller2 ~]# cd /etc/neutron/
[root@openstack-controller2 neutron]# tar xf neutron-controller1.tar.gz
6.3)启动服务
[root@openstack-controller2 ~]# systemctl enable --now neutron-server.service \
neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
neutron-metadata-agent.service
6.4)修改haproxy
[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg
# 修改增加下面消息
listen openstack-neutron-9696
bind 192.168.139.248:9696
mode tcp
# server 192.168.139.31 192.168.139.31:9696 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:9696 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service
[root@openstack-haproxy ~]# ss -tnl | grep 9696
LISTEN 0 128 192.168.139.248:9696 *:*
6.5)验证服务
[root@openstack-controller1 ~]# source admin.sh
[root@openstack-controller1 ~]# neutron agent-list
neutron CLI is deprecated and will be removed in the future. Use openstack CLI instead.
+--------------------------------------+--------------------+------------------------------------+-------------------+-------+----------------+---------------------------+
| id | agent_type | host | availability_zone | alive | admin_state_up | binary |
+--------------------------------------+--------------------+------------------------------------+-------------------+-------+----------------+---------------------------+
| 05007836-c748-4493-bbbe-c84aef862f9e | Linux bridge agent | openstack-node2.stangj.local | | xxx | True | neutron-linuxbridge-agent |
| 659c95f7-30c4-4959-8ba0-a3014de7aef4 | DHCP agent | openstack-controller2.stangj.local | nova | :-) | True | neutron-dhcp-agent |
| 6d7ace9c-061c-45ba-834b-52f24585c452 | Linux bridge agent | openstack-controller1.stangj.local | | :-) | True | neutron-linuxbridge-agent |
| 7babc5ac-d07d-4fe4-90ab-62775b4ef90b | Linux bridge agent | openstack-node1.stangj.local | | :-) | True | neutron-linuxbridge-agent |
| 83ad2332-8716-4a8f-b050-1daa3b22c3bf | DHCP agent | openstack-controller1.stangj.local | nova | :-) | True | neutron-dhcp-agent |
| a8b85139-a30a-444e-8731-730e7a705a4d | Linux bridge agent | openstack-controller2.stangj.local | | :-) | True | neutron-linuxbridge-agent |
| afb7c427-89ba-4e91-bff2-604e97a5ca91 | Metadata agent | openstack-controller1.stangj.local | | :-) | True | neutron-metadata-agent |
| e48b7889-1b53-41fc-bae6-36853b021be6 | Metadata agent | openstack-controller2.stangj.local | | :-) | True | neutron-metadata-agent |
+--------------------------------------+--------------------+------------------------------------+-------------------+-------+----------------+---------------------------+
看到上面信息,这说明controller2的neutron服务没有问题
7)部署dashboard
7.1)安装相应软件
[root@openstack-controller2 ~]# yum -y install openstack-dashboard
7.2)6.2)拷贝原来controller1节点的dashboard配置文件到controller2
[root@openstack-controller1 ~]# cd /etc/openstack-dashboard/
[root@openstack-controller1 openstack-dashboard]# tar zcf dashboard-controller1.tar.gz ./*
[root@openstack-controller1 openstack-dashboard]# scp dashboard-controller1.tar.gz 192.168.139.32:/etc/openstack-dashboard/
[root@openstack-controller2 ~]# cd /etc/openstack-dashboard/
[root@openstack-controller2 openstack-dashboard]# tar xf dashboard-controller1.tar.gz
`需要修改下面这个文件,把IP改为本地地址`
[root@openstack-controller2 openstack-dashboard]# grep 192 ./ -R
./local_settings:ALLOWED_HOSTS = ['192.168.139.31', 'openstack-vip.stangj.local']
./local_settings:OPENSTACK_HOST = "192.168.139.31"
[root@openstack-controller2 openstack-dashboard]# vim local_settings
# 找到对应信息进行修改
......
ALLOWED_HOSTS = ['192.168.139.32', 'openstack-vip.stangj.local']
......
OPENSTACK_HOST = "192.168.139.32"
......
7.3)重启httpd
[root@openstack-controller2 openstack-dashboard]# systemctl restart httpd.service
[root@openstack-controller2 openstack-dashboard]# ss -tnl | grep 80
LISTEN 0 100 *:6080 *:*
LISTEN 0 128 [::]:80 [::]:*
7.4)修改haproxy
[root@openstack-haproxy ~]# vim /etc/haproxy/haproxy.cfg
# 修改增加下面消息
listen openstack-dashboard-80
bind 192.168.139.248:80
mode tcp
# server 192.168.139.31 192.168.139.31:80 check inter 3s fall 3 rise 5
server 192.168.139.32 192.168.139.32:80 check inter 3s fall 3 rise 5
[root@openstack-haproxy ~]# systemctl restart haproxy.service
7.5)验证服务
测试是否可以创建虚拟机
看到上面信息,这说明controller2的dashboard服务没有问题







文章评论