@[TOC](openstack controller高可用之二(小节10))
controller2
安装包(placement)
[root@controller2 glance]# yum install openstack-placement-api -y
controller1
打包
[root@controller1 glance]# cd /etc/placement/
[root@controller1 placement]# ll
total 24
-rw-r----- 1 root placement 19719 Sep 20 12:25 placement.conf
-rw-r----- 1 root placement 4 Jul 25 2019 policy.json
[root@controller1 placement]# tar czvf placement-controller.tar.gz ./*
拷贝到102
[root@controller1 placement]# scp placement-controller.tar.gz 192.168.37.102:/etc/placement/
controller2
解压缩
[root@controller2 placement]# pwd
/etc/placement
[root@controller2 placement]# tar xvf placement-controller.tar.gz
过滤一下(检查配置文件中是否有IP地址需要修改)
[root@controller2 placement]# grep 192.* ./* -R
修复bug
[root@controller2 placement]# vim /etc/httpd/conf.d/00-placement-api.conf
#结尾添加下面信息、修复bug
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allwo,deny
Allow from all
</IfVersion>
</Directory>
重启apche服务
[root@controller2 placement]# systemctl restart httpd
导入变量
[root@controller2 nova]# source /root/scripts/admin_stein.sh
验证
[root@controller2 placement]# placement-status upgrade check
+----------------------------------+
| Upgrade Check Results |
+----------------------------------+
| Check: Missing Root Provider IDs |
| Result: Success |
| Details: None |
+----------------------------------+
| Check: Incomplete Consumers |
| Result: Success |
| Details: None |
+----------------------------------+
安装包(nova)
[root@controller2 placement]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-console openstack-nova-novncproxy openstack-nova-scheduler -y
controller1
打包
[root@controller1 placement]# cd /etc/nova/
[root@controller1 nova]# ll
total 396
-rw-r----- 1 root nova 2923 Nov 9 2020 api-paste.ini
-rw-r----- 1 root nova 388496 Sep 22 16:23 nova.conf
-rw-r----- 1 root nova 4 Nov 9 2020 policy.json
-rw-r--r-- 1 root root 64 Nov 9 2020 release
-rw-r----- 1 root nova 966 Nov 9 2020 rootwrap.conf
[root@controller1 nova]# tar czvf nova-controller1.tar.gz ./*
拷贝到102
[root@controller1 nova]# scp nova-controller1.tar.gz 192.168.37.102:/etc/nova/
controller2
解压缩
[root@controller2 placement]# cd /etc/nova/
[root@controller2 nova]# ll
total 496
-rw-r----- 1 root nova 2923 Nov 9 2020 api-paste.ini
-rw-r----- 1 root nova 387263 Nov 9 2020 nova.conf
-rw-r--r-- 1 root root 100505 Sep 27 09:25 nova-controller1.tar.gz
-rw-r----- 1 root nova 4 Nov 9 2020 policy.json
-rw-r--r-- 1 root root 64 Nov 9 2020 release
-rw-r----- 1 root nova 966 Nov 9 2020 rootwrap.conf
[root@controller2 nova]# tar xvf nova-controller1.tar.gz
过滤一下(检查配置文件中是否有IP地址需要修改)
[root@controller2 nova]# grep 192.* ./* -R
./nova.conf:#my_ip = 192.168.37.101
./nova.conf:# 1024x768, 1280x1024, 1600x1200, 1920x1200, 2560x1600, 3840x2160
./nova.conf:server_listen = 192.168.37.101
./nova.conf:server_proxyclient_address = 192.168.37.101
把文件中'192.168.37.101'全部替换成'192.168.37.102'
[root@controller2 nova]# vim /etc/nova/nova.conf
:%s/192.168.37.101/192.168.37.102/g <--把文件中'192.168.37.101'全部替换成'192.168.37.102'
启动服务并设置开机启动
[root@controller2 nova]# systemctl start openstack-nova-api.service openstack-nova-consoleauth openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
[root@controller2 nova]# systemctl enable openstack-nova-api.service openstack-nova-consoleauth openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service
查看nova服务列表
[root@controller2 nova]# nova service-list
+--------------------------------------+------------------+-------------+----------+---------+-------+----------------------------+-----------------+-------------+
| Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | Forced down |
+--------------------------------------+------------------+-------------+----------+---------+-------+----------------------------+-----------------+-------------+
| f468a4e0-3f1b-4f1b-abb5-726fb146c75c | nova-consoleauth | controller1 | internal | enabled | up | 2022-09-27T03:52:47.000000 | - | False |
| 7e997d79-dc48-47c7-bc9b-9f47b50c798d | nova-scheduler | controller1 | internal | enabled | up | 2022-09-27T03:52:46.000000 | - | False |
| f0cf6785-041d-4469-8636-5354493636b2 | nova-conductor | controller1 | internal | enabled | up | 2022-09-27T03:52:46.000000 | - | False |
| db3927d9-9748-4781-9778-dab1d87efb89 | nova-compute | node1 | nova | enabled | up | 2022-09-27T03:52:51.000000 | - | False |
| 977b6bca-0cf0-4f4b-b228-6914af686cf8 | nova-console | controller1 | internal | enabled | down | 2022-09-22T10:35:39.000000 | - | False |
| b7665572-c7d7-45e7-9999-81794a940736 | nova-compute | node2 | nova | enabled | up | 2022-09-27T03:52:50.000000 | - | False |
| 72fc44e4-f181-4f83-a085-9401aa3bde38 | nova-consoleauth | controller2 | internal | enabled | up | 2022-09-27T03:52:46.000000 | - | False |
| 427b5c07-dfcd-4ccb-ac04-935a39090b9e | nova-scheduler | controller2 | internal | enabled | up | 2022-09-27T03:52:48.000000 | - | False |
| 36507085-8ac2-4ba8-b087-affcd9318c14 | nova-conductor | controller2 | internal | enabled | up | 2022-09-27T03:52:48.000000 | - | False |
+--------------------------------------+------------------+-------------+----------+---------+-------+----------------------------+-----------------+-------------+
controller1
关闭服务
[root@controller1 ~]# systemctl stop openstack-nova-api.service openstack-nova-consoleauth openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service haproxy
[root@controller1 ~]# systemctl stop httpd openstack-glance-api.service openstack-glance-registry.service
controller2
安装包
[root@controller2 nova]# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge.noarch ebtables -y
controller1
打包
[root@controller1 nova]# cd /etc/neutron/
[root@controller1 neutron]# ll
total 72
drwxr-xr-x 11 root root 260 Sep 22 15:04 conf.d
-rw-r----- 1 root neutron 6634 Sep 22 16:13 dhcp_agent.ini
-rw-r----- 1 root neutron 6524 Nov 27 2020 l3_agent.ini
-rw-r----- 1 root neutron 9952 Sep 22 16:20 metadata_agent.ini
-rw-r----- 1 root neutron 39791 Sep 22 15:43 neutron.conf
lrwxrwxrwx 1 root root 37 Sep 22 16:24 plugin.ini -> /etc/neutron/plugins/ml2/ml2_conf.ini
drwxr-xr-x 3 root root 17 Sep 22 15:04 plugins
-rw-r--r-- 1 root root 1298 Nov 27 2020 rootwrap.conf
[root@controller1 neutron]# tar czvf neutron-controller1.tar.gz ./*
拷贝到102
[root@controller1 neutron]# scp neutron-controller1.tar.gz 192.168.37.102:/etc/neutron/
controller2
解压缩
[root@controller2 nova]# cd /etc/neutron/
[root@controller2 neutron]# ll
total 92
drwxr-xr-x 11 root root 260 Sep 27 12:10 conf.d
-rw-r----- 1 root neutron 6524 Nov 27 2020 dhcp_agent.ini
-rw-r----- 1 root neutron 6524 Nov 27 2020 l3_agent.ini
-rw-r----- 1 root neutron 9873 Nov 27 2020 metadata_agent.ini
-rw-r----- 1 root neutron 38991 Nov 27 2020 neutron.conf
-rw-r--r-- 1 root root 16541 Sep 27 12:13 neutron-controller1.tar.gz
drwxr-xr-x 3 root root 17 Sep 27 12:10 plugins
-rw-r--r-- 1 root root 1298 Nov 27 2020 rootwrap.conf
[root@controller2 neutron]# tar xvf neutron-controller1.tar.gz
过滤一下(检查配置文件中是否有IP地址需要修改)
[root@controller2 neutron]# grep 192.* ./* -R
重启服务
[root@controller2 neutron]# systemctl restart openstack-nova-api.service
启动并开机启动
[root@controller2 neutron]# systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
[root@controller2 neutron]# systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
controller1
关闭服务
[root@controller1 neutron]# systemctl stop neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
controller2
此时第二个注册端也会注册进来
[root@controller2 neutron]# 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 |
+--------------------------------------+--------------------+-------------+-------------------+-------+----------------+---------------------------+
| 4a2a0ff2-2dcc-4fd1-8d30-55c3b89d7e92 | Linux bridge agent | node1 | | xxx | True | neutron-linuxbridge-agent |
| 773c65a3-6d62-464e-9129-b2c9a334cb7d | Linux bridge agent | controller2 | | :-) | True | neutron-linuxbridge-agent |
| 781ff61b-f70d-45d0-96c2-feb45aa8e80e | Metadata agent | controller2 | | :-) | True | neutron-metadata-agent |
| ace303e8-bcc2-42fe-a348-207c34f7032f | Linux bridge agent | controller1 | | xxx | True | neutron-linuxbridge-agent |
| b146298d-7dd4-4624-8d9e-d25b481bb7c3 | DHCP agent | controller1 | nova | xxx | True | neutron-dhcp-agent |
| ca704fc1-f8f7-450b-9652-b08d4aed5f62 | Metadata agent | controller1 | | xxx | True | neutron-metadata-agent |
| d300f6c1-5eac-4950-a662-d1f4f082ed48 | Linux bridge agent | node2 | | xxx | True | neutron-linuxbridge-agent |
| e534b337-e48f-45de-b59c-606f22c1080f | DHCP agent | controller2 | nova | :-) | True | neutron-dhcp-agent |
+--------------------------------------+--------------------+-------------+-------------------+-------+----------------+---------------------------+
node1和node2
以node1为例、更改hosts文件和网络配置文件
[root@node1 ~]# vim /etc/hosts
192.168.37.248 openstack.123.net <--修改此行、把之前的'192.168.37.101'改为'192.168.37.248'
[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1=192.168.37.2 <--
#重启网络、使用DNS生效
[root@node1 ~]# systemctl restart network
重启服务
[root@node1 ~]# bash scripts/nova-restart_agent.sh scripts/neutron-restart_agent.sh
ha1
修改'haproxy'配置文件
[root@ha1 ~]# vim /etc/haproxy/haproxy.cfg
#在'defaults'中把超时时长设置一下
53 timeout connect 120s
54 timeout client 600m
55 timeout server 600m
#把'192.168.37.101'全部改为'192.168.37.102'
63
64 listen openstack-dashboard-80
65 bind 192.168.37.248:80
66 mode tcp
67 server 192.168.37.102 192.168.37.102:80 check inter 3s fall 3 rise 5
68
69 listen openstack-keystone
70 bind 192.168.37.248:5000
71 mode tcp
72 server 192.168.37.102 192.168.37.102:5000 check inter 3s fall 3 rise 5
73
74 listen openstack-neutron
75 bind 192.168.37.248:9696
76 mode tcp
77 server mysql1 192.168.37.102:9696 check inter 3s fall 3 rise 3
78
79 listen openstack-glance
80 bind 192.168.37.248:9292
81 mode tcp
82 server mysql1 192.168.37.102:9292 check inter 3s fall 3 rise 3
83
84 listen openstack-placement
85 bind 192.168.37.248:8778
86 mode tcp
87 server mysql1 192.168.37.102:8778 check inter 3s fall 3 rise 3
88
89 listen openstack-nova
90 bind 192.168.37.248:8774
91 mode tcp
92 server mysql1 192.168.37.102:8774 check inter 3s fall 3 rise 3
93
94 listen openstack-nova-api
95 bind 192.168.37.248:8775
96 mode tcp
97 server mysql1 192.168.37.102:8775 check inter 3s fall 3 rise 3
98
99 listen openstack-vncproxy
100 bind 192.168.37.248:6080
101 mode tcp
102 server mysql1 192.168.37.102:6080 check inter 3s fall 3 rise 3
103
104 listen openstack-mysql
105 bind 192.168.37.248:3306
106 mode tcp
107 server mysql1 192.168.37.105:3306 check inter 3s fall 3 rise 3
108
109 listen openstack-memcached
110 bind 192.168.37.248:11211
111 mode tcp
112 server mysql1 192.168.37.105:11211 check inter 3s fall 3 rise 3
113
114 listen openstack-rabbitmq
115 bind 192.168.37.248:5672
116 mode tcp
117 server mysql1 192.168.37.105:5672 check inter 3s fall 3 rise 3
重启服务
[root@ha1 ~]# systemctl restart haproxy.service
controller2
安装包
[root@controller2 ~]# yum install openstack-dashboard -y
controller1
拷贝到102
[root@controller1 ~]# scp /etc/openstack-dashboard/local_settings 192.168.37.102:/etc/openstack-dashboard/
controller2
过滤一下(检查配置文件中是否有IP地址需要修改)
[root@controller2 ~]# grep 192.* /etc/openstack-dashboard/* -R
/etc/openstack-dashboard/local_settings:OPENSTACK_HOST = "192.168.37.101"
/etc/openstack-dashboard/local_settings:# 'ipv4': ['10.0.0.0/8', '192.168.0.0/16'],
[root@controller2 ~]# vim /etc/openstack-dashboard/local_settings
OPENSTACK_HOST = "192.168.37.102" <--修改IP地址
重启服务
[root@controller2 ~]# systemctl restart httpd
Windows
修改hosts文件
浏览器
再创建几个虚拟机
添加规则
XShell连接
只有'102'能ping通
拷贝虚拟机
此时:内存不足可以切换到demo用户把实例删除(步骤忽略)
管理员:创建实例类型(1C-1G-20G)
创建实例
可ping通外网