版权声明:本文为博主原创文章,可以转载,但是请注明出处。https://blog.csdn.net/qq_38624154/article/details/129400590
Openstack安装过程及步骤
搭建环境:
软件:VMware Workstation 16 Xshell6
镜像:CentOS 7.5 1804
CPU:4核(两台同样)开启VT-x/AMD-V
内存:4G(controller)8G(compute)
网卡:2块网卡(NAT/桥接一块,仅主机一块)
硬盘:60G(控制节点),100G和60G两块(计算节点,100G给计算节点的cinder和swift)
最小化安装CentOS7_X86_64_1804-DVD.ISO,不更新系统内核及软件,避免后续出错,克隆出一台虚机,compute节点。
搭建方式:
电脑16G内存及以上跳过搭建方式
电脑:小米笔记本Pro 15.6 8核 8G内存
电脑:Lenovo拯救者Y7000 2021 8核 16G
Openstack要求较高,8G笔记本明显不能满足要求,16G的电脑可以在一台中通过虚拟机搭建两个节点完成操作,双节点要求因为需要两块网卡,一块内部互通,一块为外部作为openstack节点的外网,笔记本正好有无线网和RJ45接口,台式电脑一块网卡不够用,若是台式网卡可以自己买一个小的无线模块,闲鱼十几块钱搞定。
搭建思路:
小米笔记本买的扩展typeC转RJ45网口一根网线连接到Y7000网口,在以太网适配器属性配置IP和子网掩码,两台电脑互相ping,查看是否互通,关闭两台电脑windows防火墙,或者在防火墙高级设置——入口规则——文件和打印机共享(回显请求-ICMPv4-ln)专用和公用——启动规则。
有线以太网卡配置:
IP Address:192.168.4.11(小米笔记本)192.168.4.21(Y7000)
子网掩码:255.255.255.0
无线网卡WLAN配置:
IP Address:192.168.3.11(小米笔记本)192.168.3.21(Y7000)
子网掩码:255.255.255.0
网关:192.168.3.1
DNS1:114.114.114.114
114.114.115.115
无线网卡WLAN配置根据自己家中WIFI网段进行配置,我家的WiFi网段是192.168.3.0段,网关是192.168.3.1,两台电脑配置完成WLAN检查是否能互相ping通,是否能上网。
虚拟机虚拟网络编辑器配置:
打开Vmware-workstation16——编辑——虚拟网络编辑器
Vmnet0设置成桥接,桥接至无线网卡,Vmnet8桥接至RJ45网卡
虚拟机硬件配置中添加两块网络适配器,第一块设置自定义到Vmnet0,第二块自定义到Vmnet8,两台电脑虚拟机配置成一样的。
CentOS7环境搭建:
本次采用最小化安装,硬件设置与上面的搭建环境一样,修改完IP以后直接secureCRT ssh上去,也可以使用xshell。Secure在配套工具包中有软件。
#vi/etc/sysconfig/network-scripts/ifcfg-XXX,修改IP地址。
ens33: 192.168.3.10(controller)/192.168.3.20(compute)
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.3.10
PREFIX=24
GATEWAY=192.168.3.1
ens34: 192.168.4.10(controller)/192.168.4.20(compute)
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.4.10
PREFIX=24
完成后systemctl restart network。
--controller compute
#systemctlstop firewalld 关闭防火墙
#setenforce 0 关闭selinux
--controller compute
使用软件或者yuminstall vsftpd 使用sftp命令将镜像上传到系统。
#systemctl enable vsftpd 设置vsftpd服务开机自启动
#systemctl restart vsftpd 重启vsftpd服务
点击访问Vsftpd配置。
--controller
#mount -oloop /root/centos.iso /mnt
#\cp -rvf /mnt* /目标目录
将镜像挂载到mnt下。并\cp-rfv XXX拷贝到指定目录,完成后umount /mnt取消挂载。
#mount -o loop /root/iaas.iso /mnt,私有云镜像挂载并拷贝取消挂载。
#\cp -rvf /mnt* /目标目录
--controller
#mv/etc/yum.repos.d/* /home/ 移动所有的repo文件到其他目录,搭建本地YUM仓。
--controller compute
#vi/etc/yum.repos.d/centos.repo 配置YUM文件。,controller使用file:///,compute使用ftp://。
[ centos ]
name=centos
baseurl=ftp://
gpgcheck=0
enabled=1
--controller compute
#hostnamectlset-hostname controller/compute 设置主机名。
更改完成后建议重启环境,否则后期执行脚本RabbitMQ服务会报错导致失败
--controller compute
vi/etc/selinux/config,设置成disabled。
Permissive是允许放行通过,发出警告但不阻止
Disabled是关闭SeLinux安全模式,不发警告不阻止
--controller compute
#yuminstall vsftpd,#systemctl enable/restartvsftpd
#echo anon_root=/opt >> /etc/vsftpd/vsftpd.conf 修改ftp主目录
修改ftp根目录到/opt,第三步执行成功后只需要修改根目录后重启服务。
搭建YUM仓库,需要启动ftp服务进行连接,设置开机自启。
--controller
#vi/etc/hosts,配置主机映射,将controller,compute映射IP。
#echo -e “192.168.100.10 controller\n192.168.100.20compute” >> /etc/hosts
--controller compute
#yum remove-y NetworkManager firewalld.移除组件。
--controller compute
#yuminstall iptables-services.安装iptables组件,设置开机自启动,并启动服务。
#iptables -F/X/Z
#service iptables save.保存配置
此步骤不操作,ftp无法连接服务器。
--controller compute
基本配置搭建完成,接下来是使用脚本配置环境变量以及搭建openstack可以安装vim,bash-completion(tab补齐),rsync(两台必须同时安装),或者使用scp。
Vsftpd配置:本次只需填写anon_root=/opt 即可无需增加其他信息。
在配置文件中更改默认根目录的方法:
local_root=/opt |
非匿名用户根目录 |
chroot_local_user=YES |
将所有用户限制在主目录 |
anon_root=/opt |
匿名用户访问的主目录 |
allow_writeable_chroot=YES |
报500 OOPS错误添加 |
因为vsftpd增加了安全检查,如果用户限制在主目录,则该目录不再具有写权限。
脚本安装openstack及过程
注意:请在controller控制节点脚本执行完毕后再执行compute节点脚本。
所有脚本在/usr/local/bin目录中
#yuminstall iaas-xiandian -y 安装环境变量并编辑
#vi/etc/xiandian/openrc.sh 编辑环境变量
HOST_PASS =就是开机的root密码,根据自己设置的密码填写。
INTERFACE_IP两台机器各自的IP地址,需要修改。
INTERFACE_NAME为自己系统的网卡名称,ip a查看自己的名称。
BLOCK_DISK为硬盘的分区,根据自己的定,例:sda1 hda1
--controller compute
#iaas-pre-host.sh 执行脚本安装openstack包及其配置。
--controller compute
#iaas-install-mysql.sh 执行脚本安装数据库。
#mysql-uroot -p000000 进入数据库,若进不去则环境变量错误。
#showdatabases; 显示数据库列表
#usemysql; 进入数据库
#showtables; 显示数据表,quit;退出
--controller
#iaas-install-keystone.sh 通过脚本安装keystone认证服务。
#source/etc/keystone/admin-openrc.sh 重新执行刚修改的初始化文档
#openstackuser list 显示openstack用户
#openstackservice list 显示openstack服务
#openstackservice show ID 显示某ID服务信息
--controller
#iaas-install-glance.sh 执行脚本安装Glance镜像服务。
#openstackservice list 查看是否有glance服务
#openstackservice show Id
#source/etc/keystone/admin-openrc.sh
#glanceimage-create --name “镜像名称”--disk-format qcow2 --container-format bare --progress
#openstackimage list 查看镜像
#openstackimage show ID 查看镜像的具体信息
--controller
#iaas-install-nova-controller.sh 执行脚本安装Nova计算服务
#iaas-install-nova-compute.sh
#chronycsources 在compute节点中查看时间是否正常同步。
#openstackhost list 查看主机
#openstack-status 查看openstack所有组件状态
--controller compute
#iaas-install-neutron-controller.sh 执行脚本安装Neutron网络服务
#iaas-install-neutron-compute.sh
安装好以后ens224网卡会重置,没有IP,手动配置即可。
--controller compute
#iaas-install-dashboard.sh 执行脚本安装Dashboard服务
网页地址:http://controller/dashboard
#source/etc/keystone/admin-openrc.sh
#openstackservice list
Web创建实例—登录—管理员—网络—创建网络
注意:使用真实服务器搭建的话,网络模式选择vlan模式;使用虚拟机搭建的话,网络模式选择flat模式。
Web创建实例—管理员—云主机类型—创建云主机类型
核心和内存在compute节点硬件范围内,超过会报错
Web创建实例—项目—云主机—创建云主机
选择qcow2启动实例后在Bootingfrom hard disk解决办法:
在compute节点中,vi /etc/nova/nova.conf
[libvirt]
virt_type=qemu
重启openstack-nova-compute.service
重新创建实例或者硬重启实例解决问题
--controller
#iaas-install-cinder-controller.sh 通过脚本安装Cinder服务
#iaas-install-cinder-compute.sh
--controller compute
#iaas-install-swift-controller.sh 通过脚本安装Swift服务
#iaas-install-swift-compute.sh
--controller compute
#iaas-install-heat.sh 通过脚本安装heat服务
--controller
#iaas-install-zun-controller.sh 通过脚本安装zun服务
#iaas-install-zun-compute.sh
--controller compute
#iaas-install-ceilometer-controller.sh通过脚本安装ceilometer服务
#iaas-install-ceilometer-compute.sh
--controller compute
#iaas-install-aodh.sh 通过脚本安装Aodh服务
--controller
添加控制节点资源到云平台
【controller】
修改openrc.sh
把compute节点的IP地址和主机名改为controller节点的IP和主机名
在控制节点运行iaas-install-nova-compute.sh
执行过程中需要确认登录controller节点和输入controller节点root用户密码。
修改openrc.sh配置文件
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.1.10
#Compute Node hostname. example:compute
HOST_NAME_NODE=controller
[root@controller ~]# iaas-install-nova-compute.sh
以上不报错,IaaS搭建完成。