OpenStack Wiki-2 OpenStack 安装
安装准备
本次安装以2020年技能大赛发放的文件进行安装演示,具体信息如下:
文件准备
安装文件表
文件名 | 用途 | 备注 |
---|---|---|
CentOS-7-x86_64-DVD-1804.iso | CentOS 7.5 系统安装包 | |
chinaskills_cloud_iaas.iso | OpenStack安装包 |
节点规划
本次安装采用双节点方式进行安装,分为控制节点(controller)和结算节点(compute),具体服务和配置规划如下:
节点配置表:
项目 | controller | compute |
---|---|---|
CPU | 4 | 6 |
RAM | 4GB | 8GB |
硬盘 | 50GB | 100GB 50GB安装系统 50GB分配给存储服务 |
网卡1 | eth0,eth1 | eth0,eth1 |
eth0 | 192.168.100.10/24 | 192.168.100.20/24 |
eth1 | 192.168.200.10/24 | 192.168.200.20/24 |
节点服务表1:
controller | compute |
---|---|
MySQL
Keystone Glance Nova-controller Neutron-controller Dashboard Cinder-controller Swift-controller Zun-controller Heat Ceilometer-controller Aodh Nova-compute |
Nova-compute
Neutron-compute Cinder-compute Swift-compute Zun-compute Ceilometer-compute |
操作系统配置
安装Centos7.5
在主机中安装CentOS7.5,安装过程中注意一下内容:
-
检查网络环境,正确配置网络,确保网络畅通。
-
主机网络配置
-
虚拟机网络配置/交换机网络配置
-
节点网络配置
-
-
安装时关闭网卡自动命名功能,方便后面配置和使用
-
在镜像启动界面使用
tab
进入配置模式,使用命令关闭网卡自动命名2。net.ifnames=0 biosdevname=0
镜像启动界面
使用命令关闭网卡自动命名
成功修改后在安装界面就可以看到
-
-
为了后面配置方便,
root
用户密码设置为000000
-
现在不支持创建空白分区,在
compute
节点分区时需手动调整分区
配置操作系统
在安装OpenStack前需要对系统基本环境进行配置,确保网络能够畅通,基本功能能够实现。
具体配置内容包括:网络,防火墙和SELinux,hosts,yum,硬盘分区,
修改计算机名
在安装完毕操作系统后我们要及时修改计算机的名字,放在在多台设备之间识别。
# 修改controller节点计算机名
hostnamectl set-hostname controller
# 修改compute节点计算机名
hostnamectl set-hostname compute
网络配置
网络配置具体包括网卡的配置和IP地址的配置。在新安装操作系统后,系统默认情况下网卡时关闭的,需要我们自己去配置网卡配置文件,启用网卡并配置正确的IP地址。
我们根据我们之前规划的配置来配置网卡:
controller
# controller 节点
# eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=d6f7794f-228f-4dec-b366-9208abf548b2
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.10
PREFIX=24
GATEWAY=192.168.100.1
# eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=ad39e6b9-3bda-4b83-a858-d3bc896843be
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.200.10
PREFIX=24
GATEWAY=192.168.200.1
compute
# compute节点
# eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=a888f576-e392-42ea-a423-f64578b3b6b1
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.100.20
PREFIX=24
GATEWAY=192.168.100.1
# eth1
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth1
UUID=87dc4173-18a1-43c9-b939-c6427fde7dc8
DEVICE=eth1
ONBOOT=yes
IPADDR=192.168.200.20
PREFIX=24
GATEWAY=192.168.200.1
在配置完毕网卡后我们要重启网络服务来启用网卡,重启网络服务命令是:systmectl restart network
。
hosts
文件配置
hosts
文件的作用是将一些常用的网站域名与其对应的IP地址建立一个关系库,功能类似于我们的DNS服务器,但是在一些局域网的环境下没有架设DNS服务器,可以使用hosts文件来指定远程主机。
我们在环境中使用了两个节点,所以在hosts文件中指定两台主机。
# 查看修改完的hosts文件
at /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.10 controller # 控制节点IP
192.168.100.20 compute # 计算节点IP
防火墙和SELinux
我们的OpenStack平台集成了安全组的管理,为了避免多个防火墙之间的冲突,我们需要关闭本机自带的防火墙和SELinux。
防火墙
# 关闭防火墙
systemctl stop firewalld
# 取消防火墙开机自启
systemctl disable firewalld
# 查看防火墙状态
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) # ?这里显示防火墙状态已经关闭
Docs: man:firewalld(1)
Apr 19 18:24:43 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 19 18:24:43 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Apr 19 19:13:57 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
Apr 19 19:13:58 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.
SELinux
# 临时修改SELinux
setenforce 0
# 永久关闭SELinux
sed -i -e "s/=enforcing/=permissive/" /etc/selinux/conf
# 查看SELinux状态
getenforce
配置yum仓库
YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
在我们的集群中,管理节点一般不访问外部网络,因此我们要在本地搭建yum仓库来实现软件下载等操作,同时搭建ftp服务方便其他节点访问下载。
-
准备文件
-
上传文件到controller节点
在服务器管理中我们上传文件一般使用'sftp'协议进行连接上传,本次使用
Xftp
工具进行上传: -
将镜像分别挂载到各自的目录
# 创建对应的文件夹 mkdir /opt/centos /opt/openstack ls /opt/ centos openstack # 复制镜像内文件到目录 # 挂载centos镜像到一个临时的目录'mnt' mount -o loop /root/CentOS-7-x86_64-DVD-1804.iso /mnt/ mount: /dev/loop0 is write-protected, mounting read-only # 复制镜像里面的文件到对应的目录 cp -rvf /mnt/* /opt/centos/ # 解除挂载,方便一会挂载另一个镜像 umount /mnt/ # iaas镜像操作 mount -o loop /root/chinaskills_cloud_iaas.iso /mnt/ mount: /dev/loop0 is write-protected, mounting read-only cp -rvf /mnt/* /opt/openstack/ umount /mnt
-
-
编写yum仓库文件
-
controller节点的文档
# controller节点yum文档内容 # 因为controller节点使用的是本地文件,所以在链接一栏使用本地文件链接。 [centos] name=centos baseurl=file:///opt/centos/ gpgcheck=0 enabled=1 [iaas] name=openstack baseurl=file:///opt/openstack/iaas-repo/ gpgcheck=0 enabled=1
-
compute节点的文档
# compute节点内容 # 因为compute节点使用的是controller的ftp服务,所以链接一栏填写远程ftp服务器地址 [centos] name=centos baseurl=ftp://192.168.100.10/centos/ gpgcheck=0 enabled=1 [iaas] name=openstack baseurl=ftp://192.168.100.10/openstack/iaas-repo gpgcheck=0 enabled=1
-
-
测试yum仓库
测试仓库是否正确可以使用下面的命令
# 清空仓库缓存 yum clean all # 生成缓存文件 yum makecache ############# # 仓库正确输出内容如下 yum makecache Loaded plugins: fastestmirror Determining fastest mirrors centos | 3.6 kB 00:00:00 iaas | 2.9 kB 00:00:00 (1/7): centos/group_gz | 166 kB 00:00:00 (2/7): centos/primary_db | 3.1 MB 00:00:00 (3/7): centos/filelists_db | 3.1 MB 00:00:00 (4/7): centos/other_db | 1.3 MB 00:00:00 (5/7): iaas/primary_db | 1.4 MB 00:00:00 (6/7): iaas/filelists_db | 3.2 MB 00:00:00 (7/7): iaas/other_db | 618 kB 00:00:00 Metadata Cache Created
硬盘分区
我们在安装前的规划中,在compute节点需要安装两个存储服务,在安装服务之前我们要提前划分分区规划。
# 检查硬盘分区表
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 48.9G 0 part
├─centos-root 253:0 0 41G 0 lvm /
└─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom
# 进入分区工具
# parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 53.6GB 52.5GB primary lvm
# 开始分区
(parted) mkpart cinder 55G 90G
parted: invalid token: cinder
Partition type? primary/extended? p
File system type? [ext2]? xfs
Start? 55G
End? 95G
(parted) mkpart
Partition type? primary/extended? p
File system type? [ext2]? xfs
Start? 95G
End? 105G
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 53.6GB 52.5GB primary lvm
3 55.0GB 95.0GB 40.0GB primary
4 95.0GB 105GB 10.0GB primary
# 格式化分区
mkfs.xfs /dev/sda
sda sda1 sda2 sda3 sda4
# mkfs.xfs /dev/sda3
meta-data=/dev/sda3 isize=512 agcount=4, agsize=2441408 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=9765632, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=4768, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# mkfs.xfs /dev/sda4
meta-data=/dev/sda4 isize=512 agcount=4, agsize=610368 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2441472, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
安装OpenStack
我们本次安装的OpenStack是由国基北盛提供的安装包,同时也包含了自动安装脚本,我们可以快捷使用脚本进行安装。
配置环境变量
在使用脚本进行安装前,需要对环境变量进行预配置,方便安装脚本获取对应信息。
安装环境变量工具
配置环境变量使用的脚本已经打包在iaas-xiandian
的软件包中,安装软件就可以获取安装脚本和环境变量文件。
# 两个节点同时安装iaas-xiandian软件包
# yum install -y iaas-xiandian
iaas-xiandian安装后脚本列表
文件名 | 路径 | 用途 |
---|---|---|
openrc.sh | /etc/xiandian/openrc.sh | 环境变量文件 |
iaas-install-aodh.sh | /usr/local/bin/ | aodh服务安装脚本 |
iaas-install-barbican.sh | /usr/local/bin/ | barbican服务安装脚本 |
iaas-install-ceilometer-compute.sh iaas-install-ceilometer-controller.sh | /usr/local/bin/ | ceilometer服务安装脚本 |
iaas-install-cinder-compute.sh iaas-install-cinder-controller.sh | /usr/local/bin/ | cinder服务安装脚本 |
iaas-install-dashboard.sh | /usr/local/bin/ | dashboard服务安装脚本 |
iaas-install-glance.sh | /usr/local/bin/ | glance服务安装脚本 |
iaas-install-heat.sh | /usr/local/bin/ | heat服务安装脚本 |
iaas-install-keystone.sh | /usr/local/bin/ | keystone服务安装脚本 |
iaas-install-mysql.sh | /usr/local/bin/ | MySQL服务安装脚本 |
iaas-install-neutron-compute.sh iaas-install-neutron-controller.sh | /usr/local/bin/ | neutron服务安装脚本 |
iaas-install-nova-compute.sh iaas-install-nova-controller.sh | /usr/local/bin/ | nova服务安装脚本 |
iaas-install-swift-compute.sh iaas-install-swift-controller.sh | /usr/local/bin/ | swift服务安装脚本 |
iaas-install-zun-compute.sh iaas-install-zun-controller.sh | /usr/local/bin/ | zun服务安装脚本 |
iaas-pre-host.sh | /usr/local/bin/ | 系统环境配置脚本 |
iaas-uninstall-all.sh | /usr/local/bin/ | 卸载脚本 |
配置环境变量
配置完毕的openrc.sh文件如下
# 配置完毕的openrc.sh文件
#--------------------system Config--------------------##
#Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.100.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.100.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.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.100.10
#External Network Interface. example:eth1
INTERFACE_NAME=eth1
#External Network The Physical Adapter. example:provider
Physical_NAME=provider
#First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=100
#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=sda3
#--------------------Swift Config---------------------##
#Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000
#The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sda4
#The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.100.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
使用脚本安装openstack
在配置完毕系统环境和环境变量脚本后,直接使用脚本安装openstack即可。
安装脚本顺序表
controller | compute |
---|---|
iaas-pre-host.sh | iaas-pre-host.sh |
iaas-install-mysql.sh | |
iaas-install-keystone.sh | |
iaas-install-glance.sh | |
iaas-install-nova-controller.sh | iaas-install-nova-compute.sh |
iaas-install-neutron-controller.sh | iaas-install-neutron-compute.sh |
iaas-install-dashboard.sh | |
iaas-install-cinder-controller.sh | iaas-install-cinder-compute.sh |
iaas-install-swift-controller.sh | iaas-install-swift-compute.sh |
iaas-install-zun-conotroller.sh | iaas-install-zun-compute.sh |
iaas-install-heat.sh | |
iaas-install-ceilometer-controller.sh | iaas-install-ceilometer-computer.sh |
iaas-install-aodh.sh |
网页访问OpenStack页面
在安装完Dashboard后就可以在浏览器访问web页面来查看。
访问地址:ip/dashboard:192.168.100.10/dashboard
-controller
和带-controller
尾缀,带-controller
的表示控制节点使用的服务。版权声明:
作者:EzioTA
链接:http://blog.acdts.top/eziota/openstack-wiki-2-openstack-%e5%ae%89%e8%a3%85/
来源:ETA's Blog
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论