OpenStack开源云计算操作系统安装详细步骤-红帽Linux+PackStack含资源
部署环境
三台服务器可为VMWare Workstation中的三个虚拟机,注意打开CPU虚拟化选项
- Controller(控制节点)
- CPU 2个
- 内存 4G
- 硬盘 30G
- Compute(计算节点)
- CPU 2个
- 内存 4G
- 硬盘 30G
- NTP(时间服务器)
- CPU 1个
- 内存 1G
- 硬盘 20G
安装步骤
-
前序步骤:三台服务器均安装RHEL7.1系统或centOS7.1
- 安装介质
- rhel-server-7.1-x86_64-dvd.iso
- 链接:https://pan.baidu.com/s/1e_JsJRKmiKiTFM57gcYwYA 提取码:iw1i
- RHEL7OSP-6.0-2015-02-23.2-x86_64.iso
- 链接:https://pan.baidu.com/s/1JMQYDj2P2adXbE_SHZoCTQ 提取码:kewr
- 红帽操作系统安装步骤略
- 网络模式配置成host-only
- 安装介质
-
1、配置网络和计算机名(三个节点)
- Controller
- IP: 192.168.6.66
- 子网掩码:255.255.255.0
- 网关:192.168.6.254
- DNS: 192.168.6.66
- 计算机名: controller
- Compute
- IP: 192.168.6.77
- 子网掩码:255.255.255.0
- 网关:192.168.6.254
- DNS: 192.168.6.66
- 计算机名: compute
- NTP
- IP: 192.168.6.88
- 子网掩码:255.255.255.0
- 网关:192.168.6.254
- DNS: 192.168.6.66
- 计算机名: ntp
- Controller
# 打开网络配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=none
NAME=eno16777736
DEVICE=eno16777736
ONBOOT=yes
# 三台机器分别设置为66/77/88
IPADDR=192.168.6.66
NETMASK=255.255.255.0
DNS1=192.168.6.66
# 重启网络生效
systemctl restart network
# 或者
service network restart
# 修改主机名
hostnamectl set-hostname controller
# 计算机名写入host表
# xshell --> 工具 --> 发送键输入到所有会话
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 以下为增加内容
192.168.6.66 controller
192.168.6.77 compute
192.168.6.88 ntp
- 2、配置安全(三个节点)
# 关闭防火墙
systemctl stop firewalld.service # 本次关闭
systemctl disable firewalld.service # 开机不自启
# 关闭SELinux(内核安全机制)
vim /etc/selinux/config
SELINUX=disabled # 开机不自启
setenforce 0 # 本次关闭
# 关闭 NetworkManager 服务(RHEL7对桥接支持不好)
systemctl disable NetworkManager # 开机不自启
systemctl stop NetworkManager.service # 本次关闭
关于 selinux
, 可参考 getsebool -a
中的开关
在国内,一般直接关掉防火墙和selinux,但从安全角度来说,强烈不建议这样做
- 3、配置时间服务器(只在ntp服务器中配置)
- 保证OpenStack各个节点的时间一致,因为服务对时间特别敏感,OpenStack各组件之间交互特别频繁,交互关系特别多
- 时钟服务器一定不可以搭在OpenStack节点上,而必须是一个外部节点
- 红帽7中默认安装了新的chronyd时钟服务,而没有安装老的ntpd时钟服务
- packstack安装OpenStack时,会自动检测时钟服务chronyd,纯开源安装不会检测
vim /etc/chrony.conf
# 注释如下四行,因为ntp是host-only模式,无法连接互联网,故取消上行对时
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
:set nu # 打开行号
# 取消第29行的注释,让ntp服务器作为最终的时钟源
local stratum 10
# 模仿第22行
allow 192.168.6/24 # 允许该网段的主机向我同步时间
# 重启时钟服务
systemctl restart chronyd.service
# 在controller节点中测试时钟服务器是否设置成功
date # 查看当前时间
date 11112011 # 将controller节点时间改成错误时间
ntpdate 192.168.6.88 # 设置向ntp时钟服务器同步时间
date # 再次查看当前时间,发现跟时钟服务器相同了
- 4、配置yum服务器和yum仓库文件(只在yum源服务器中配置)
- 将NTP服务器复用成为yum源
- 新建根文件夹
mkdir /isos
- 通过xftp的sftp协议将宿主机windows中的rhel-server-7.1-x86_64-dvd.iso和RHEL7OSP-6.0-2015-02-23.2-x86_64.iso两个文件拷贝至linux中的/isos目录中
- yum源需要使用http共享出去
- 挂载rhel-server-7.1-x86_64-dvd.iso安装http包
# 利用rhel-server-7.1-x86_64-dvd.iso安装http包
# 将iso文件挂在到/media上面
mount rhel-server-7.1-x86_64-dvd.iso /media/
# 查看挂在的iso文件
df -h
# 新建本地yum源
cd /etc/yum.repos.d/
vim dvd.repo
[dvd]
name=redhat
baseurl=file:///media
gpgcheck=0
# 利用本地yum源安装httpd包
cd
yum -y install httpd
# 安装成功会出现complete!
# 启动http服务
systemctl enable httpd
systemctl start httpd
# 在http默认目录下新建两个目录
mkdir /var/www/html/pub
mkdir /var/www/html/openstack
# 卸载之前挂载在/media上的iso文件
umount /media/
df -h # 查看确认已卸载
# 进入http目录,写一个index文件
cd /varcd /var/www/html/
vim index.html
hello
# 局域网内任意主机通过浏览器访问网址http://192.168.6.88,可以看到hello
# 将rhel-server-7.1-x86_64-dvd.iso和RHEL7OSP-6.0-2015-02-23.2-x86_64.iso两个文件的完整路径写入fstab
vim /etc/fstab
/isos/rhel-server-7.1-x86_64-dvd.iso /var/www/html/pub iso9660 defaults 0 0
/isos/RHEL7OSP-6.0-2015-02-23.2-x86_64.iso /var/www/html/openstack iso9660 defaults 0 0
# 挂载并验证是否成功
mount -a # 挂载,看到如下反馈
mount: /dev/loop0 is write-protected, mounting read-only
mount: /dev/loop1 is write-protected, mounting read-only
df -h # 验证,看到如下反馈
/dev/loop0 3.7G 3.7G 0 100% /var/www/html/pub
/dev/loop1 515M 515M 0 100% /var/www/html/openstack
# 浏览器访问验证可以查看iso光盘中的内容
# http://192.168.6.88/pub
# http://192.168.6.88/openstack
# 更改yum源地址
# 路径写到哪一层,取决于repodata在哪一层
cd /var/www/http/openstack
# 发现在RH7-RHOS-6.0和RH7-RHOS-6.0-Installer目录下都有repodata,所以配置两个yum源仓库,最终结果如下
vim /etc/yum.repos.d/dvd.repo
[dvd]
name=redhat
baseurl=http://192.168.6.88/pub
gpgcheck=0
[openstack]
name=openstack
baseurl=http://192.168.6.88/openstack/RH7-RHOS-6.0-Installer
gpgcheck=0
[OSP]
name=OSP
baseurl=http://192.168.6.88/openstack/RH7-RHOS-6.0
gpgcheck=0
# 测试yum仓库是否配置成功
yum clear all
yum list all
cd /var/www/html/openstack/RH7-RHOS-6.0/Packages
# 可以看见yum安装openstack所有需要的包
# 可以学习createrepo -v命令,了解如何制作repodata文件夹下的内容
# 将ntp服务器中的yum仓库配置文件拷贝到controller和compute两台服务器的相应路径中,以便另两台机器中能够通过yum命令自动化安装openstack
scp /etc/yum.repos.d/dvd.repo root@controller:/etc/yum.repos.d/
至此,其他服务器安装时,都是远程使用ntp服务器中的yum仓库进行安装,当需要安装多个节点时,会特别方便
- 5、安装packstack工具(仅在controller服务器中操作)
- packstack是用来部署openstack的工具包
- 通过packstack工具生成的应答文件可以快速安装多个节点
# 可通过ntp服务器上面的yum源安装packstack包
yum -y install openstack-packstack
# 安装成功会出现complete!
# 查看帮助
packstack --help |more
# 生成应答文件,作为安装openstack时的参数,类似于批处理,安装过程的批处理
# Generate a template of an answer file, using this option excludes all other options
packstack --gen-answer-file=/root/answers.txt
# 此时会在 /root/ 目录下生成应答文件 answers.txt, 并得到如下反馈生成一个公钥
Packstack changed given value to required value /root/.ssh/id_rsa.pub
# 华为使用TripleO生成lld文件来做这件事
# 该帮助文档有600多行,可以在vim中使用如下命令
:set nu # 显示行号
:set nonu # 取消显示行号
gg # 跳转到文本第一行
G # 跳转到文本最后一行
:n # 跳转到文本的第n行
/XXX # 搜索XXX并跳转光标
n # 搜索后光标跳转到下一个
N # 搜索后光标跳转到上一个
dd # 删除光标所在行
dG # 删除光标所在行到最后一行的所有内容
- 6、规划并使用应答文件安装openstack
vim /root/answers.txt
# 设置NTP服务器地址
CONFIG_NTP_SERVERS=192.168.8.88
# 设置ADMIN账户密码
CONFIG_KEYSTONE_ADMIN_PW=redhat
# 设置HORIZON_SSL加密,使得登录时使用https而不是http
CONFIG_HORIZON_SSL=y
# 关闭PROVISION_DEMO演示环境,若打开演示,会默认做好网络、镜像,还分发一个云主机
CONFIG_PROVISION_DEMO=n
# 设置计算节点IP地址
CONFIG_COMPUTE_HOSTS=192.168.6.77
# 可同时设置多个计算节点,甚至可将控制节点复用为计算节点,此处不做下面的设置
CONFIG_COMPUTE_HOSTS=192.168.6.77,192.168.6.66
# 通过应答文件,自动化安装openstack
packstack --answer-file=/root/answers.txt
# 安装过程需输入控制节点和计算节点的密码,并会传输秘钥,以便自动化安装过程中不需要再次输入密码
# 如果时钟同步出了问题,安装将无法进行。不需要知道时钟服务器的密码
# 安装成功后应能看到下面的文字
**** Installation completed successfully ******
# 通过访问https://192.168.6.66/dashboard进入openstack
# 用户名/密码为:admin/redhat
网友评论