在安装centos7的计算机中通过RDO的packstack安装工具自动安装单节点OpenStack测试平台,这里用的OpenStack版本为Queens。
1、准备安装的基础环境
①安装带图形界面的centos7.5操作系统(这里不在阐述)
②装完系统后,查看网络是否可用
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.136.129 netmask 255.255.255.0 broadcast 192.168.136.255
inet6 fe80::f33c:4348:bfa7:f870 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:82:0e:68 txqueuelen 1000 (Ethernet)
RX packets 93 bytes 12781 (12.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 122 bytes 13299 (12.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ping www.baidu.com #验证网络是否连接外网
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=128 time=5.84 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=128 time=9.24 ms
③查看yum源是否可用
[root@localhost ~]# yum repolist
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.bit.edu.cn
* updates: mirror.bit.edu.cn
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base 10,070
extras/7/x86_64 CentOS-7 - Extras 397
updates/7/x86_64 CentOS-7 - Updates 862
repolist: 11,329
④修改主机名
[root@localhost ~]# hostnamectl set-hostname openstack.cn
[root@localhost ~]# hostname
openstack.cn
⑤修改selinux为disabled
[root@localhost ~]# vim /etc/selinux/config #修改配置文件
SELINUX=disabled
[root@localhost ~]# reboot #修改为disabled时,一定要重启系统,才能生效
⑥禁用防火墙
[root@openstack ~]# systemctl disable firewalld# 禁用防火墙
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@openstack ~]# systemctl stop firewalld #禁用防火墙
[root@openstack ~]# systemctl status firewalld #查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) # 防火墙此时必须是dead状态
Docs: man:firewalld(1)
6月 29 10:46:10 openstack.cn systemd[1]: Starting firewalld - dynamic firewall daemon...
6月 29 10:46:11 openstack.cn systemd[1]: Started firewalld - dynamic firewall daemon.
6月 29 10:50:33 openstack.cn systemd[1]: Stopping firewalld - dynamic firewall daemon...
6月 29 10:50:34 openstack.cn systemd[1]: Stopped firewalld - dynamic firewall daemon.
⑦禁用NetworkManager服务
centos7的网络默认由NetworkManager(网络管理器)负责管理,但NetworkManager服务与OpenStack网络组建的Neturon有冲突,因此必须停用它,改成传统的网络服务Network来管理服务。
[root@openstack ~]# systemctl disable NetworkManager #禁用NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service.
[root@openstack ~]# systemctl stop NetworkManager #禁用NetworkManager
[root@openstack ~]# systemctl start network #重启传统网络服务network
[root@openstack ~]# systemctl enable network #开机自启动传统网络服务network
[root@openstack ~]# ping www.baidu.com #验证网络的可以用性
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=128 time=5.84 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=128 time=9.24 ms
⑧设置主机名解析
每个节点都要设置可识别的主机名,通过 /etc/hosts文件来提供各节点主机的名称解析
注意:所有节点的主机名都要提供解析,各节点上的127.0.0.1的名称解析必须保留,不能删除。要保证各个节点能够连接Internet,且每个节点的ip地址和主机名能够互相解析。
[root@openstack ~]# vim /etc/hosts
192.168.136.129 openstack.cn openstack #文件的末尾处添加此命令
[ip地址] [域名] [主机名]
⑨更改语言编码
如果centos7安装的是非英文版本,需要更改语言编码
[root@openstack ~]# vim /etc/environment #设置英文环境
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
⑩设置时间同步
[root@openstack ~]# yum -y install chrony #安装事假同步NTP包
[root@openstack ~]# vim /etc/chrony.conf #修改配置文件 ,指向阿里云同步
server ntp1.aliyun.com iburst #阿里云ntp同步时间
allow 0/0 #允许所有计算机连接此时间服务器
[root@openstack ~]# systemctl restart chronyd #重启时间同步chronyd服务
[root@openstack ~]# chronyc sourcestats #检查源时间服务器状态
210 Number of sources = 5
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
amy.chl.la 0 0 0 +0.000 2000.000 +0ns 4000ms
makaki.miuku.net 9 6 1039 -2.924 16.830 +26ms 3509us
119.28.183.184 20 13 21m -2.790 15.150 +17ms 6024us
time.cloudflare.com 23 9 54m -5.858 14.740 +20ms 16ms
120.25.115.20 22 15 55m +0.000 1.979 +24ns 1530us
[root@openstack ~]# chronyc sources #检查设置的源时间服务器
210 Number of sources = 5
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? amy.chl.la 0 10 0 - +0ns[ +0ns] +/- 0ns
^- makaki.miuku.net 2 7 377 11 +26ms[ +26ms] +/- 96ms
^- 119.28.183.184 2 7 377 106 +18ms[ +18ms] +/- 67ms
^- time.cloudflare.com 3 8 377 128 +4783us[+4783us] +/- 137ms
^* 120.25.115.20 2 8 377 391 -2181us[-2156us] +/- 25ms
注意:只要有^*就有同步
*********************************************
2、准备所需的软件库
[root@openstack ~]# yum -y install centos-release-openstack-queens #安装centos-release-openstack-queens
[root@openstack ~]# yum-config-manager --enable openstack-queens #确保openstack-queens可用
[root@openstack ~]#yum update -y #升级所有包,并升级内核
[root@openstack ~]#yum -y install yum-plugin-priorities #安装yum-plugin-priorities插件用于设置yum调用软件源顺序
[root@openstack ~]#cd /etc/yum.repos.d/ #进入yum.repos.d目录
[root@openstack ~]#curl -O https://trunk.rdoproject.org/centos7/delorean-deps.repo #下载delorean-deps.repo
[root@openstack ~]#curl -O https://trunk.rdoproject.org/centos7/current-passed-ci/delorean.repo #下载delorean.repo
[root@openstack ~]#yum update -y #升级所有包,并升级内核
************************************************
3、安装packstack安装器
[root@openstack ~]#yum install -y openstack-packstack #安装过程需要安装很多依赖包
************************************************
4、运行packstack安装OpenStack
使用"All-in-One"方式进行单节点部署
[root@openstack ~]# packstack --allinone
Welcome to the Packstack setup utility
The installation log file is available at: /var/tmp/packstack/20200629-131314-8mFyAb/openstack-setup.log
Packstack changed given value to required value /root/.ssh/id_rsa.pub
Installing:
Clean Up [DONE ]
Discovering ipprotocol version [DONE ]
# 设置SSH密钥
Setting up sshkeys [ DONE ]
# 准备服务器
Preparing servers [ DONE ]
# 安装Puppet和探测主机详情之前
Pre installing Puppet and discovering
hosts' details [ DONE ]
# 准备预装的项目
Preparing pre-install entries [ DONE ]
# 设置证书
Setting up CACERT [ DONE ]
# 准备AMQP(高级消息队列协议)项目
Preparing AMQP entries [ DONE ]
# 准备MariaDB(现已代替MySQL)数据库项目
Preparing MariaDBentries [ DONE ]
# 修正Keystone LDAP参数
Fixing Keystone LDAP configparameters to be undef if
empty[ DONE ]
# 准备Keystone(认证服务)项目
Preparing Keystone entries [ DONE ]
# 准备Glance(镜像服务)项目
Preparing Glance entries [ DONE ]
# 检查Cinder(卷存储服务)是否有卷
Checking if the Cinder server has a
cinder-volumes vg[ DONE ]
# 准备Cinder(卷存储服务)项目
Preparing Cinder entries [ DONE ]
# 准备Nova API(Nova对外接口)项目
Preparing Nova API entries [ DONE ]
# 为Nova迁移创建SSH密钥
Creating sshkeys for Nova migration [ DONE]
Gathering sshhost keys for Nova migration [ DONE]
# 准备Nova Compute(计算服务)项目
Preparing Nova Compute entries [ DONE ]
# 准备Nova Scheduler(调度服务)项目
Preparing Nova Scheduler entries [ DONE ]
# 准备Nova VNC(虚拟网络控制台)代理项目
Preparing Nova VNC Proxy entries [ DONE ]
# 准备OpenStack与网络相关的Nova项目
Preparing OpenStackNetwork-related Nova entries [ DONE ]
# 准备Nova通用项目
Preparing Nova Common entries [ DONE ]
# 以下准备Neutron(网络组件)项目
Preparing Neutron LBaaSAgent entries [ DONE ]
Preparing Neutron API entries [ DONE ]
Preparing Neutron L3 entries [ DONE ]
Preparing Neutron L2 Agent entries [ DONE ]
Preparing Neutron DHCP Agent entries [ DONE ]
Preparing Neutron Metering Agententries [ DONE ]
Checking if NetworkManagerisenabled and running [ DONE ]
# 准备OpenStack客户端项目
Preparing OpenStackClient entries [ DONE ]
# 准备Horizon仪表板项目
Preparing Horizon entries [ DONE ]
# 以下准备Swift(对象存储)项目
Preparing Swift builder entries [ DONE ]
Preparing Swift proxy entries [ DONE ]
Preparing Swift storage entries [ DONE ]
# 准备Gnocchi(用于计费的时间序列数据库作为服务)项目
Preparing Gnocchi entries [ DONE ]
# 准备Redis(用于计费的数据结构服务器)项目
Preparing Redisentries [ DONE ]
# 准备Ceilometer(计费服务)项目
Preparing Ceilometer entries [ DONE ]
# 准备Aodh(警告)项目
Preparing Aodhentries [ DONE]
# 准备Puppet模块和配置清单
Preparing Puppet manifests [ DONE ]
Copying Puppet modules and manifests [ DONE ]
# 应用控制节点(测试时可能需要较长时间)
Applying 192.168.136.129_controller.pp #在此过程要等待30min左右
192.168.136.129_controller.pp: [ DONE ]
# 应用网络节点(测试时可能需要较长时间)
Applying 192.168.136.129_network.pp
192.168.136.129_network.pp: [ DONE ]
# 应用计算节点(测试时可能需要较长时间)
Applying 192.168.136.129_compute.pp
192.168.136.129_compute.pp: [ DONE ]
# 应用Puppet配置清单
Applying Puppet manifests [ DONE ]
Finalizing [ DONE ]
# 安装成功完成应用并给出其他提示信息
**** Installation completed successfully ******
Additional information:
* Parameter CONFIG_NEUTRON_L2_AGENT: You have chosen OVN Neutron backend. Note that this backend does not support the VPNaaS or FWaaS services. Geneve will be used as the encapsulation method for tenant networks
# 执行命令产生的应答文件
* A new answerfile was created in: /root/packstack-answers-20200629-131315.txt
# 未安装时间同步。,需要确认CentOS 7当前的系统时间正确,如果不正确,则需要修改
* Time synchronization installation was skipped. Please note that unsynchronized time on server instances might be problem for some OpenStack components.
# 在用户主目录下产生keystonerc_admin文件,使用命令行工具需要使用它作为授权凭据
* File /root/keystonerc_admin has been created on OpenStack client host 192.168.136.129. To use the command line tools you need to source the file.
# 访问OpenStack Dashboard(Web访问接口),请使用keystonerc_admin中的登录凭据
* To access the OpenStack Dashboard browse to http://192.168.136.129/dashboard .
Please, find your login credentials stored in the keystonerc_admin in your home directory.
* Because of the kernel update the host 192.168.136.129 requires reboot.
# 安装日志文件名及其路径
* The installation log file is available at: /var/tmp/packstack/20200629-131314-8mFyAb/openstack-setup.log
# Puppet配置清单路径
* The generated manifests are available at: /var/tmp/packstack/20200629-131314-8mFyAb/manifests
You have new mail in /var/spool/mail/root
以上利用DRO安装OpenStack过程。整个环境配置及安装大概需要1.5个小时。