一、packstack单点部署
1、配置虚拟机NAT网络连接
查看vmware的NAT网络默认配置
vmwarestation软件点击 上方“编辑”,选择“虚拟网络编辑器”
找到vmnet10,是NAT模式,子网地址是172.25.2.0,子网掩码是:255.255.255.0.
再点击“NAT设置”,可看到它的网关:172.25.2.2
配置当前虚拟机的网络配置
vmwarestation软件点击 上方“虚拟机”,选择“设置”;
首先没有NAT网卡的,点击“添加”,添加一个新的网络适配器。
已经创建号NAT网卡的,进行如下配置:
网络连接模式改为:"自定义(U):特定虚拟网络"
在下拉选项中,选中“VMnet10(NAT模式)”
配置linux网络
# 进入网络配置目录
cd /etc/sysconfig/network-scripts
# 编辑nat网卡的配置
vi ifcfg-ens33
# 修改或添加如下信息:
BOOTPROTO=static
ONBOOT=yes
IPADDR=172.25.2.101
NETMASK=255.255.255.0
GATEWAY=172.25.2.2
DNS=8.8.8.8
# 在vi编辑器中,输入:wq进行保存退出
vi /etc/resolv.conf
加入:
nameserver 8.8.8.8
输入:wq进行保存退出
# 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
# 重启网络
systemctl restart network
# 测试
ping www.baidu.com
2、yum源配置
# 关闭网络管理
systemctl disable NetworkManager
# 关闭selinux,修改文件为disabled
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# selinux修改生效
setenforce 0
##################################更新yum源#################################
# 将官方的yum源备份到一个新目录:
mkdir /etc/yum.repos.d/repo.bak/
mv /etc/yum.repos.d/*.repo repo.bak/
# 更新下载阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理yum
yum clean all
yum makecache
# 更新yum信息
yum update -y
# 查看当前存在的openstack版本安装源
yum list | grep openstack
# 安装安装源
yum install -y centos-release-openstack-queens
# 调整仓库配置文件
vi /etc/yum.repos.d/CentOS-QEMU-EV.repo
# 将文件中/$contentdir/改为/centos-7/
# 添加epel-repo源
curl -o /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 添加openstack.queens.repo文件信息
cat > /etc/yum.repos.d/openstack-queens.repo << EOF
[queens]
name=queens
baseurl=https://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-queens/
enabled=1
gpgcheck=0
EOF
# 调整repo文件只保留
CentOS-Base.repo CentOS-QEMU-EV.repo epel-7.repo openstack-queens.repo
# 更新源
yum clean all && yum makecache
# 安装openstack-packstack软件包
yum install -y openstack-packstack
# 安装预备
yum -y install python-pip
# 一键部署openstack
packstack --allinone
# 1.出现error while loading shared libraries: leatherman_curl.so.1.3.0: cannot open shared object file: No such file or directory报错。
# 这种错误是因为,leatherman rpm包版本问题,现有是1.10,实际需要1.3
# 回退leatherman版本
yum downgrade leatherman
yum list | grep leatherman
leatherman.x86_64 1.3.0-9.el7 @queens
leatherman.x86_64 1.10.0-1.el7 epel
leatherman-devel.x86_64 1.10.0-1.el7 epel
二、国赛双节点部署
1、准备虚拟机
创建虚拟机前,创建好vmnet2(仅主机模式),vmnet10(NAT模式)网卡,检查对应的适配器是否创建成功。
准备两台vmware虚拟机,手动最小化安装2台Centos7.2系统,第一个网卡为仅主机模式,第二个网卡为NAT模式,配置CPU虚拟机,4G以上内存,50G以上硬盘。
master节点网卡:
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=f34abd2e-89c9-4daf-a28c-54765164d59d
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.16.10
NETMASK=255.255.255.0
Node节点网卡:
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=8bbcc106-d60f-48cc-aafd-2bde0154fa2e
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.16.20
NETMASK=255.255.255.0
2、镜像挂载
镜像上传到master节点,然后完成挂载即可。
# 挂载linux镜像
cd /root/;
mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/;
mkdir /opt/centos7.2;
cp -rvf /mnt/* /opt/centos7.2/
umount /mnt/;
# 挂载iaas镜像
cd /root/;
mount -o loop XianDian-IaaS-v2.2.iso /mnt/;
mkdir /opt/iaas;
cp -rvf /mnt/* /opt/iaas;
umount /mnt/;
3、本地yum配置
分别配置控制节点和计算节点的yum
# 控制节点:
rm -rf /etc/yum.repos.d/CentOS-*;
cat > /etc/yum.repos.d/local.repo <<EOF
[centos]
name=centos
baseurl=file:///opt/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iass
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
EOF
# 计算节点:(如果没有可以后面再配)
rm -rf /etc/yum.repos.d/CentOS-*;
cat > /etc/yum.repos.d/local.repo << EOF
[centos]
name=centos
baseurl=ftp://192.168.16.10/centos7.2
gpgcheck=0
enabled=1
[iaas]
name=iass
baseurl=ftp://192.168.16.10/iaas/iaas-repo
gpgcheck=0
enabled=1
EOF
为计算节点提供ftp访问方式
# 控制节点——yum缓存清理
yum clean all
yum makecache
# 控制节点——安装vsftpd和ftp
yum install -y vsftpd
yum install -y ftp
rpm -qa| grep vsftpd
# 控制节点——修改vsftpd配置文件
在/etc/vsftpd/vsftpd.conf中添加一行代码:
anon_root=/opt
# 控制节点——安装网络工具包
yum install net-tools
# 重启vsftpd服务
systemctl restart vsftpd
# 开机启动vsftpd
systemctl enable vsftpd
# 控制节点、计算节点——关闭防火墙
setenforce 0;
iptables -F;
iptables -X;
iptables -Z;
systemctl stop firewalld;
systemctl disable firewalld;
# 计算节点
yum clean all
yum makecache
4、给计算节点(node)添加新磁盘并分区
在vmware上给计算节点虚拟机添加一个新磁盘。
虚拟机——》设置——》添加——》硬盘——》scsi模式——》创建新虚拟磁盘——》20G,拆分为多个文件——》完成
# 重启计算节点虚拟机
reboot
# 查看当前虚拟机的磁盘情况
fdisk -l
# 可以看到Disk /dev/sdb: 21.5 GB是完全空闲的
# 创建两个空白磁盘空间
fdisk /dev/sdb
n,p,回车,回车,+10G
n,p,回车,回车,回车
w
5、在controller和compute节点安装iaas-xiandian包
# 控制节点、计算节点分别执行,安装软件包
yum install -y iaas-xiandian
控制节点、计算节点编辑修改配置文件/etc/xiandian/openrc.sh
##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.16.10
##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.16.20
##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.16.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.16.10/192.168.16.20
##External Network Interface. example:eth1 第二张网卡
INTERFACE_NAME=eno33554960
##External Network The Physical Adapter. example:provider
Physical_NAME=provider
##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=1
##Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=2000
##--------------------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
##--------------------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.16.20
##--------------------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
6、脚本安装openstack平台
控制节点、计算节点分别执行如下脚本安装基础服务:
iaas-pre-host.sh
控制节点部署mysql数据库服务:
iaas-install-mysql.sh
控制节点部署keystone服务:
iaas-install-keystore.sh
控制节点部署glance服务:
iaas-install-glance.sh
控制节点部署nova服务:
iaas-install-nova-controller.sh
计算节点部署nova服务
iaas-install-nova-compute.sh
控制节点部署neutron
iaas-install-neutron-controller.sh
错误处理——修改脚本:
vi /usr/local/bin/iaas-install-neutron-controller-gre.sh
将最后一行的
systemctl enabled neutron-lbaas-agent 改为 systemctl enable neutron-lbaas-agent
再执行下面的脚本:
iaas-install-neutron-controller-gre.sh
计算节点部署neutron
iaas-install-neutron-compute.sh
iaas-install-neutron-compute-gre.sh
控制节点部署dashboard
iaas-install-dashboard.sh
三、Openstack平台使用
两节点部署,19