本次openstack多节点自动化安装,采用4台虚拟机节点为演示环境,首先演示如何自动化快速搭建一套openstack云平台
实验环境:
1、控制节点
CPU:双核双线程-CPU虚拟化开启
内存:8G(最小内存6G ,低于6G否则会出问题 )
硬盘:300G
网卡:VM1-192.168.100.10 NAT-20.0.0.10
有2个网卡:1、VM1(内部网卡) 2、NAT(可以上网)
操作系统:Centos 7.6 --最小化安装
2、计算节点1(网络模块)
CPU:双核双线程-CPU虚拟化开启
内存:8G(最小内存6G ,低于6G否则会出问题 )
硬盘:300G
网卡:VM1-192.168.100.11
操作系统:Centos 7.6–最小化安装
3、计算节点2(网络模块)
CPU:双核双线程-CPU虚拟化开启
内存:8G(最小内存6G ,低于6G否则会出问题 )
硬盘:300G
网卡:VM1-192.168.100.12
操作系统:Centos 7.6–最小化安装
每台都必须把虚拟化勾上
实验步骤:
一、基本环境配置
二、本地YUM源部署
三、时间同步
四、免交互配置
五、Openstack一键部署
六、Openstack登录测试
(1)配置IP地址(添加双网卡)
VM1模式:内部网卡 与两个计算节点通讯
NAT模式:连接外部网络,可以上网
VM1,内部网络:
# cd /etc/sysconfig/network-scripts
# cp -p ifcfg-ens33 ifcfg-ens36
# vi /etc/sysconfig/network-scripts/ifcfg-ens36
dhcp 改为 static
UUID一行删掉
ens33 改为 ens36
改为 ONBOOT=yes
末行添加:
IPADDR=192.168.100.10
NETMASK=255.255.255.0
NAT模式,必须是NAT网段的IP范围:
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
dhcp 改为 static
改为 ONBOOT=yes
末行添加:
IPADDR=192.168.188.188
NETMASK=255.255.255.0
GATEWAY=192.168.188.2
# vi /etc/resolv.conf
nameserver 8.8.8.8
# systemctl restart network
# ping www.baidu.com
# ping 8.8.8.8
(2)更改主机名, 配置hosts映射
# hostnamectl set-hostname ct
# su
# vi /etc/hosts
末行插入
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
(3)关闭防火墙,核心防护,网络管理
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config
改为 SELINUX=disabled
# systemctl stop NetworkManager
# systemctl disable NetworkManager
(1)配置IP地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
dhcp 改为 static
改: ONBOOT=yes
加:
IPADDR=192.168.100.11
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
# systemctl restart network
# ping 192.168.100.10
(2)更改主机名
# hostnamectl set-hostname c1
# su
# vi /etc/hosts
末行插入
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
(3)关闭防火墙,核心防护,网络管理
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config
改为 SELINUX=disabled
# systemctl stop NetworkManager
# systemctl disable NetworkManager
(1)配置IP地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
dhcp 改为 static
改为 ONBOOT=yes
加:
IPADDR=192.168.100.12
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
# systemctl restart network
# ping 192.168.100.11
# ping 192.168.100.10
(2)更改主机名
# hostnamectl set-hostname c2
# su
# vi /etc/hosts
末行插入
192.168.100.10 ct
192.168.100.11 c1
192.168.100.12 c2
(3)关闭防火墙,核心防护,网络管理
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/selinux/config
改: SELINUX=disabled
# systemctl stop NetworkManager
# systemctl disable NetworkManager
官网下载openstack-R版的源码包
3个节点都用 Xftp 上传 包放到/opt目录下,也可以用其他共享方式挂载到/opt下
(1)解压openstack源码包
# cd /opt
# tar zxvf openstack_rocky.tar.gz -C /opt
# cd openstack_rocky
# pwd
/opt/openstack_rocky
(2)搭建yum本地源
# cd /etc/yum.repos.d
# mkdir backup 创建备份目录
# mv C* backup 将当前目录下,所有内容转移
# vi local.repo
重新写入
[openstack]
name=openstack
baseurl=file:///opt/openstack_rocky 指向源码包位置
gpgcheck=0
enabled=1
(3)把搭建好的本地源传到2个计算节点
# scp local.repo [email protected]:/etc/yum.repo.d
输入yes
输入密码
# scp local.repo [email protected]:/etc/yum.repo.d
输入yes
输入密码
(4)挂载镜像,加入本地源,以防部署时缺包
# mount /dev/cdrom /mnt
# df -hT
# vi /etc/fstab 永久挂载
末行插入
/dev/cdrom /mnt iso9660 defaults 0 0
# mount -a 或 init 6
# cd /etc/yum.repos.d
# vi local.repo
末行插入
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
(5)更新本地源
# yum clean all
# yum makecache
(1)查看本地源local.repo是否传过来
# cd /etc/yum.repos.d
# mkdir backup 创建备份目录
# mv C* backup 将当前目录下,所有内容转移
# ll
(2)挂载镜像,加入本地源,以防部署时缺包
# mount /dev/cdrom /mnt
# df -hT
# vi /etc/fstab 永久挂载
末行插入
/dev/cdrom /mnt iso9660 defaults 0 0
# mount -a 或 init 6
# cd /etc/yum.repos.d
# vi local.repo
末行插入
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
# yum clean all
# yum makecache
# cd /opt
# tar zxvf openstack_rocky.tar.gz -C /opt
# cd openstack_rocky
# pwd
/opt/openstack_rocky
(1)查看本地源local.repo是否传过来
# cd /etc/yum.repos.d
# mkdir backup 创建备份目录
# mv C* backup 将当前目录下,所有内容转移
# ll
(2)挂载镜像,加入本地源,以防部署时缺包
# mount /dev/cdrom /mnt
# df -hT
# vi /etc/fstab 永久挂载
末行插入
/dev/cdrom /mnt iso9660 defaults 0 0
# mount -a 或 init 6
# cd /etc/yum.repos.d
# vi local.repo
末行插入
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
# yum clean all
# yum makecache
# cd /opt
# tar zxvf openstack_rocky.tar.gz -C /opt
# cd openstack_rocky
# pwd
/opt/openstack_rocky
(1)安装时间同步,同步阿里云
# yum -y install ntpdate ntp 安装时间同步,时钟服务
# ntpdate ntp.aliyun.com 同步阿里云
# ntpdate ntp.aliyun.com >>/var/log/ntpdate.log 产生日志文件
设置周期计划任务
# crontab -e
*/30 * * * * /usr/sbin/ntpdate ntp.aliyun.com >>/var/log/ntpdate.log
# systemctl restart crond
# systemctl enable crond
# vi /etc/ntp.conf
restrict default nomodify 后的单词删除 --第8行改
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
--第17行改为本机IP网段
将21行到24行删除
21 server 0.centos.pool.ntp.org iburst
22 server 1.centos.pool.ntp.org iburst
23 server 2.centos.pool.ntp.org iburst
24 server 3.centos.pool.ntp.org iburst
删除后插入下面2行
fudeg 127.127.100.0 stratum 10
server 127.127.100.0
# systemctl disable chronyd.service --NTP重启BUG--通过禁止chronyd服务开机自启动之后再将系统重启
# systemctl restart ntpd --重启ntp服务端
# systemctl enable ntpd --开机启动ntp服务端
# yum -y install ntpdate 安装时间同步
# ntpdate ct 或者 # ntpdate 192.168.100.10 时间同步控制节点
# ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# crontab -e
*/30 * * * * /usr/sbin/ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# systemctl restart crond
# systemctl enable crond
# yum -y install ntpdate 安装时间同步
# ntpdate ct 或者 # ntpdate 192.168.100.10 时间同步控制节点
# ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# crontab -e
*/30 * * * * /usr/sbin/ntpdate 192.168.100.10 >>/var/log/ntpdate.log
# systemctl restart crond
# systemctl enable crond
3个节点生成密钥, 并相互发送密钥
# ssh-keygen -t rsa --生成非对称密钥
一路默认回车键
# ssh-copy-id ct --交互提示 输入yes 然后输入密码 Abc123
# ssh-copy-id c1 --交互提示 输入yes 然后输入密码 Abc123
# ssh-copy-id c2 --交互提示 输入yes 然后输入密码 Abc123
# init 6 重启后
每个节点都检查下 防火墙是否关闭
# ssh-keygen -t rsa
一路默认回车键
# ssh-copy-id ct --交互提示 输入yes 然后输入密码 Abc123
# ssh-copy-id c1 --交互提示 输入yes 然后输入密码 Abc123
# ssh-copy-id c2 --交互提示 输入yes 然后输入密码 Abc123
每个节点都检查下 防火墙是否关闭
# ntpdate ct 同步控制节点
# ssh-keygen -t rsa
一路默认回车键
# ssh-copy-id ct --交互提示 输入yes 然后输入密码 Abc123
# ssh-copy-id c1 --交互提示 输入yes 然后输入密码 Abc123
# ssh-copy-id c2 --交互提示 输入yes 然后输入密码 Abc123
每个节点都检查下 防火墙是否关闭
# ntpdate ct 同步控制节点
(1)安装环境,自动化部署工具
# yum -y install openstack-packstack 自动化部署工具
# packstack --gen-answer-file=openstack.txt 生成应答文件
# ll 可以看到应答文件openstack.txt
# vi openstack.txt
下面有需要更改的地方:
--第19行 MARIADB数据库默认要安装 ,默认是Y,不改
CONFIG_MARIADB_INSTALL=y
--第22行 GLANCE镜像组将必须要装,默认是Y,不改
CONFIG_GLANCE_INSTALL=y
--第25行 CINDER组件块存储的,必须要装,默认是Y,不改
CONFIG_CINDER_INSTALL=y
--第29行MANILA组件是openstack的扩展系统 ,默认N,不改
CONFIG_MANILA_INSTALL=n
--第32行NOVA组件是openstack计算组件,默认Y,不改
CONFIG_NOVA_INSTALL=y
--第35行NEUTRON是openstack的网络组件,默认Y,不改
CONFIG_NEUTRON_INSTALL=y
--第38行HORIZON是OpenStack的Dashboard组件,默认Y,不改
38 CONFIG_HORIZON_INSTALL=y
●第41行SWIFT是OpenStack的对象存储组件,默认是Y,在生产环境中一般是不装,所以该n
CONFIG_SWIFT_INSTALL=n
--第46行CEILOMETER是OpenStack的计量组件 默认是Y,不改
CONFIG_CEILOMETER_INSTALL=y
●第50行,默认是Y 需要改n
CONFIG_AODH_INSTALL=n
--第53行, 默认是n 不改
CONFIG_PANKO_INSTALL=n
--第60行,HEAT是OpenStack是编排组件 ,默认是n ,不改
CONFIG_HEAT_INSTALL=n
--第94行CONTROLLER是OpenStack的控制节点,在控制节点上配置的,不需要更改IP地址。
CONFIG_CONTROLLER_HOST=192.168.100.10
●第97行需要更改计算节点的IP地址
CONFIG_COMPUTE_HOSTS=192.168.100.11,192.168.100.12
●第101行 需要更改网络节点的IP地址
CONFIG_NETWORK_HOSTS=192.168.100.10
●第557行 系统在创建CINDER组件的的时候回创建一个20G卷,因为我们虚拟机空间有限所以把空间改下点1G,可改可不改
CONFIG_CINDER_VOLUMES_SIZE=20G
●第778行 ,像这样的29948657b3aa409c是密码,有后面有专门的脚本改,好记。密码
CONFIG_NEUTRON_METADATA_PW=29948657b3aa409c
--●第782行 LBAAS负载均衡组件。必选要装 选y。 默认n,这次实验不改
CONFIG_LBAAS_INSTALL=n
--●第790行 FWAAS是防火墙组件。必选要装 选y。默认n,这次实验不改
CONFIG_NEUTRON_FWAAS=n
--●第794行 VPNAAS是VPN组件。必选要装 选y。默认n,这次实验不改
CONFIG_NEUTRON_VPNAAS=n
●第817行,FLAT网络这边要设置物理网卡名字
CONFIG_NEUTRON_ML2_FLAT_NETWORKS=physnet1
●第862行,这边要设置物理网卡的名字
CONFIG_NEUTRON_OVS_BRIDGE_MAPPINGS=physnet1:br-ex
●第873行,这边br-ex:eth1是网络节点的nat网卡
CONFIG_NEUTRON_OVS_BRIDGE_IFACES=br-ex:eth1
●第1185行 是OpenStack联网下载一个测试镜像,这边没联网。说以改成n
CONFIG_PROVISION_DEMO=n
需改的地方:
第41行:SWIFT是OpenStack的对象存储组件,默认是Y,在生产环境中一般是不装,所以该n
第97行:需要更改计算节点的IP地址
第817行:FLAT网络这边要设置物理网卡名字
第862行:这边要设置物理网卡的名字
第873行:这边br-ex:eth1是网络节点的nat网卡
第1185行: 是OpenStack联网下载一个测试镜像,这边没联网。说以改成n
(3)改控制节点和网络节点地址,改密码
(也可以直接在配置文件里改,94行、 101行、 778行)
# sed -i -r 's/192.168.188.188/192.168.100.10/g' openstack.txt
# sed -i -r 's/(.+_PW)=.+/\1=Abc123/' openstack.txt
# grep -vE "^#|^$" openstack.txt >openstackbak.txt
(4)把内网ens36的网关添加上
# vi /etc/sysconfig/network-scripts/ifcfg-ens36
添加网关
# systemctl restart network
(5)openstack 自动部署安装
前面配置了时间同步,在控制节点敲自动部署,3台节点会同步安装
# packstack --answer-file=openstack.txt 自动安装部署
# tail -f /var/log/messages 动态查看部署情况
# tail -f /var/log/messages 动态查看部署情况
# tail -f /var/log/messages 动态查看部署情况
安装完成后
# cat keystonerc_admin 查看用户密码
浏览器输入 http://192.168.100.10/dashboard 或 http://192.168.100.10
账号:admin
密码:Abc123
页面登录测试成功
# source /root/keystonerc_admin
# neutron agent-list 查看网络节点状态