【十】Openstack-横向扩容controller

Openstack-横向扩容controller

一、配置服务器e

 

#安装系统时 按tab 使得ens33 改为 eth0 
配置:net.ifnames=0 biosdevname=0

#配置网略
ip addr
cd /etc/sysconfig/network-scripts/

vim /etc/hostname
openstack-controller2.xks.local

#改为nodeip 192.168.40.108
[root@openstack-controller1 network-scripts]# cat ifcfg-eth0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="39d55d0d-ed5c-4497-8767-8f56571c92d6"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="192.168.40.101"
PREFIX="21"
GATEWAY="192.168.40.2"
DNS1="192.168.40.2"
DNS2="114.114.114.114"
DNS3="8.8.8.8"
IPV6_PRIVACY="no"

#不要指网关
#改为nodeip 10.10.7.108
[root@openstack-controller1 network-scripts]# vi ifcfg-eth1
[root@openstack-controller1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
ONBOOT=yes
DEVICE=eth1
NAME=eth1
BOOTPROTO=static
IPADDR=10.10.7.101
NETMASK=255.255.248.0
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
UUID=fae29040-2677-49bf-9946-642100a8fd7d


#关闭防火墙、selinux、NetWorkManager
systemctl disable firewalld

#关闭 SELinux(Security-Enhanced Linux) 强制访问控制
getenforce
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

systemctl disable NetworkManager

#安装yum 软件
yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop lsof ntpdate telnet bridge-utils curl

#配置hosts文件
echo "192.168.40.248 openstack-vip.xks.local" >> /etc/hosts

#
#配置时间同步
[root@openstack-controller1 network-scripts]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@openstack-controller1 network-scripts]# crontab -e
*/10 * * * * /usr/sbin/ntpdate time1.aliyun.com && hwclock -w

二、配置openstack-controller2

#启用OpenStack库
yum install -y centos-release-openstack-train.noarch
yum install -y https://rdoproject.org/repos/rdo-release.rpm

#Finalize the installation
yum install -y python-openstackclient openstack-selinux

#必须安装此模块 用于连接mysql
yum install -y python2-PyMySQL

#必须安装此模块 用于连接memcached
yum install -y python-memcached

yum install -y openstack-keystone httpd mod_wsgi
systemctl enable httpd

[controller1]
cd /etc/keystone
tar zcvf keystone-controller1.tar.gz ./*
scp keystone-controller1.tar.gz 192.168.40.102:/etc/keystone
[controller2]
cd /etc/keystone
tar zxvf keystone-controller1.tar.gz

/etc/hosts
192.168.40.248 openstack-vip.xks.local

vim /etc/httpd/conf/httpd.conf
    ServerName 192.168.40.102:80

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

systemctl restart httpd
systemctl enable httpd

#Haproxy 配置后台转发
#添加keystone
[root@openstack-haproxy1 ~]# cat /etc/haproxy/haproxy.cfg
listen openstack-keystone-5000
  bind 192.168.40.248:5000
  mode tcp
  server 192.168.40.102 192.168.40.102:5000 check inter 3s fall 3 rise 5
[root@openstack-haproxy1 ~]# systemctl restart haproxy

[root@openstack-controller1 conf.d]# netstat -nltp| grep 5000

#Create OpenStack client environment scripts
#admin-openrc.sh
[root@openstack-controller1 ~]# cat admin-openrc.sh
#!/bin/bash
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_AUTH_URL=http://openstack-vip.xks.local:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

#demo-openrc.sh
[root@openstack-controller1 ~]# cat demo-openrc.sh
#!/bin/bash
export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=myuser
export OS_AUTH_URL=http://openstack-vip.xks.local:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
[root@openstack-controller1 ~]# chmod +x admin-openrc.sh demo-openrc.sh

[root@openstack-controller1 ~]# openstack user list
============================================================================================
yum install -y openstack-glance
mkdir -p /var/lib/glance/images/
chown -R glance.glance /var/lib/glance/images/

#配置自动挂载
vim /etc/fstab
    192.168.40.105:/data/glance /var/lib/glance/images nfs defaults,_netdev 0 0
mount -a

[root@openstack-controller1 ~]# df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     2.5G     0  2.5G   0% /dev
tmpfs                        2.5G     0  2.5G   0% /dev/shm
tmpfs                        2.5G   12M  2.5G   1% /run
tmpfs                        2.5G     0  2.5G   0% /sys/fs/cgroup
/dev/mapper/centos-root       50G  2.9G   48G   6% /
/dev/sda1                   1014M  138M  877M  14% /boot
/dev/mapper/centos-home       95G   33M   95G   1% /home
tmpfs                        494M     0  494M   0% /run/user/0
192.168.40.105:/data/glance   17G  2.4G   15G  14% /var/lib/glance/images

[controller1]
cd /etc/glance/
tar czvf glance-controller1.tar.gz ./*
scp glance-controller1.tar.gz 192.168.40.102:/etc/glance
[controller2]
cd /etc/glance/
tar zxvf glance-controller1.tar.gz

systemctl start openstack-glance-api.service
systemctl enable openstack-glance-api.service


#配置添加haproxy、haproxy服务器上添加
[root@openstack-haproxy1 ~]# vim /etc/haproxy/haproxy.cfg
listen openstack-glance-9292
  bind 192.168.40.248:9292
  mode tcp
  server 192.168.40.102 192.168.40.102:9292 check inter 3s fall 3 rise 5

[root@openstack-haproxy1 ~]# systemctl restart haproxy
[root@openstack-haproxy1 ~]# netstat -ntlp | grep 9292
tcp        0      0 192.168.40.248:9292     0.0.0.0:*               LISTEN      23765/haproxy

[root@openstack-controller1 glance]# openstack image list
+--------------------------------------+--------+--------+
| ID                                   | Name   | Status |
+--------------------------------------+--------+--------+
| 3fe6bb79-24e6-409f-b55e-c2de374dec27 | cirros | active |
+--------------------------------------+--------+--------+

============================================================================================
yum install -y openstack-placement-api

[controller1]
cd /etc/placement
tar zcvf placement-controller1.tar.gz ./*
scp placement-controller1.tar.gz 192.168.40.102:/etc/placement
[controller2]
cd /etc/placement
tar zxvf placement-controller1.tar.gz

#配置apache允许访问placement API ,如果不配置会拒绝访问报错403
#参考文档:https://docs.openstack.org/nova/rocky/install/controller-install-rdo.html
vim /etc/httpd/conf.d/00-placement-api.conf
<Directory /usr/bin>
   <IfVersion >= 2.4>
      Require all granted
   </IfVersion>
   <IfVersion < 2.4>
      Order allow,deny
      Allow from all
   </IfVersion>
</Directory>
#重启httpd 会在 /etc/httpd/conf.d/有个文件:00-placement-api.conf配置了8778端口内容参数
[root@openstack-controller1 conf.d]# systemctl restart httpd
[root@openstack-controller1 conf.d]# netstat -ntlp | grep 8778
tcp6       0      0 :::8778                 :::*                    LISTEN      7790/httpd

#配置Haproxy 8778端口
[root@openstack-haproxy1 glance]# vim /etc/haproxy/haproxy.cfg
listen openstack-placement-8778
  bind 192.168.40.248:8778
  mode tcp
  server 192.168.40.102 192.168.40.102:8778 check inter 3s fall 3 rise 5

[root@openstack-haproxy1 glance]# systemctl restart haproxy
[root@openstack-haproxy1 glance]# netstat -nltp | grep 8778
tcp        0      0 192.168.40.248:8778     0.0.0.0:*               LISTEN      23906/haproxy

#验证是否安装成功
[root@openstack-controller1 ~]# source admin-openrc.sh
[root@openstack-controller1 ~]# placement-status upgrade check

============================================================================================
yum install -y openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler

[controller1]
cd /etc/nova
tar zcvf nova-controller1.tar.gz ./*
scp nova-controller1.tar.gz 192.168.40.102:/etc/nova
[controller2]
cd /etc/nova
tar zxvf nova-controller1.tar.gz

vim /etc/nova.conf
    my_ip=192.168.40.102
    
systemctl enable \
    openstack-nova-api.service \
    openstack-nova-scheduler.service \
    openstack-nova-conductor.service \
    openstack-nova-novncproxy.service
systemctl start \
    openstack-nova-api.service \
    openstack-nova-scheduler.service \
    openstack-nova-conductor.service \
    openstack-nova-novncproxy.service

#配置Haproxy
[root@openstack-haproxy1 glance]# cat /etc/haproxy/haproxy.cfg
listen openstack-nova-8774
  bind 192.168.40.248:8774
  mode tcp
  server 192.168.40.102 192.168.40.102:8774 check inter 3s fall 3 rise 5
[root@openstack-haproxy1 glance]# systemctl restart haproxy
[root@openstack-haproxy1 glance]# netstat -ntlp | grep 8774
tcp        0      0 192.168.40.248:8774     0.0.0.0:*               LISTEN      26260/haproxy

#添加Haproxy6080
[root@openstack-haproxy1 glance]# vim /etc/haproxy/haproxy.cfg
listen openstack-nova-novncproxy-6080
  bind 192.168.40.248:6080
  mode tcp
  server 192.168.40.102 192.168.40.102:6080 check inter 3s fall 3 rise 5
[root@openstack-haproxy1 glance]# systemctl restart haproxy

[root@openstack-controller1 nova]# nova service-list
+--------------------------------------+----------------+---------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| Id                                   | Binary         | Host                            | Zone     | Status  | State | Updated_at                 | Disabled Reason | Forced down |
+--------------------------------------+----------------+---------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+
| 79cb22e1-a8db-4267-92c6-77351e8d0373 | nova-conductor | openstack-controller1.xks.local | internal | enabled | up    | 2023-07-25T15:02:22.000000 | -               | False       |
| 5d974f43-5081-4340-b954-a5b3ce06740c | nova-scheduler | openstack-controller1.xks.local | internal | enabled | up    | 2023-07-25T15:02:23.000000 | -               | False       |
| 6428a4a4-02ad-4ac0-a0bd-8ad22ce03f08 | nova-compute   | openstack-node1.xks.local       | nova     | enabled | up    | 2023-07-25T15:02:25.000000 | -               | False       |
| b47e9f23-8483-4b1d-a9b2-c33fa0fa6bb8 | nova-compute   | openstack-node2.xks.local       | nova     | enabled | up    | 2023-07-25T15:02:23.000000 | -               | False       |
| 412969e4-4ad8-4244-9449-8f746d753e46 | nova-conductor | openstack-controller2.xks.local | internal | enabled | up    | 2023-07-25T15:02:22.000000 | -               | False       |
| 972cb350-e6fe-40ef-a4c2-f9851bec65dc | nova-scheduler | openstack-controller2.xks.local | internal | enabled | up    | 2023-07-25T15:02:24.000000 | -               | False       |
+--------------------------------------+----------------+---------------------------------+----------+---------+-------+----------------------------+-----------------+-------------+

============================================================================================
yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables

[controller1]
cd /etc/neutron
tar zcvf neutron-controller1.tar.gz ./*
scp neutron-controller1.tar.gz 192.168.40.102:/etc/neutron
[controller2]
cd /etc/neutron
tar zxvf neutron-controller1.tar.gz

systemctl restart openstack-nova-api.service
systemctl enable neutron-server.service \
  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  neutron-metadata-agent.service
systemctl start neutron-server.service \
  neutron-linuxbridge-agent.service neutron-dhcp-agent.service \
  neutron-metadata-agent.service

tail -f /var/log/neutron/*.log

[root@openstack-controller1 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                    |
+--------------------------------------+--------------------+---------------------------------+-------------------+-------+----------------+---------------------------+
| 2000e3d4-683f-4c2e-80bf-0439493d4ddc | DHCP agent         | openstack-controller2.xks.local | nova              | :-)   | True           | neutron-dhcp-agent        |
| 24543051-e329-4e2a-ac58-c1d373bad7b0 | Linux bridge agent | openstack-controller1.xks.local |                   | :-)   | True           | neutron-linuxbridge-agent |
| 54413aa2-9430-4529-bdd8-e22c2e2a1b3f | DHCP agent         | openstack-controller1.xks.local | nova              | :-)   | True           | neutron-dhcp-agent        |
| 62da7eb3-6779-4d1e-9cab-cdc2c4d51c7b | Linux bridge agent | openstack-controller2.xks.local |                   | :-)   | True           | neutron-linuxbridge-agent |
| 970d62fe-5bc9-4a38-a32d-070d9ed26996 | Linux bridge agent | openstack-node1.xks.local       |                   | :-)   | True           | neutron-linuxbridge-agent |
| de57dd0a-684c-4b6f-8b5f-5c01dca70c93 | Metadata agent     | openstack-controller1.xks.local |                   | :-)   | True           | neutron-metadata-agent    |
| e36d82dd-5fec-4fb0-9eaf-277a040ec79b | Linux bridge agent | openstack-node2.xks.local       |                   | :-)   | True           | neutron-linuxbridge-agent |
| eec4dd80-b2ef-490f-be8b-de9a92fe303f | Metadata agent     | openstack-controller2.xks.local |                   | :-)   | True           | neutron-metadata-agent    |
+--------------------------------------+--------------------+---------------------------------+-------------------+-------+----------------+---------------------------+

#修改配置文件
[root@openstack-haproxy1 ~]# vim /etc/haproxy/haproxy.cfg
listen openstack-neutron-9696
  bind 192.168.40.248:9696
  mode tcp
  #server 192.168.40.101 192.168.40.101:9696 check inter 3s fall 3 rise 5
  server 192.168.40.102 192.168.40.102:9696 check inter 3s fall 3 rise 5

systemctl restart haproxy

============================================================================================
yum install -y openstack-dashboard

[controller1]
cd /etc/openstack-dashboard
tar zcvf openstack-dashboard-controller1.tar.gz ./*
scp openstack-dashboard-controller1.tar.gz 192.168.40.102:/etc/openstack-dashboard
[controller2]
cd /etc/openstack-dashboard
tar zxvf openstack-dashboard-controller1.tar.gz

#修改配置
[root@openstack-controller2 openstack-dashboard]# grep 192 ./* -R
./local_settings:ALLOWED_HOSTS = ['192.168.40.102', 'openstack-vip.xks.local']
./local_settings:OPENSTACK_HOST = "192.168.40.102"

#3.Add the following line to /etc/httpd/conf.d/openstack-dashboard.conf if not included.
vim /etc/httpd/conf.d/openstack-dashboard.conf
    WSGIApplicationGroup %{GLOBAL}

#4.配置Haproxy代理-添加dashboard 代码块 
[root@openstack-haproxy1 ~]# cat /etc/haproxy/haproxy.cfg
listen openstack-dashboard-80
  bind 192.168.40.248:80
  mode tcp
  server 192.168.40.102 192.168.40.102:80 check inter 3s fall 3 rise 5
[root@openstack-haproxy1 ~]# systemctl restart haproxy

#Finalize installation-Restart the web server and session storage service:
systemctl restart httpd.service

#管理端访问
192.168.40.102/dashboard
openstack-vip.xks.local/dashboard - 前提做好域名解析 192.168.40.248 openstack-vip.xks.local

 

posted @ 2023-07-25 17:03  しみずよしだ  阅读(24)  评论(0)    收藏  举报