一、实验环境

  本实验是在Vmware Workstation下创建的单台Ubuntu服务器版系统中,利用devstack部署的Openstack Pike版。

  宿主机:win10 1803  8G内存  256G SSD

  虚拟软件:Vmware Workstation 12.5.9

  虚拟机系统:Ubuntu Server 16.04.5 LTS

   参考博客:

    https://blog.csdn.net/pfztab/article/details/78632393

    https://www.cnblogs.com/Allvirus/p/7783962.html

    https://docs.openstack.org/devstack/latest/guides/multinode-lab.html

1、在宿主机中安装好VMware Workstation 12.5.9

VMware Workstation 12.5.9官网下载链接

2、在VMware中创建Ubuntu服务器版系统

 (1)在 http://mirror.pnl.gov/releases/xenial/ 中找到并下载Ubuntu Server 16.04.5镜像。

  

 (2)关于如何在VMware中安装Ubuntu服务器版虚拟机,网上有很多教程,具体可以参考:https://www.cnblogs.com/huozf/p/9780747.html(因为是单节点部署,再加上本身电脑配置不高,所以我分配了4G内存给虚拟机。)

二、环境搭建

1、为root设置密码并使用root登录

使用创建虚拟机时创建的用户登录Ubuntu后为root用户设置密码,以便于后面使用root用户登录和后续操作。

(1) 输入命令:sudo passwd

(2)系统会提示输入当前用户密码

(3)输入你要为root用户设置的密码

(4)再次输入root用户的密码

(5)root用户密码设置好后,输入命令:su root,然后输入刚刚设置的密码,切换到root用户。

2、网络设置

因为是单节点配置,不需要各节点间的通信,再加上物理机为笔记本不经常插网线,所以只给虚拟机分配了一个NAT的网络适配器,既可以访问外网,也可以和物理机通信。为虚拟机设置好固定IP,如果是多节点安装的话,这一步很重要。

① 回到VMware,点击编辑,启动虚拟网络编辑器,选择vmnet8,编辑以下内容(当然也可以按照自己的默认设置来):

②  回到ubuntu输入命令:vim /etc/network/interfaces

③  在打开的配置文件中输入以下内容:

  (该部分内容根据自己的VMware配置的NAT网络将address和gateway进行相应的修改,dns根据自己的网络环境做相应的修改)

  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

3、Linux默认不允许SSH远程登录,修改sshd_config文件以允许root远程登录。

(1)若在创建虚拟机时没有选择安装ssh,输入命令:apt install openssh-server,如果已经安装,自动忽略该步骤。

(2)输入命令:vim  /etc/ssh/sshd_config

(3)在打开的配置文件中找到PermitRootLogin,将其对应值改为yes。保存退出。

  

(4)重启服务:service ssh restart

(5)使用ifconfig命令查看虚拟机IP,使用Xshell或putty等ssh客户端远程登录到虚拟机,方便后面的代码复制操作。

4、修改apt源为国内的源

① 输入命令:vim /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 update

  apt upgrade

5、安装并配置pip

(1)输入命令:apt install python-pip

(2)配置pip源

mkdir  ~/.pip

vim  ~/.pip/pip.conf

在打开的文件中输入以下内容:

   [global]

             index-url = http://pypi.douban.com/simple/

              trusted-host = pypi.douban.com

    注:看了很多文档和博客教程,很多都是配置的豆瓣的pip源,我之前也试过,在安装P版的过程中每次都会报依赖不匹配的错误,如下图。后来把pip源注销之后就成功了。

6、设置时间同步

(1)设置时区:dpkg-reconfigure tzdata,选择Asia --> Shanghai --> ok

注:输入date 查看系统时间,是否正确,如果正确,可以忽略下边操作步骤。

(2)apt install ntpdate        // 安装时间同步工具

(3)ntpdate cn.pool.ntp.org    // 与网络服务器同步时间

(4)date    // 查看时间是否已同步

三、安装OpenStack

1、创建stack用户

创建: useradd -s /bin/bash -d /opt/stack -m stack

赋权: echo "stack ALL=(ALL) NOPASSWD: ALL"
>> /etc/sudoers

切换到stack用户:su – stack

重复第二步中的5(2),同样为stack用户配置pip源:

mkdir  ~/.pip

vim  ~/.pip/pip.conf

在打开的文件中输入以下内容:

    [global]

                 index-url
= http://pypi.douban.com/simple/

                 trusted-host
= pypi.douban.com

注:如果出现依赖不匹配的错误,这里的pip源同样也要注释掉

    2、下载devstack ( stable后面的参数为要下载的版本)

git clone https://git.openstack.org/openstack-dev/devstack
-b stable/pike

3、编辑local.conf文件

(1)进入目录:cd devstack

(2)输入命令:vim local.conf

(3)添加以下内容:

[[local|localrc]]

HOST_IP=10.10.10.10
LOGFILE=/opt/stack/logs/stack.sh.log # Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz # enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,q-metering,neutron # Branches
KEYSTONE_BRANCH=stable/pike
NOVA_BRANCH=stable/pike
NEUTRON_BRANCH=stable/pike
SWIFT_BRANCH=stable/pike
GLANCE_BRANCH=stable/pike
CINDER_BRANCH=stable/pike # 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 # Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"

  有关local.conf相关配置可以参考:http://www.chenshake.com/local-conf-devstack-profile-parameter-description/

4、执行命令:./stack.sh

    大约一个小时左右出现下面信息,表明安装成功:

    

Ubuntu下用devstack单节点部署Openstack的更多相关文章

  1. kolla单节点部署openstack

    virtualbox环境: 双网卡:enp0s3(桥接)   192.168.102.194 enp0s8(桥接)   无ip 块存储  50G 关闭防火墙,selinux. 配置yum源:wget  ...

  2. HyperLedger Fabric 1.4 单机单节点部署(10.2)

    单机单节点指在一台电脑上部署一个排序(Orderer)服务.一个组织(Org1),一个节点(Peer,属于Org1),然后运行官方案例中的example02智能合约例子,实现转财交易和查询功能.单机单 ...

  3. .netcore consul实现服务注册与发现-单节点部署

    原文:.netcore consul实现服务注册与发现-单节点部署 一.Consul的基础介绍     Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分 ...

  4. Kubernetes 二进制部署(一)单节点部署(Master 与 Node 同一机器)

    0. 前言 最近受“新冠肺炎”疫情影响,在家等着,入职暂时延后,在家里办公和学习 尝试通过源码编译二进制的方式在单一节点(Master 与 Node 部署在同一个机器上)上部署一个 k8s 环境,整理 ...

  5. Ubuntu系统上双节点部署OpenStack

    安装和部署双节点OpenStack 介绍: 1.宿主机:Win10操作系统 2.在VMware下创建两台虚拟机: devstack-controller:控制节点 + 网络节点 + 块存储节点 + 计 ...

  6. 恒天云单节点部署指南--OpenStack H版本虚拟机单节点部署解决方案

    本帖是openstack单节点在虚拟机上部署的实践.想要玩玩和学习openstack的小伙伴都看过来,尤其是那些部署openstack失败的小伙伴.本帖可以让你先领略一下openstack的魅力.本I ...

  7. kolla 多节点部署 openstack

    kolla 介绍 简介 kolla 的使命是为 openstack 云平台提供生产级别的.开箱即用的交付能力.kolla 的基本思想是一切皆容器,将所有服务基于 Docker 运行,并且保证一个容器只 ...

  8. Presto0.157版本单节点部署教程

    因为Presto版本的更新速度较快,所以最好按照对应版本的教程进行部署,博主之前看错了版本号,拿0.100版本的教程来部署0.157版本,结果导致部署失败. 官网:https://prestodb.i ...

  9. MongoDB 3.2复制集单节点部署(四)

    MongoDB在单节点中也可以做复制集,但是仅限于测试实验,最大的好处就是部署方便快速,可以随便添加新节点,节省资源.在这里我使用的是MongoDB 3.2版本进行复制集实验(但MongoDB配置文件 ...

随机推荐

  1. 【解决】Android 2.x 不支持overflow、position:fixed解决方案【转】

    Android 2.x和IOS5以下都不支持overflow:auto属性(position:fixed也不支持). 移动端浏览器兼容性和PC端相比,有过之而无不及.操作系统版本及各式浏览器和各式的屏 ...

  2. 由于BOM头导致的Json解析出错

    上周五改完一些BUG后,测试通过就安心在家过了个周末.结果周一回来一看,整个安卓APP所有的接口都挂掉了1.查找bug 首先想到的是客户端代码有问题,然后想起来上周五还能运行得好好的手机也是同样的错误 ...

  3. 在pixi中使用你的自定义着色器

    通过几天的学习,对openGL.shader有了一个大致的了解. 回到学习的初衷吧,在基于pixi.js重构D3项目的时候,因为精灵层级的问题,我得按照一定的先后顺序将不同类别的精灵添加到场景中去. ...

  4. Python数据类型-01.数字和布尔值

    本节主要介绍Python中的基础知识中的数据类型,数字和布尔值 介绍几个知识点:1)内置函数print()的用法,直接打印括号里面的内容,或者print后跟多个输出,以逗号分隔.2)内置函数type( ...

  5. php 递归读取目录

    看到很多面试题有这个,今天有机会写了一下. 要注意的是: 在opendir这个函数用完后,要注意closedir,因为安全问题,打开的目录依然存在于内存中,在并发情况下最好关闭,不然容易被破坏. &l ...

  6. 使用cmd命令打开文件夹

    在命令行中输入你想要打开文件所在的磁盘,这里我以打开E:\homework\1.jpg来给大家做示范.在命令行中输入  E:   输入后按下enter键.就进入E盘中,效果如图所示!   如果你想要查 ...

  7. C#中系统时间和UNIX时间戳互相转换

    在项目开发过程中,有时会遇到不同程序之间相互调用数据,数据中不免会包含时间,比如ASP.NET调用PHP,牵扯到时间就要做一下处理,PHP程序中一般存取的都是UNIX时间,不像ASP.NET存储的是年 ...

  8. python的继承顺序

    python的继承顺序 python 创建类时分为新式类和旧式类 class A: # 经典类 def __init__(self): pass # 新类,可以在这里加 __metaclass__ = ...

  9. ambassador 学习六 Module说明

    模块允许给与特定的mapping 或者整体添加特定的行为,方便进行系统的控制. 当前的module 定义主要是系统级别的 当前系统主要的配置 --- apiVersion: ambassador/v0 ...

  10. deno学习一 安装试用&&几个问题解决

      基本的依赖可以参考github 我的环境是centos 7 基本安装 需要golang 以及yarn安装 Protobuf 3 这是官方的方式,实际可以变通下 cd ~ wget https:// ...