之所以再重复一下,是因为踩坑的过程,希望能帮助有需要的人。
介绍:
宿主机win10,在vmware下创建两台ubuntu16.04虚拟机,一台作为控制节点,一台作为计算节点,利用devstack部署openstack ocata。
前期工作:
1、下载ubuntu镜像,我用的是ubuntu-16.04.3-server-amd64版本
2、下载vmware workstation,我用的是vmware workstation 11版本
3、下载xshell,用于ssh连接虚拟机,方便复制代码
4、安装完vmware后,点击编辑,启动虚拟网络编辑器,选择vmnet8,依次设置子网ip、子网掩码、点击NAT设置,修改网关为10.10.10.2(10.10.10.1默认分给宿主机)
安装虚拟机:
作为控制节点的虚拟机至少分配40g磁盘空间,4g内存,处理器开启虚拟化,网络适配器设置NAT模式,再添加一个网络适配器,设置为host-only模式;作为计算节点的虚拟机至少30g磁盘空间,2g内存,网络适配器类似;然后启动虚拟机,安装操作系统。
开始搭建:(控制节点+计算节点)
1、安装完毕,进入系统,切换到root用户并设置密码
sudo su
passwd root // 123456 123456
2、编辑sshd_config文件
vi /etc/ssh/sshd_config
将PermitRootLogin改为yes,保存退出。
重启ssh服务
service ssh restart
问题1:没有sshd_config文件,需要安装openssh-server:
apt-get install openssh-server
问题2:vi编辑器无法编辑,需要安装vim编辑器:
apt-get install vim
3、测试虚拟机能否ping通宿主机、能否ping通外网,测试宿主机能否ping通虚拟机,都可以的话利用xshell通过ssh连接虚拟机
4、ssh访问成功后,查看网卡信息(ip a),编辑网卡信息
vi /etc/network/interfaces
替换掉原来的ens33、ens34信息(我的网卡名是ens33和ens34,将它们替换为你们的网卡名;这里我设置控制节点的ip为10.10.10.10,计算节点ip为10.10.10.11,大家随意;网关设置为10.10.10.2,与前面虚拟网络编辑器设置的一致就好)[ifconfig 没有 第二个网卡名,虽然添加过第二个网络适配器,配置也可以如下,重启系统之后会出现,但是没有ip...]
auto ens33
iface ens33 inet static
address 10.10.10.10
netmask 255.255.255.0
gateway 10.10.10.2
dns-nameserver 114.114.114.114
auto ens38
iface ens38 inet manual
保存退出,reboot重启,输入ip r查看ip是否改变,ping下外网是否可ping通,成功可进入下一步
5、换源,将apt源换为国内的源。
备份:cp /etc/apt/sources.list /etc/apt/sources.list.back
编辑:vi /etc/apt/sources.list
清空并替换为:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
保存退出。
更新:
apt-get update
apt-get upgrade
6、pip安装与升级
输入pip检测是否安装pip,若没有则输入apt-get install python-pip安装。
设置pip源:
mkdir ~/.pip
vi ~/.pip/pip.conf
添加
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
保存退出。
pip -V //查看版本
7、设定时间同步
设定时区:dpkg-reconfigure tzdata
选择Asia -> 再选择Shanghai -> OK
同步时间命令:
1、sudo apt-get install ntpdate // 安装时间同步工具
2、sudo ntpdate cn.pool.ntp.org // 与网络服务器同步时间
3、date // 查看时间是否已同步
8、安装git:
apt-get install git
9、创建stack用户:
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
切换到stack用户:
sudo su - stack
重复步骤6,给stack用户也布置pip源
10、下载devstack
cd /opt/stack
git clone https://github.com/openstack-dev/devstack -b stable/ocata
cd devstack
11、编辑local.conf文件
vim local.conf
添加如下内容:
控制节点:(HOST_IP改为你的控制节点ip,# Credentials 设置密码,# Branches设置要装的openstack版本)
控制节点
[[local|localrc]]
MULTI_HOST=true
#management & api network
HOST_IP=10.10.10.10
LOGFILE=/opt/stack/logs/stack.sh.log
#Credentials
ADMIN_PASSWORD=123456
MYSQL_PASSWORD=123456
RABBIT_PASSWORD=123456
SERVICE_PASSWORD=123456
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
#enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas,q-vpn
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
#Branches
KEYSTONE_BRANCH=stable/ocata
NOVA_BRANCH=stable/ocata
NEUTRON_BRANCH=stable/ocata
SWIFT_BRANCH=stable/ocata
GLANCE_BRANCH=stable/ocata
CINDER_BRANCH=stable/ocata
#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
计算节点
计算节点:(HOST_IP改为你的计算节点ip,SERVICE_HOST 改为你的控制节点ip,# Credentials 设置密码,# Branches设置要装的openstack版本)
[[local|localrc]]
MULTI_HOST=true
# management & api network
HOST_IP=10.10.10.11
# Credentials
ADMIN_PASSWORD=ztabtabz
MYSQL_PASSWORD=ztabtabz
RABBIT_PASSWORD=ztabtabz
SERVICE_PASSWORD=ztabtabz
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
# Service information
SERVICE_HOST=10.10.10.10
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
Q_HOST=$SERVICE_HOST
KEYSTONE_AUTH_HOST=$SERVICE_HOST
KEYSTONE_SERVICE_HOST=$SERVICE_HOST
CEILOMETER_BACKEND=mongodb
DATABASE_TYPE=mysql
ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
#vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
#Branches
KEYSTONE_BRANCH=stable/ocata
NOVA_BRANCH=stable/ocata
NEUTRON_BRANCH=stable/ocata
SWIFT_BRANCH=stable/ocata
GLANCE_BRANCH=stable/ocata
CINDER_BRANCH=stable/ocata
#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
12、安装。
在stack用户下,运行/opt/stack/devstack/stack.sh
等待1小时左右,如报错(time out),一般是网速问题,重新运行stack.sh就好。
13、安装完成
提示This is your ip 等等,代表安装成功。
日志如下:
2019-11-25 08:09:20.778 | ++inc/meta-config:get_meta_section_files:66 [[ -r /opt/stack/devstack/local.conf ]]
2019-11-25 08:09:20.784 | ++inc/meta-config:get_meta_section_files:68 awk -v matchgroup=test-config '
2019-11-25 08:09:20.784 | /^\[\[.+\|.*\]\]/ {
2019-11-25 08:09:20.784 | gsub("[][]", "", $1);
2019-11-25 08:09:20.784 | split($1, a, "|");
2019-11-25 08:09:20.784 | if (a[1] == matchgroup)
2019-11-25 08:09:20.785 | print a[2]
2019-11-25 08:09:20.785 | }
2019-11-25 08:09:20.785 | ' /opt/stack/devstack/local.conf
=========================
DevStack Component Timing
=========================
Total runtime 966
run_process 57
test_with_retry 3
apt-get-update 3
pip_install 107
restart_apache_server 26
wait_for_service 16
git_timed 134
apt-get 11
=========================
This is your host IP address: 10.10.10.10
This is your host IPv6 address: ::1
Horizon is now available at http://10.10.10.10/dashboard
Keystone is serving at http://10.10.10.10/identity/
The default users are: admin and demo
The password: 123456
DevStack Version: ocata
Change: a70d84ceed38d6933176f42b6b3c2064e8d78c33 Fix rdo-release install 2019-09-17 07:01:25 +0000
OS Version: Ubuntu 16.04 xenial
14、浏览器输入控制器ip,访问openstack。
用户名:admin,密码:你设置的密码。登陆后检测下各服务是否都能正常访问;最好做个快照,以防万一。
注意: 虚拟机重启后openstack服务不会自动运行,需要切换到devstack目录下,输入screen -c stack-screenrc 以手动启动
由上图可知,内存还是多分配点好,至少4G。
计算节点安装成功
问题总结 建议先往下运行,最后遇到问题再来看怎么解决的。
1.ubuntu镜像选择
我刚开始是在desktop镜像上进行安装的,然后报了很多错误,最后也没成功,虽然有一篇博客说,desktop和server都可以,但是我实践的总结是desktop不好成功,因为我自己就卡在最后的一个504 Gateway Timeout上。因此,建议选择ubuntu-16.04.6-server-amd64来安装,镜像还比较小。
2.克隆下载tempset卡住(其他cinder等也可以用此方法,最笨的办法)
如果运行./stack.sh 过程中,下载tempset卡主超过10分钟左右,建议ctrl+z,手动下载tempset。放置的目录是/opt/stack,也就是和devstack同级。卡主的原因可能是由于执行过程中去devopenstack啥的地址下载,但是源修改了。
tempset下载
git clone https://github.com/openstack/tempest.git --branch stable/ocata
3.git fetch https://review.opendev.org/openstack/tempest refs/changes/71/645471/2 失败
只能说建议,因为我用server镜像没出现这个问题,但是desktop镜像出现了,可以尝试先unstack.sh 再执行clean.sh(深度清理)。
4.出现You are using pip version 9.0.3, however version 19.1 is available.错误
系统提示使用pip进行upgrade,执行完成后安装到相应版本,但是再次执行 ./stack.sh ,pip又恢复到9.0.3的版本,陷入死循环
问题出在/devstack/tools目录下的cap-pip.txt文件中
# cap-pip.txt
pip!=8,<10
改为
pip!=8
升级
pip install --upgrade pip
# 查看
pip -V
如果查看版本遇到错误ImportError: cannot import name main,可以参考博客修改如下。
#!/usr/bin/python
# GENERATED BY DEBIAN
import sys
# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
5.ERROR: Package 'more-itertools' requires a different Python: 2.7.5 not in '>=3.4'
解决办法 (建议不要升级python,2.7就够了)
pip install more-itertools==5.0.0
6.计算节点安装报错 Didn’t find service registered by hostname after 120 seconds
错误信息
echo 'Didn'\''t find service registered by hostname after 120 seconds'
解决方法:
在local.conf中修改(就是添加 ENABLED_SERVICES placement-api)
ENABLED_SERVICES=n-cpu,q-agt,neutron,placement-api
ubuntu16.04 用devstack部署安装OpenStack ocata的更多相关文章
-
Ubuntu16.04 LTS下apt安装WireShark
Ubuntu16.04 LTS下apt安装WireShark 安装与配置 首先通过apt安装WireShark: $ sudo apt install wireshark 会同时安装许多的依赖包,其中 ...
-
路由器安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错误。向目标系统中安装busybox-initramfs软件包时出现一个错误。请检查/var/log/syslog或查看第四虚拟控制台以获得详细
公司的路由器要ubuntu服务器进行路由网络功能的管理,在安装的时候出现下面的错误提示: 安装ubuntu-16.04.1-server-amd64出现“无法安装busybox-initramfs”错 ...
-
ubuntu16.04下sublime text3安装和配置
ubuntu16.04下sublime text3安装和配置 2018年04月20日 10:31:08 zhengqijun_ 阅读数:1482 1.安装方法 1)使用ppa安装 sudo add-a ...
-
阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装
阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...
-
Ubuntu16.04上用源代码安装ICE
ubuntu16.04上用源代码安装ICE
-
Centos8最小化部署安装OpenStack Ussuri
#!/bin/bash #Centos8最小化部署安装OpenStack Ussuri #共两台主机,分别是一台控制节点,一台计算节点 #.控制节点内存4096M.双网卡,分别为eth0:10.0.0 ...
-
Ubuntu16.04下,erlang安装和rabbitmq安装步骤
文章来源: Ubuntu16.04下,erlang安装和rabbitmq安装步骤 准备工作,先下载erlang和rabbitmq的安装包,注意他们的版本,版本不对可能会导致rabbitmq无法启动,这 ...
-
Ubuntu16.04 apache2 wsgi 部署django
在Ubuntu16.04上部署django其实还算简单直观,最重要的问题就是路径设置正确,并且保证版本统一,这个测试是在 Apache/2.4.18 (Ubuntu) apt-get install ...
-
Ubuntu16.04 下docker部署web项目
概念性的请戳 第一步:更新apt-get update 第二步:安装环境 apt-get install \ apt-transport-https \ ca-certificates \ curl ...
随机推荐
-
Deep Learning 7_深度学习UFLDL教程:Self-Taught Learning_Exercise(斯坦福大学深度学习教程)
前言 理论知识:自我学习 练习环境:win7, matlab2015b,16G内存,2T硬盘 练习内容及步骤:Exercise:Self-Taught Learning.具体如下: 一是用29404个 ...
-
Spring整合Hibernate详细步骤
阅读目录 一.概述 二.整合步骤 回到顶部 一.概述 Spring整合Hibernate有什么好处? 1.由IOC容器来管理Hibernate的SessionFactory 2.让Hibernate使 ...
-
http状态码代表含义
状态代码 状态信息 含义 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分.(HTTP 1.1新) 101 Switching Protocols 服务器将遵从客户的请求转 ...
-
Centos rpm缺少依赖无法安装mysql5.5
rpm -ivh mysql-5.5.22-2.1.i386.rpm --nodeps --force 缺少依赖导致rpm -ivh mysql-5.5.22-2.1.i386.rpm命令无法安装!
-
XOR and Favorite Number(莫队算法+分块)
E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...
-
Java之路上,让我们Stand Up Again
在开始之前,先发表一下个人想法吧. 在读书的时候每天忙的不可开交,也就没有了所谓的*,突然参加工作,传统的朝八晚五,标准的八小时工作制,每天都是两点一线,工作中涉及商业机密,公司的东西也不能带回家, ...
-
初识BASH SHELL
什么是Shell shell翻译成中文就是"壳"的意思.简单来说就是shell是计算机用户与操作系统内核进行"沟通"的一种工具.Windows系统中有power ...
-
SQL 耗时优化
Ø 简介 在平常的开发中,我们经常会编写各种各样的 SQL 语句,比如:SQL 查询.存储过程.或者视图查询等.当我们编写的 SQL 语句比较复杂,或者表的数据量比较大,导致查询超时!这时,就要去分 ...
-
An Introduction to OAuth 2
PostedJuly 21, 2014 1.1mviews SECURITY API CONCEPTUAL Mitchell Anicas Introduction OAuth 2 is an aut ...
-
IDApython教程(五)
我们继续IDAPython让生活更美好序列,这一部分我们解决逆向工程师日常遇到的问题:提取执行的内嵌代码. 恶意软件会用各种方式存储内嵌可执行代码,有些恶意软件将内嵌代码加到文件附加段,包括PE资源区 ...