前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过devstack,在Vmware中使用Centos7快速安装体验openstack(单节点安装)

通过devstack,在Vmware中使用Centos7快速安装体验openstack(单节点安装)

作者头像
海涛
发布2022-01-21 11:33:36
1.5K0
发布2022-01-21 11:33:36
举报
文章被收录于专栏:海涛技术日常海涛技术日常

系统环境:

Centos7.4 ,阿里云下载dvd版本,安装的基础设置服务器版本,算是比较干净的吧,能发现一些坑

开启虚拟机虚化功能

代码语言:javascript
复制
检查虚拟机支持CPU VT功能,返回值不为0表示支持。
egrep --color 'vmx|svm' /proc/cpuinfo | wc -l

为了方便测试,关闭防火墙

代码语言:javascript
复制
systemctl stop NetworkManager    
systemctl disable NetworkManager           
systemctl stop firewalld
systemctl disable firewalld
代码语言:javascript
复制
/usr/sbin/setenforce 0 //必须关闭 SELINUX(可选)

软件环境:

代码语言:javascript
复制
yum install epel-release
yum install -y python-pip
yum install -y git

正式开工:

1、下载devstack

代码语言:javascript
复制
git clone https://git.openstack.org/openstack-dev/devstack 
cd devstack
#如果下载太慢 可以换成
git clone http://git.trystack.cn/openstack-dev/devstack 
#############下面可选,选了一个稳定的分支,我第一遍是用的最新的master分支,所以会踩好多坑###########
git checkout remotes/origin/stable/queens
git checkout -b queens

2、创建stack用户

方法一:使用devstack提供的脚本创建

代码语言:javascript
复制
./tools/create-stack-user.sh
cd ..
mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack

方法二:自己手动创建

代码语言:javascript
复制
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

3、创建local.conf

代码语言:javascript
复制
su stack
cd /opt/stack/devstack
cp samples/local.conf ./
vim local.conf
[[local|localrc]]
#这里为了方便测试密码都设置的一样的
ADMIN_PASSWORD=password
SERVICE_TOKEN=$ADMIN_PASSWORD
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD

4、解决国内网络慢的问题(可选操作,可跳过)

镜像源修改:https://cloud.tencent.com/developer/article/1482487 ,我使用的阿里的

pip源修改:https://cloud.tencent.com/developer/article/1482477 ,使用的阿里,中科..有时候会因为某个源缺少某个造成错误,注意自己验证

DevStack和OpenStack源码可以替换为TryStack镜像,加入到第三步的local.conf 配置文件中

代码语言:javascript
复制
# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git

dns添加

代码语言:javascript
复制
/etc/resolv.conf
#添加 8.8.8.8
#重启
service network restart

5、安装部署

代码语言:javascript
复制
./stack.sh

这里执行时间比较长,耐心等待...

6、安装完成后测试

source devstack/openrc admin admin keystone endpoint-list nova service-list neutron agent-list

代码语言:javascript
复制
http://**/dashboard  

用户名为admin,密码是local.conf文件所设置的

openstack安装成功。

可能遇到的问题:

1.Unable to datermine DISTRO, can not continue.

解决办法:

代码语言:javascript
复制
yum install redhat-lsb-core -y

2.Invalid path permissions ,检测是否给予stack用户sudo权限,给了的话,检测第二步是否操作,没有的话给予/opt目录的权限

代码语言:javascript
复制
chmod -R 777 /opt
#因为 默认会安装到 /opt目录下面

3.pip版本问题

解决办法:pip install --upgrade pip ,成功后记得 pip -V 确认一下

如果遇到,pip版本低9.0 版本,但升级pip19 后一执行stack.sh 就又回去了的问题

原因是安装中会检查版本,不在规定的范围内,就会重新安装,后面又需要最新版导致无限循环

代码语言:javascript
复制
vi /opt/stack/devstack/tools/cap-pip.txt

显示 pip!=8,<10 将 ,<10 删除就可以了。

4.pip下载超时问题

ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

解决办法:

代码语言:javascript
复制
方法一:设置国内下载镜像地址
参考地址:https://my.oschina.net/haitaohu/blog/3084043
方法二:加大超时时间
pip --default-timeout=100 install -U pip
方法三:手动下载后,通过pip安装
pip install (path)/virtualenv-16.7.2-py2.py3-none-any.whl

5.cannot load glue library

解决办法: yum install -y libibverbs

6.RTNETLINK answers: Permission denied

解决办法:

代码语言:javascript
复制
vi /etc/sysctl.conf 
修改disable_ipv6的所有变成0
然后/sbin/sysctl -p【立即生效】

7.ERROR /opt/stack/devstack/functions-common:216 Failure creating NET_ID for private

解决办法:local.conf 中添加

代码语言:javascript
复制
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True
ML2_VLAN_RANGES=physnet1:1000:2000
  1. Error installing EPEL repo, cannot continue 如果确认你 epel 安装了的话

解决办法

代码语言:javascript
复制
yum-config-manager --enable epel

9.Failed to start Devstack devstack@etcd.service.

解决办法:local.conf 添加

代码语言:javascript
复制
disable_service etcd3

注意:遇到问题需要修改local.conf,需要清理上次错误配置./unstack.sh和clean.sh,然后再执行./stack.sh配置

建议: 如果不是找虐和练习,单纯体验,clone一个稳定版本 别clone 最新的master...不然你会发现 what the f..

外篇:

前面我们使用DevStack部署了一个精简版的OpenStack环境,其中只包含了几个核心组件。其它OpenStack服务是通过插件形式安装,DevStack支持部署的所有插件列表可参考DevStack Plugin Registry,截至2017年2月份,DevStack共包含132个安装插件。其中包含:

  • trove: 数据库服务。
  • sahara: 大数据服务。
  • ironic: 裸机服务。
  • magnum: 容器编排服务。
  • manila: 文件共享服务。
  • cloudkitty: 计费服务。
  • ...

需要开启部署某个服务,只需要使用enable_plugin配置指定对应插件即可,该配置项语法为:

代码语言:javascript
复制
enable_plugin plugin_name [code repo]

其中plugin_name为插件名称,可以在插件列表中找到,code repo为代码仓库地址,不配置就使用默认的地址。

比如我们需要开启Sahara服务,只需要在local.conf增加以下配置项:

代码语言:javascript
复制
enable_plugin sahara https://github.com/openstack/sahara.git
enable_plugin sahara-dashboard https://github.com/openstack/sahara-dashboard.git

注意以上我们同时开启了两个Sahara相关的插件,前者是Sahara插件,而后者是dashboard的Sahara插件,若不配置该插件,在dashboard中将看不到Sahara面板。

参考资料:

https://docs.openstack.org/devstack/latest/

https://pom.nops.cloud/deployment_tool/devstack.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档