CentOS7下安装openstack all-in-one

1、虚拟机下安装CentOS7

操作步骤可以直接在网上搜索,这里说一下一些参数设置

硬盘大小

硬盘大小如果你只是下载安装一个openstack all-in-one,而不去使用它创建实例的话,那么只需要40G甚至不到40G就行了。但如果后续还想创建实例,学习一些操作的话,建议视你电脑配置,越大越好。

内存大小

内存这块,我原本用8G来安装,有时候能安装上,有时候不能装上,这里建议也是越大越好。

而且,一般如果主机是8G内存,虚拟机支持最大的内存是6.1G,如果主机是16G,虚拟机支持的最大内存是13.4G。我这边安装成功的时候,用的是13.4G。但在后面创建实例的时候,13.4G不够用了。

建议也是越大也越好。低于8G,我这边就没安装成功过。

网络

一定要能连外网!

一定要能连外网!

一定要能连外网!

(PS:后续会尝试用yum cache的安装缓存包来试一下能不能离线安装,不过目前来看,并不能。保留安装包的配置如下)

# vi /etc/yum.conf

#把keepcache值设置为1

keepcache=1 #设置为1,启用缓存

2、虚拟机环境搭建

直接把下面的shell脚本放到CentOS 下,然后运行。

PS:这个步骤用时很长,我这边用了2小时左右。

#!/bin/sh

yum install -y centos-release-openstack-rocky

yum install epel-release

yum install -y python-pip

pip install --upgrade pip

yum install -y createrepo #这是用来打包用的,生成repodata文件

yum install -y ntp

yum install -y yum-plugin-priorities

yum install -y openstack-selinux

yum install -y mariadb mariadb-server MySQL-python

yum install -y rabbitmq-server

yum install -y openstack-keystone python-keystoneclient

yum -y install openstack-glance python-glanceclient

yum install -y openstack-nova-api openstack-nova-cert openstack-novaconductor \

openstack-nova-console openstack-nova-novncproxy openstack-novascheduler \

python-novaclient

yum install -y openstack-nova-compute sysfsutils

yum install -y openstack-neutron openstack-neutron-ml2 python-neutronclient \

which

yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutronopenvswitch

yum install -y openstack-neutron-ml2 openstack-neutron-openvswitch

yum install -y openstack-nova-network openstack-nova-api

yum install -y openstack-dashboard httpd mod_wsgi memcached pythonmemcached

yum install -y openstack-cinder targetcli python-oslo-db MySQL-python

yum install -y openstack-swift-proxy python-swiftclient python-keystoneauth-token \

python-keystonemiddleware memcached

yum install -y xfsprogs rsync

yum install -y openstack-swift-account openstack-swift-container \

openstack-swift-object

yum install -y openstack-heat-api openstack-heat-api-cfn openstack-heatengine \

python-heatclient

yum install -y mongodb-server mongodb

yum install -y openstack-ceilometer-api openstack-ceilometer-collector \

openstack-ceilometer-notification openstack-ceilometer-central \

openstack-ceilometer-alarm \

python-ceilometerclient

yum install -y openstack-ceilometer-compute python-ceilometerclient pythonpecan

yum install -y openstack-trove python-troveclient

yum install -y openstack-sahara python-saharaclient

yum install -y openstack-nova-conductor \

openstack-nova-console openstack-nova-novncproxy \

openstack-nova-scheduler openstack-nova-placement-api

yum update -y

然后再安装packstack。

#安装openstack-packstack

yum install -y openstack-packstack

网上很多的教程是要你直接安装packstack,然后安装all-in-one,但如果你不提前安装一些东西的话,会出现各种各样的安装错误,所以还是建议先安装一些包。

3、一些安装前的配置(必看)

leatherman版本回退

leatherman在安装中,需要的是1.3的版本,但在执行以上操作后,本机的版本是1.10的版本,需要回退版本。

#查看版本

yum list | grep leatherman

leatherman.x86_64 1.10.0-1.el7 @epel

leatherman-devel.x86_64 1.10.0-1.el7 epel

#回退版本

yum -y downgrade leatherman

修改最大进程数 && 使能overcommit_memory

这一步尤其在你的CentOS配置很低的情况下使用。如果你在安装过程重,报了如下错误,可以考虑这个解决方案。但如果改了还是报这个错,那就没法子了,配置太低了。

Error: /Stage[main]/Aodh::Api/Service[aodh-api]: Could not evaluate: Cannot allocate memory - fork(2)

1

#查看最大支持进程数

sysctl kernel.pid_max

#修改内核中,最大支持进程数。我是直接把原有的数字翻倍

echo "kernel.pid_max=262144 " >> /etc/sysctl.conf

#使能overcommit_memory

echo 1 > /proc/sys/vm/overcommit_memory

DNS等服务

[root@openstack ~] vi /etc/hosts

#添加

192.168.137.150 openstack.rdo

#添加DNS解析服务

[root@openstack ~] vi /etc/resolv.conf

nameserver 192.168.137.150

如果你的虚拟机网卡设置的是static的,那么一定要配置IPADDR、IPMASK、GATEWAY这三个值。ONBOOT=1也要配置。

4、执行安装all-in-one

这一步耗时就要看你电脑的配置了,我这边1CPU,13.4G 内存,花了一个多小时。

#同步时间

[root@openstack ~] ntpdate -u ntp.sjtu.edu.cn

#关闭防火墙等服务

[root@openstack ~] systemctl disable firewalld && systemctl stop firewalld && systemctl disable NetworkManager && systemctl stop NetworkManager && systemctl enable network && systemctl start network && iptables -F

#执行all-in-one安装,不要demo

[root@openstack ~] packstack --allinone --provision-demo=n

PS:安装步骤建议不要用SSH等远程登录去弄,我之前内存设置为8G的时候,遇到过一次因为内存过载,出发了Linux内核的OOM(Out of Memory)机制,然后它强制把我SSH进程给kill了,本来其实慢慢等应该有机会安装成功的,结果SSH被断,原本SSH执行的命令也强制取消了。很尴尬⊙﹏⊙‖∣

安装完成后,在/root/目录下cat对应的认证文件

[root@openstack ~]# source keystonerc_admin #认证一下

[root@openstack ~(keystone_admin)]# cat keystonerc_admin

unset OS_SERVICE_TOKEN

export OS_USERNAME=admin #你的登录名

export OS_PASSWORD='admin' #你的密码,初始化一个长的随机值,需要自己在web下修改。这个keystonerc_admin文件你改了没用

export OS_REGION_NAME=RegionOne

export OS_AUTH_URL=http://192.168.137.150:5000/v3 #登录地址,也可以在浏览器地址栏中敲 192.168.137.150/dashboard 进入页面

export PS1='[\u@\h \W(keystone_admin)]\$ '

export OS_PROJECT_NAME=admin

export OS_USER_DOMAIN_NAME=Default

export OS_PROJECT_DOMAIN_NAME=Default

export OS_IDENTITY_API_VERSION=3

Comment

华计科技: 中华自主研发设计

华计科技为您提供咨询服务,IT技术支持和项目开发: (+86) 156 2654 0671

联系我们