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