CentOS7下安装openstack all-in-one

CentOS7下安装openstack all-in-one

1、虚拟机下安装CentOS7

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

  1. 硬盘大小
    硬盘大小如果你只是下载安装一个openstack all-in-one,而不去使用它创建实例的话,那么只需要40G甚至不到40G就行了。但如果后续还想创建实例,学习一些操作的话,建议视你电脑配置,越大越好。
  2. 内存大小
    内存这块,我原本用8G来安装,有时候能安装上,有时候不能装上,这里建议也是越大越好。
    而且,一般如果主机是8G内存,虚拟机支持最大的内存是6.1G,如果主机是16G,虚拟机支持的最大内存是13.4G。我这边安装成功的时候,用的是13.4G。但在后面创建实例的时候,13.4G不够用了。
    建议也是越大也越好。低于8G,我这边就没安装成功过。
  3. 网络
    一定要能连外网!
    一定要能连外网!
    一定要能连外网!
    (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、一些安装前的配置(必看)

  1. 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
  1. 修改最大进程数 && 使能overcommit_memory
    这一步尤其在你的CentOS配置很低的情况下使用。如果你在安装过程重,报了如下错误,可以考虑这个解决方案。但如果改了还是报这个错,那就没法子了,配置太低了。
Error: /Stage[main]/Aodh::Api/Service[aodh-api]: Could not evaluate: Cannot allocate memory - fork(2)
#查看最大支持进程数
sysctl kernel.pid_max
#修改内核中,最大支持进程数。我是直接把原有的数字翻倍
echo "kernel.pid_max=262144 " >> /etc/sysctl.conf
#使能overcommit_memory
echo 1 > /proc/sys/vm/overcommit_memory
  1. 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

web页面效果如下
CentOS7下安装openstack all-in-one_第1张图片
CentOS7下安装openstack all-in-one_第2张图片

你可能感兴趣的:(linux,openstack)