openstack私有云平台搭建
镜像版本:CentOS-7-x86_64-DVD-1804.iso、chinaskills_cloud_iaas.iso
虚拟机配置
==controller节点==:内存2G,处理器2个,硬盘1(100G),网卡1(仅主机192.168.100.20),网卡2(nat192.168.200.20)
==compute节点==:内存2G,处理器2个,硬盘1(100G),硬盘2(50G),硬盘3(50G),网卡1(仅主机192.168.100.40),网卡2(nat192.168.200.40)
1.配置网络
controller节点:
网卡1(仅主机)
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.20
PREFIX=24
网卡2 (NAT)
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.20
PREFIX=24
GATEWAY=192.168.200.1
DNS1=8.8.8.8
DNS2=8.8.4.4
修改之后输入以下命令重启网络
systemctl restart network
查看是否修改成功(compute节点同理)
ip addr
![](https://img-blog.csdnimg.cn/img_convert/c10a04bff9ce3df95b73bd4457f85cbd.png)
compute节点
网卡1(仅主机)
[root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.100.40
PREFIX=24
网卡2(ANT)
[root@compute ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.200.40
PREFIX=24
GATEWAY=192.168.200.1
DNS1=8.8.8.8
DNS2=8.8.4.4
重启网络
systemctl restart network
2修改主机名并添加主机映射
controller节点:
修改主机名
hostnamectl set-hostname controller
执行命令
bash
添加主机映射
[root@controller ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.20 controller
192.168.100.40 compute
测试是否添加成功 ping compute
compute节点:
修改主机名
hostnamectl set-hostname compute
bash
添加主机映射
[root@controller ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.20 controller
192.168.100.40 compute
测试ping controller
3.关闭防火墙和修改selinux规则
controller节点(compute节点同理):
关闭防火墙
[root@controller ~]# systemctl stop firewalld
[root@controller ~]# systemctl disable firewalld
修改selinux规则
[root@controller ~]# setenforce 0 //临时关闭selinux,关机失效
[root@controller ~]# vi /etc/selinux/config
修改这向
![](https://img-blog.csdnimg.cn/img_convert/b2e08c6603f2dfc3ec0235987abfb538.png)
4.配置yum源
上传镜像并挂载镜像
将镜像上传到controller节点的home目录下
![](https://img-blog.csdnimg.cn/img_convert/a3f547a949ac5e2acc5f7f11f63b4944.png)
![](https://img-blog.csdnimg.cn/img_convert/01dfc5b196cb73856adb32956575ce6f.png)
在opt文件夹下建新centos目录,将两个镜像挂载
mkdir /opt/centos //创建centos目录
mount -o loop /home/CentOS-7-x86_64-DVD-1804.iso /mnt/
cp -rvf /mnt/* /opt/centos/
umount /mnt/
mount -o loop /home/chinaskills_cloud_iaas.iso /mnt/
cp -rvf /mnt/* /opt/
umount /mnt/
删除/etc/yum.repos.d/目录下的源文件并建新local.repo文件
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/local.repo
![](https://img-blog.csdnimg.cn/img_convert/ff1101992a2d22ee49022ccdd9f5b551.png)
验证yum源是否配置成功
yum makecache
yum repolist
![](https://img-blog.csdnimg.cn/img_convert/d341bc965ed3ac466e1d475f161a4cb7.png)
controller节点配置ftp
yum -y install vsftpd
修改vsftpd配置文件
vi /etc/vsftpd/vsftpd.conf
anon_root=/opt/ //在最后面添加
重启vsftpd服务
systemctl restart vsftpd
设置开机启动
systenctl enable vsftpd
将compute节点的源文件删除,从controller节点复制过去并修改
rm -rf /etc/yum.repos.d/*
scp controller:/etc/yum.repos.d/local.repo /etc/yum.repos.d/
修改local.repo文件
[centos]
name=centos
baseurl=ftp://controller/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://controller/iaas-repo
gpgcheck=0
enabled=1
yum makecache
yum repolist
5.YUM源安装并修改opensrc.sh配置文件
yum -y install iaas-xiandian (两个节点都要)
修改opensrc.sh文件
vi /etc/xiandian/opensrc.ch
删除每行开头第一个#号
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.20
#Controller HOST Password. example:000000
HOST_PASS=000000
#Controller Server hostname. example:controller
HOST_NAME=controller
#Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.100.40
#Compute HOST Password. example:000000
HOST_PASS_NODE=000000
#Compute Node hostname. example:compute
HOST_NAME_NODE=compute
#--------------------Chrony Config-------------------##
#Controller network segment IP. example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.100.0/24
#--------------------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.200.20
#External Network Interface. example:eth1
INTERFACE_NAME=ens33
#External Network The Physical Adapter. example:provider
Physical_NAME=provider
#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=200
#--------------------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=sdb
#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000
#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdc
#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.100.40
#--------------------Heat Config----------------------##
#Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000
#Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000
#--------------------Zun Config-----------------------##
#Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000
#Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000
#Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000
#Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000
#--------------------Ceilometer Config----------------##
#Password for Gnocchi 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
#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000
#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
将controller节点的opensrc.sh文件复制到compute节点并修改
scp controller:/etc/xiandian/opensrc.sh /etc/xiandian/opensrc.sh
修改下面这条
INTERFACE_IP=192.168.200.40
6.执行相关服务部署脚本
双节点执行
iaas-pre-host.sh
reboot
controller节点
iaas-install-mysql.sh
iaas-inastll-keystone.sh
iaas-install-glance.sh
iaas-install-nova-controller.sh
iaas-install-neutron-controller.sh
iaas-install-dashboard.sh
iaas-install-cinder-controller.sh
iaas-install-swift-controller.sh
compute节点
iaas-install-nova-compute.sh
iaas-install-neutron-compute.sh
iaas-install-cinder-compute.sh
iaas-install-swift-compute.sh
浏览器上输入http://192.168.100.10/dashboard登录平台
![](https://img-blog.csdnimg.cn/img_convert/0f9bd5ef1e808bd77becd965b7dc9ffa.png)
![](https://img-blog.csdnimg.cn/img_convert/746a850a7464919e0535ccfffb9697d6.png)