两台虚拟机,compute和controller
建议两台虚拟机都配置,内存4G,硬盘60G,网络要在虚拟机设置这里添加一个网络适配器,第一个是主机模式192.168.10.0,第二个是NAT模192.168.20.0,
可以在此处了解一下三种不一样的虚拟机联网方式
虚拟机联网的三种方式
总结一下:
硬盘问题:
compute节点新添加硬盘之后要重启,然后用fdisk /dev/sdb 来分盘,例如添加了50G就可以分成25G和24G,重启之后检查一下yum源,centos和iaas的文件还在不在
网络问题:
仅主机模式
虚拟机只与主机共享一个专用网络,与外部网络无法通信(ping不通外网)。
NAT模式
虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。
桥接模式
虚拟机直接连接外部网络的模式,主机起到了网桥的作用。在这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的。
(第一块网卡直接选择主机模式,第二块网卡选择NAT也是可以的,主机模式对应控制面板-适配器中的vm1,NAT模式对应适配器vm8,可以在网络中心查看两者的连接状态,总之,主机模式下的ip可用于连接CRT,也可以ping本电脑ip,但无法ping外网,最终如果主机模式下的ip能正常连接CRT,虚拟机可以ping www.baidu.com,则网络状态没问题。如果安装过程中遇到,安装失败,第一检查yum list,第二检查网络,如果外网ping不通了,要检查网络问题。建议如果实在找不出来问题,将第二块网卡的配置文件补上,BOOTPROTO可以选择dhcp,随意,然后关闭虚拟机,在编辑下的虚拟网络设置中还原网络设置,再重新打开虚拟机查看是否两块网卡都有ip,也有dhcp池满的可能,将dhcp设置中默认租用时间调整与下面的最大租用时间一样)
个人建议可以直接用dhcp,不需要每次配置网卡文件,第二块网卡ip丢失就补建第二块网卡的网卡配置文件
先讲如何增加第二块网卡:
首先进入编辑里,选择添加,比如我这里是VMnet2,添加之后选择主机模式,按要求配置好网段。
再进入虚拟机设置页面,添加第二个网络适配器,需要主机模式的网卡,请选择自定义,在下拉框里选择刚才设置的网络即可
连接CRT进行操作
在computer节点更改ip,注意eno16777736是主机模式的网卡,另一个33554976是NAT模式,如果需要配置,也写一遍如下的配置文件,但是BOOTPROTO可以用dhcp,自动获取ip。这里注意,在编辑的虚拟机网络设置中是有DHCP这个勾选的,我们在更改网卡配置文件的时候,这个勾选会随配置文件改变,如果没有对应变化,或者是检查都没有错误依然ip a没有ip,无法联网,可能是网卡并没有生效,进入控制面板的适配器里双击该网卡,看看发送接收是否正常,ip是否是自己设置的状态,如果都没有错误,可以尝试在虚拟机网络设置中还原默认配置
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=79178a90-ca7d-409b-9ddb-fa46112721bd
DEVICE=eno16777736
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR=192.168.10.20
netmask=255.255.255.0
DNS1=192.168.1.1
DNS2=8.8.8.8
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554976
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNX=yes
PEERROUTES=yes
IPV4_FAILIRE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=yes
NAME=eno33554976
DEVICE=eno33554976
ONBOOT=yes
IPADDR=192.168.20.10
NETMASK=255.255.255.0
DNS1=8.8.8.8
restart的网络,下面这句在VM里面运行,之后再ip a查一下是否更改成功,由于此后要用到ftp,还可以尝试ping一下网络看是否联通
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (120.232.145.144) 56(84) bytes of data.
64 bytes from 120.232.145.144: icmp_seq=1 ttl=128 time=14.8 ms
64 bytes from 120.232.145.144: icmp_seq=2 ttl=128 time=14.2 ms
如上表示联通了,可以按ctrl+z退出
[root@localhost ~]#systemctl restart network
重新连接CRT
control节点一样的操作,将IP改成192.168.10.10
然后在控制节点的root目录下上传两个镜像文件,
[root@localhost ~]# mkdir /opt/centos7.2
[root@localhost ~]# mkdir /opt/iaas
[root@localhost ~]# mount /root/CentOS-7-x86_64-DVD-1511.iso /opt/centos7.2
mount: /dev/loop0 is write-protected, mounting read-only
[root@localhost ~]# mount /root/XianDian-IaaS-v2.2.iso /opt/iaas/
mount: /dev/loop1 is write-protected, mounting read-only
配置挂载文件
[root@localhost ~]# rm -rf /etc/yum.repos.d/CentOS- *
[root@localhost ~]# cat > /etc/yum.repos.d/local.repo <<EOF
下面每个>提示符后面输入对应一行内容
[centos]
name=centos
baseurl=file:///opt/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
EOF
以上是另一种编写方法,用vi也是一样的,文件内容一样
在计算节点输入,也就是不在计算节点上传两个镜像包,而是利用ftp从控制节点下载
[root@localhost ~]# rm -rf /etc/yum.repos.d/CentOS- *
[root@localhost ~]# cat > /etc/yum.repos.d/local.repo <<EOF
[centos]
name=centos
baseurl=ftp://192.168.10.10/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.10.10/iaas/iaas-repo
gpgcheck=0
enabled=1
EOF
在控制节点,安装ftp服务
[root@localhost ~]# yum install vsftpd -y
出现complete以后,修改配置文件(这里如果报错,没有镜像源,则回去检查修改ip的地方dns配置了没有,如果是报错another app,运行下句
rm -f /var/run/yum.pid
)
Complete!
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anon_root=/opt
[root@localhost ~]# systemctl restart vsftpd
两边的节点关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables -Z
[root@localhost ~]# systemctl stop firewalld
这里讲一下可能出现的问题,首先,网络出现问题,ip a检查看看,如果ip不见了,去检查一下两个网卡各自的配置文件,再重启网络
systemctl restart network;如果关防火墙的时候关不了,提示Failed to stop firewalld.service: Unit firewalld.service not loaded.,需要重新安装yum install firewalld
两边节点安装xiandian,命令一样,计算节点可能会稍慢,一样以Complete!为准
[root@localhost ~]# yum install iaas-xiandian -y
两边节点修改配置文件,注意INTERFACE_NAME=eno33554976是第二块网卡的名字
在原文件中添加了一行(不加也行),controller下加controller的ip,compute下加compute的ip
##Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.10.130
[root@localhost ~]# vi /etc/xiandian/openrc.sh
##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.10.130##Controller Server hostname. example:controller
HOST_NAME=controller##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.10.129##Compute Node hostname. example:compute
HOST_NAME_NODE=compute##--------------------Rabbit Config ------------------##
##user for rabbit. example:openstack
RABBIT_USER=openstack##Password for rabbit user .example:000000
RABBIT_PASS=000000##--------------------MySQL Config---------------------##
##Password for MySQL root user . exmaple:000000
DB_PASS=000000##--------------------Keystone Config------------------##
##Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000##Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000##--------------------Glance Config--------------------##
##Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000##Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000##--------------------Nova Config----------------------##
##Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000##Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000##--------------------Neturon Config-------------------##
##Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000##Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000##metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000##Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.10.130##External Network Interface. example:eth1
INTERFACE_NAME=eno33554976##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101##Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=201##--------------------Cinder Config--------------------##
##Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000##Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000##Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb1##--------------------Trove Config--------------------##
##Password for Mysql Trove User. exmaple:000000
TROVE_DBPASS=000000##Password for Keystore Trove User. exmaple:000000
TROVE_PASS=000000##--------------------Swift Config---------------------##
##Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000##The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb2##The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.10.129##--------------------Heat Config----------------------##
##Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000##Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000##--------------------Ceilometer Config----------------##
##Password for Mysql ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000##Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000##--------------------AODH Config----------------##
##Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000##Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000
开始安装openstack平台
控制节点和计算节点各自安装iaas
[root@localhost ~]# iaas-pre-host.sh
出现这句Please Reboot or Reconnect the terminal ,重新连接,如果成功,主机名会自动更改。后续每一步安装均需要无报错信息,keystone后面会出现表格,配置compute前需要配置好controller
安装数据库
[root@controller ~]# iaas-install-mysql.sh
安装keystone认证服务
[root@controller ~]# iaas-install-keystone.sh
安装Glance镜像服务
[root@controller ~]# iaas-install-glance.sh
安装Nova计算服务
[root@controller ~]# iaas-install-nova-controller.sh
安装Neutron网络服务
[root@controller ~]# iaas-install-neutron-controller.sh
安装Dashboard服务
[root@controller ~]# iaas-install-dashboard.sh
compute节点上自行安装
安装Nova计算服务
[root@controller ~]# iaas-install-nova-compute.sh
安装Neutron网络服务
[root@controller ~]# iaas-install-neutron-compute.sh
搭建完以后,访问dashboard的网址http://192.168.10.130/dashboard,不显示,查找原因
cd /etc/httpd/logs
[root@controller logs]# cat error_log | tail -n 20
发现都是类似的报错
[Mon Apr 15 08:36:07.881322 2024] [core:error] [pid 118538] [client 192.168.10.1:59402] End of script output before headers: django.wsgi
[Mon Apr 15 08:43:05.965678 2024] [core:error] [pid 118541] [client 192.168.10.1:57139] Script timed out before returning headers: django.wsgi
原来是这个文件报错,
[root@controller logs]# vi /etc/httpd/conf.d/openstack-dashboard.conf
在 WSGISocketPrefix run/wsgi 下面添加:
WSGIApplicationGroup %{GLOBAL}
再重启httpd的服务
[root@controller logs]# systemctl stop httpd
[root@controller logs]# systemctl start httpd
再刷新页面