基础准备
节点准备
IP | 主机名 | 节点 |
192.168.19.10 | controller | 控制节点 |
192.168.19.20 | compute | 计算节点 |
1.配置网络
controller节点
vi /etc/sysconfig/network-scripts/ifcfg-ens33 (网口文件可根据自己的电脑进行配置)
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.19.10
NETMASK=255.255.225.0
GATEWAY=192.168.19.2
:wq 保存并退出
compute 节点
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.19.20
NETMASK=255.255.255.0
GATEWAY=192.168.19.2
:wq 保存并退出
2. 主机名配置
controller节点
#hostnamectl set-hostname controller
#bash
compute 节点
#hostnamectl set-hostaname compute
#bash
3. 主机映射
#vi /etc/hosts
#ssh-keygen 回车到结束
#ssh-copy-id compute
#scp /etc/hosts compute:/etc/hosts
到compute: cat /etc/hosts
4.YUN源配置
controller节点
#yum源备份
mv /etc/yum.repos.d/* /opt/
#创建repo文件
vi /etc/yum.repos.d/centos.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas-repo
gpgcheck=0
enabled=1
compute 节点
# yum 源备份
mv /etc/yum.repos.d/* /opt/
# 创建 repo 文件
vi /etc/yum.repos.d/centos.repo
[centos]
name=centos
baseurl=ftp://192.168.19.10/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=ftp://192.168.19.10/iaas-repo
gpgcheck=0
enabled=1
5.挂载ISO文件
1.挂载CentOS-7-x86_64-DVD-2009.iso
# mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/
# mkdir /opt/centos
# cp -rvf /mnt/* /opt/centos/
# umount /mnt/
2.挂载chinaskills_cloud_iaas_v2.0.3.iso
# mount -o loop chinaskills_cloud_iaas_v2.0.3.iso /mnt/
# cp -rvf /mnt/* /opt/
# umount /mnt/
6.搭建FTP服务,开启并设置自启
# yum install vsftpd -y
# vi /etc/vsftpd/vsftpd.conf
添加 anon_root=/opt/ 保存并退出
# systemctl start vsftp
# systemctl enable vsftpd
7. 配置防火墙和selinux,并清除yum源,验证yum源
[controller/compute]
配置防火墙和selinux文件
# vi /etc/selinux/config
更改SELINUX=disabled
生效临时命令
#setenforce 0
关闭防火墙并设置开机不自启
# systemctl stop firewalld
# systemctl disable firewalld
# iptables -F
# iptables -X
# iptables -Z
# iptables-save
清除缓存,验证yum 源。
# yum clean all
# yum repolist
8.编辑环境变量
# yum install openstack-iaas -y (compute节点也得安装)
# vi /etc/openstack/openrc.sh
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.19.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.19.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.19.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
#--------------------Placement Config----------------------##
#Password for Mysql placement user. exmaple:000000
PLACEMENT_DBPASS=000000
#Password for Keystore placement user. exmaple:000000
PLACEMENT_PASS=000000
#--------------------Nova Config----------------------##
#Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000
#Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000
#--------------------Neutron 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
#External Network Interface. example:eth1
INTERFACE_NAME=ens34
#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=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.19.20 //计算节点的IP
#--------------------Trove Config----------------------##
#Password for Mysql trove user. exmaple:000000
TROVE_DBPASS=000000
#Password for Keystore trove user. exmaple:000000
TROVE_PASS=000000
#--------------------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 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
#--------------------ZUN Config----------------##
#Password for Mysql ZUN user. exmaple:000000
ZUN_DBPASS=000000
#Password for Keystore ZUN user. exmaple:000000
ZUN_PASS=000000
#Password for Keystore KURYR user. exmaple:000000
KURYR_PASS=000000
#--------------------OCTAVIA Config----------------##
#Password for Mysql OCTAVIA user. exmaple:000000
OCTAVIA_DBPASS=000000
#Password for Keystore OCTAVIA user. exmaple:000000
OCTAVIA_PASS=000000
#--------------------Manila Config----------------##
#Password for Mysql Manila user. exmaple:000000
MANILA_DBPASS=000000
#Password for Keystore Manila user. exmaple:000000
MANILA_PASS=000000
#The NODE Object Disk for Manila. example:md126p5.
SHARE_DISK=sdb3
#--------------------Cloudkitty Config----------------##
#Password for Mysql Cloudkitty user. exmaple:000000
CLOUDKITTY_DBPASS=000000
#Password for Keystore Cloudkitty user. exmaple:000000
CLOUDKITTY_PASS=000000
#--------------------Barbican Config----------------##
#Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000
#Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
###############################################################
#####在vi编辑器中执行:%s/^.\{1\}// 删除每行前1个字符(#号)#####
###############################################################
9. 通过脚本完成基础配置
通过脚本完成基础配置
controller节点和compute节点执行脚本iaas-pre-host.sh进行安装
[root@controller ~]# iaas-pre-host.sh
[root@controller ~]# reboot
[root@compute ~]# iaas-pre-host.sh
[root@compute ~]# reboot
通过脚本安装数据库服务
controller节点执行脚本iaas-install-mysql.sh进行安装
[root@controller ~]# iaas-install-mysql.sh
安装OpenStack基础服务
通过脚本安装keystone服务
controller节点执行脚本iaas-install-keystone.sh进行安装
[root@controller ~]# iaas-install-keystone.sh
通过脚本安装glance服务
controller节点执行脚本iaas-install-glance.sh进行安装
[root@controller ~]# iaas-install-glance.sh
通过脚本安装placement服务
controller节点执行脚本iaas-install-placement.sh进行安装
[root@controller ~]# iaas-install-placement.sh
通过脚本安装Nova服务
controller节点执行脚本iaas-install-nova-controller.sh进行安装
[root@controller ~]# iaas-install-nova-controller.sh
compute节点执行脚本iaas-install-nova-compute.sh进行安装
[root@compute ~]# iaas-install-nova-compute.sh
通过脚本安装Neutron服务
controller节点执行脚本iaas-install-neutron-controller.sh进行安装
[root@controller ~]# iaas-install-neutron-controller.sh
compute节点执行脚本iaas-install-neutron-compute.sh进行安装
[root@compute ~]# iaas-install-neutron-compute.sh
通过脚本安装Dashboard服务
controller节点执行脚本iaas-install-dashboard.sh进行安装
[root@controller ~]# iaas-install-dashboard.sh