使用脚本部署openstack平台

两台虚拟机,compute和controller
建议两台虚拟机都配置,内存4G,硬盘60G,网络要在虚拟机设置这里添加一个网络适配器,第一个是主机模式192.168.10.0(static),第二个是NAT模192.168.20.0(dhcp),
可以在此处了解一下三种不一样的虚拟机联网方式
虚拟机联网的三种方式
总结一下:
硬盘问题:
compute节点新添加硬盘之后要重启,然后用fdisk /dev/sdb 来分盘,例如添加了50G就可以分成25G和24G,重启之后检查一下yum源,centos和iaas的文件还在不在

网络问题:
仅主机模式
​ 虚拟机只与主机共享一个专用网络,与外部网络无法通信(ping不通外网)。
NAT模式
​ 虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。
桥接模式
​ 虚拟机直接连接外部网络的模式,主机起到了网桥的作用。在这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的。

第一块网卡直接选择主机模式,设置静态IP:controller:192.168.10.10,compute:192.168.10.20
第二块网卡选择NAT,可以用dhcp模式,网段可以改可以不改,自动分配ip
主机模式对应控制面板-适配器中的vm1,NAT模式对应适配器vm8,也有dhcp池满的可能,将dhcp设置中默认租用时间调整与下面的最大租用时间一样
个人建议NAT模式直接用dhcp,不需要每次配置网卡文件,如果添加网卡后ip a直接出现两张网卡的ip,那先不需要添加第二块网卡的配置文件,如果只有网卡,无ip信息,补配置文件。这里第一块网卡名eno16777736,第二块网卡名eno33554976
cd /etc/sysconfig/network-scripts
cp ifcfg-eno16777736 ifcfg-eno33554976

在这里插入图片描述
在这里插入图片描述

连接CRT进行操作
这里注意,在编辑的虚拟机网络设置中是有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=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
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.10

##Controller Server hostname. example:controller
HOST_NAME=controller

##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.10.20

##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.10

##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.20

##--------------------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
dash安装完以后就可以在浏览器访问http://192.168.10.10/dashboard,如果不显示,下面有httpd的解法,还不显示,将ip换成NAT模式下的ip再试试。但此时配置还未完全。
安装gre的网络模式,neutron有三种网络模式:flat,vlan,gre
可以cd /usr/local/bin查看所有脚本文件
[root@controller images]# cd /usr/local/bin
[root@controller bin]# ls
iaas-install-alarm.sh iaas-install-neutron-compute-vlan.sh
iaas-install-ceilometer-compute.sh iaas-install-neutron-controller-flat.sh
iaas-install-ceilometer-controller.sh iaas-install-neutron-controller-gre.sh
iaas-install-cinder-compute.sh iaas-install-neutron-controller.sh
iaas-install-cinder-controller.sh iaas-install-neutron-controller-vlan.sh
iaas-install-dashboard.sh iaas-install-nova-compute.sh
iaas-install-glance.sh iaas-install-nova-controller.sh
iaas-install-heat.sh iaas-install-swift-compute.sh
iaas-install-keystone.sh iaas-install-swift-controller.sh
iaas-install-mysql.sh iaas-install-trove.sh
iaas-install-neutron-compute-flat.sh iaas-pre-host.sh
iaas-install-neutron-compute-gre.sh iaas-uninstall-all.sh
iaas-install-neutron-compute.sh
以上是我们可以安装的脚本文件,现选择iaas-install-neutron-controller-gre.sh进行安装,gre安装后不会有反应,等一会会自动断开连接,会将网卡抹掉,无法访问原ip(两个模式下的ip均无法访问),这种情况,可以添加第三块网卡设置NAT模式,获取第三张网卡的ip,用于访问dash。例如此处,第三张网卡为ens37,ip:192.168.200.130;
http://192.168.200.130/dashboard 可访问
在这里插入图片描述

compute节点上自行安装
安装Nova计算服务
[root@controller ~]# iaas-install-nova-compute.sh
(最好两个节点同步装)
安装Neutron网络服务
[root@controller ~]# iaas-install-neutron-compute.sh
(最好两个节点同步装)
[root@controller ~]# iaas-install-neutron-compute-gre.sh
(最好两个节点同步装),gre安装后不会有反应,等一会会自动断开连接
搭建完以后,访问dashboard的网址http://192.168.10.10/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
再刷新页面
在这里插入图片描述

在这里插入图片描述

  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值