本文为minxihou的翻译文章,转载请注明出处Bob Hou: http://blog.csdn.net/minxihou

JmilkFan:minxihou的技术博文方向是 算法&Openstack自动化 ,写得很好,值得推荐。 : )

目录

本实验是在VMware12下建立虚机的一个测试环境。

1 前期准备工作

真机环境win10

Linux版本 centos-everything-7.0

VMware版本 VMwareworkstations12

虚机配置如下:

8G内存

2核cpu(开启虚拟化)

网络配置为桥接模式

/boot 500M(一定要分大点不然之后会遇到问题)

swap分区4G

其余的空间全部分给/分区

配置yum源,你可以保持装机自带的centos自带官方yum源,或者使用国内的给的镜像,本次试验中用的国外镜像并且使用fastestmirror,如果有需求的朋友们可以下载repo源自动构造本地yum源方法。

http://mirrors.aliyun.com/centos/7/cloud/x86_64/openstack-mitaka/

http://mirrors.163.com/centos/7/cloud/x86_64/openstack-mitaka/

安装fastestmirror插件

yum install yum-plugin-fastestmirror -y

rpm -qa | fastestmirror

vim /etc/yum/pluginconf.d/fastestmirror.conf

配置文件中的hostfilepath字段,用于定义yum源的配置文件,我们可以将所知道的yum源写入这个txt文件。



运行yum check-update检查是否配置生效



通常情况下,使用fastestmirror插件的默认设定即可满足使用要求。但在网络的某些特殊情况下,可能fastestmirror插件的判断不准确。这时,我们可以修改其ping响应值保存表:

vim /var/cache/yum/x86_64/7/timedhosts.txt

如果yum版本高的情况下这些工作都是由yum配置好的,我们只需要检查一下即可。

2 安装Git

yum install -y git

yum update 升级你现有系统,尽量避免各种包不兼容问题。(现在先别重启)

3 配置系统防火墙

3 关闭selinux

vim /etc/selinux.config

SELINUX=disabled

关闭其他防火墙只保留iptables

systemctl mask ebtables

systemctl mask firewalld

systemctl mask ip6tables

systemctl enable iptables

至此重启机器让update的包应用。

如果在update升级之后发现boot分区空间不足,例如”XXX more space needed on the /boot filesystem”,需要对boot分区做扩容。

先把旧的boot分区进行备份,例如我想把它备份到/tmp/boot文件夹中

mkdir /tmp/boot

cp -r /boot/* /tmp/boot

umount /boot

然后对现有分区进行扩容或者新建分区,在笔者的实验环境中/boot分区只分了200M,在update的时候没有报错但是重启之后/boot分区就满了文件系统没有空余的分区,这个时候我只能在新加了一块500M的虚拟硬盘进去进行新分区了。这个时候需要先在分区表里面看一眼原来的分区是什么格式的,最好分成一样格式的。

vim /etc/fstab



这里我的虚机/boot分区是ext4所以我新划分的分区需要格式化成ext4格式

fdisk -l

这里我能看到我新划出来的/dev/sdb磁盘



fdisk /dev/sdb

partprobe

mkfs.ext4 /dev/sdb1

blkid

将拿到的UUID重新写入到/etc/fstab

此时重新挂载boot分区将/tmp/boot的文件拷贝到/boot分区即可。

4 准备Devstack

mkdir -p /var/download/devstack

cd /var/download/devstack

git clone https://github.com/openstack-dev/devstack.git -b stable/mitaka

可以在github官网上看到这个branche,我们做M版的自动化部署当然分支选M版的。

现在Devstack不能通过root身份来运行stack.sh文件了,需要创建stack用户,以stack用户的身份来运行stack.sh脚本。

cd /var/download/devstack/tools

./create-stac-user.sh

5.修改devstack目录权限,让stack用户可以运行

chown -R stack:stack /var/download/devstack

chmod 777 /dev/pts/0 (第一个用户登录,console的设备文件为/dev/pts/0,第二个为/dev/pts/1,以此类推。/dev/pts是远程登录(telnet,ssh等)后创建的控制台设备文件所在的目录)

chmod 777 /opt/stack -R

(这个是自动化部署openstack的时候的默认安装路径,默认安装路径可以在local.conf文件中修改,如果修改了就需要在这里重新设置相对应的文件目录路径。)

*虚机环境下,请务必在此设置快照,方便回滚。

#5配置local.conf文件

早在2013年的时候localrc文件就被local.conf文件取代了。现在localrc文件仍然可用但是不提倡使用了。

在devstack文件路径下创建local.conf文件。这里给出两个简单配置。

[[local|localrc]]

# 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 #OFFLINE=True
RECLONE=True # Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img" HOST_IP=192.168.1.6 # Credentials
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass HORIZON_BRANCH=stable/mitaka
KEYSTONE_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
CINDER_BRANCH=stable/mitaka #keystone
KEYSTONE_TOKEN_FORMAT=UUID ##Heat
HEAT_BRANCH=stable/mitaka
enable_service h-eng h-api h-api-cfn h-api-cw ## Swift
SWIFT_BRANCH=stable/mitaka
ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
SWIFT_REPLICAS=1
SWIFT_HASH=011688b44136573e209e # Enabling Neutron (network) Service
disable_service n-net
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron ## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.1.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.1.10,end=192.168.1.20
PUBLIC_NETWORK_GATEWAY="192.168.1.1"
Q_L3_ENABLED=True
PUBLIC_INTERFACE=eth0
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex # #VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True # Logging
LOGFILE=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/opt/stack/logs

以下配置文件出于测试阶段,部署在我笔记本上的时候还是有些问题。

[[local|localrc]]

# 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 branches
HORIZON_BRANCH=stable/mitaka
KEYSTONE_BRANCH=stable/mitaka
NOVA_BRANCH=stable/mitaka
NEUTRON_BRANCH=stable/mitaka
GLANCE_BRANCH=stable/mitaka
CINDER_BRANCH=stable/mitaka
CEILOMETER_BRANCH=stable/mitaka
SWIFT_BRANCH=stable/mitaka
#OFFLINE=True
RECLONE=True #Directory
DEST=/var/openstack #Define target server IP address
HOST_IP=192.168.1.6 # Define images to be automatically downloaded during the DevStack built process.
DOWNLOAD_DEFAULT_IMAGES=False
IMAGE_URLS="http://foo.bar.com/image.qcow,"
IMAGE_URLS+="http://foo.bar.com/image2.qcow"
IMAGE_URLS+="http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso" # Credentials
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass # Logging
LOGFILE=$DEST/logs/stack.sh.log
LOGDAYS=1
LOGDIR=$DEST/logs
SYSLOG=True
SYSLOG_HOST=$HOST_IP
SYSLOG_PORT=516
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/opt/stack/logs #Python option
USE_VENV=True
PIP_UPGRADE=True
PROJECT_VENV["glance"]=${GLANCE_DIR}.VENV
PROJECT_VENV["nova"]=${NOVA_DIR}.VENV
PROJECT_VENV["keystone"]=${KEYSTONE_DIR}.VENV
PROJECT_VENV["neutron"]=${NEUTRON_DIR}.VENV
PROJECT_VENV["cinder"]=${CINDER_DIR}.VENV
PROJECT_VENV["swift"]=${SWIFT_DIR}.VENV
PROJECT_VENV["glance"]=${GLANCE_DIR}.VENV
PROJECT_VENV["heat"]=${HEAT_DIR}.VENV
ADDITIONAL_VENV_PACKAGES="python-foo,python-bar" #Define default instance standard
DEFAULT_INSTANCE_TYPE=m1.tiny #keystone
KEYSTONE_TOKEN_FORMAT=UUID
KEYSTONE_USE_MOD_WSGI="True"
ENABLE_IDENTITY_V2=False ##vnc
ENABLED_SERVICES+=,n-spice,n-novnc,n-xvnc ##Glance
ENABLED_SERVICES+=,g-api.g-reg ##Heat
HEAT_BRANCH=stable/mitaka
enable_service h-eng h-api h-api-cfn h-api-cw h-eng
Heat_USE_MOD_WSGI="True" ## Swift
SWIFT_BRANCH=stable/mitaka
ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
SWIFT_REPLICAS=1
SWIFT_HASH=011688b44136573e209e
SWIFT_USE_MOD_WSGI="True" # Enabling Neutron (network) Service
disable_service n-net ##Do not use nova network
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-l3
enable_service q-meta
enable_service q-metering
enable_service neutron ## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE="192.168.1.0/24"
FIXED_RANGE="10.0.0.0/24"
Q_FLOATING_ALLOCATION_POOL=start=192.168.1.10,end=192.168.1.20
PUBLIC_NETWORK_GATEWAY="192.168.1.1"
Q_L3_ENABLED=True
PUBLIC_INTERFACE=eth0
Q_USE_PROVIDERNET_FOR_PUBLIC=True
OVS_PHYSICAL_BRIDGE=br-ex
PUBLIC_BRIDGE=br-ex
OVS_BRIDGE_MAPPINGS=public:br-ex # #VLAN configuration.
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True ##Cinder
ENABLED_SERVICES+=,cinder,c-api,c-vol,c-sch,c-bak
CINDER_USE_MOD_WSGI="True"
VOLUME_GROUP="stack-volumes"
VOLUME_NAME_PREFIX="volume-"
VOLUME_BACKING_FILE_SIZE=10250M ##Ceilometer
ENABLED_SERVICES+=,ceilometer-acomputer,ceilometer-acentral,ceilometer-collector,ceilometer-api
ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval
ENABLED_SERVICES+=,trove,tr-api,tr-tmgr,tc-cond #Apache
APACHE_ENABLED_SERVICES+=,keystone

6 后话

如果在一开始配置文件中没有注明各项密码的话,/stack.sh会交互式让你输入密码。而且密码最好写在配置文件靠前的位置,我尝试写在靠后的位置还是会一样提示让我输入密码。

ENTER A PASSWORD TO USE FOR THE DATABASE.

This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it

again. Use only alphanumeric characters.

If you leave this blank, a random default value will be used.

Enter a password now:

提示输入rabbit密码:

ENTER A PASSWORD TO USE FOR RABBIT.

This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it

again. Use only alphanumeric characters.

If you leave this blank, a random default value will be used.

Enter a password now:

提示输入服务密码:

ENTER A SERVICE_PASSWORD TO USE FOR THE SERVICE AUTHENTICATION.

This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it

again. Use only alphanumeric characters.

If you leave this blank, a random default value will be used.

Enter a password now:

提示输入keystone和horizon的密码:

ENTER A PASSWORD TO USE FOR HORIZON AND KEYSTONE (20 CHARS OR LESS).

This value will be written to /var/download/devstack/.localrc.password file so you don’t have to enter it

again. Use only alphanumeric characters.

If you leave this blank, a random default value will be used.

Enter a password now:

总之配置的时候姿势不会会遇到各种和Python有关的问题。而且加入你第一次配置好了一次,当你用clean.sh脚本清除后再用不同的配置项配置的时候也会出现问题。(可能以前的没有删除干净?)

例如:



这个就是我在用第一个配置文件部署成功之后使用第二个部署文件配置报错。实际上我的pip是安装的。针对这种我还原快照到初始位置再配置就没发现过这样的问题了。

最后来个部署成功截图:

Devstack单节点环境实战配置的更多相关文章

  1. ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建

    当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...

  2. Hadoop 2.6.4单节点集群配置

    1.安装配置步骤 # wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm # rpm -i ...

  3. mongodb 单节点集群配置 (开发环境)

    最近项目会用到mongodb的oplog触发业务流程,开发时的debug很不方便.所以在本地创建一个单台mongodb 集群进行开发debug. 大概:mongodb可以产生oplog的部署方式应该是 ...

  4. Ubuntu下用devstack单节点部署Openstack

    一.实验环境 本实验是在Vmware Workstation下创建的单台Ubuntu服务器版系统中,利用devstack部署的Openstack Pike版. 宿主机:win10 1803  8G内存 ...

  5. 环境搭建-ELK单节点环境搭建(02)

    写在前面 常说:"工欲善其事必先利其器",这话想想也是一点毛病也没有,在开始学习任何技术之前,我们总得有一个实际可供操作的实验环境.有人说,"看十遍不如用一遍" ...

  6. (九)OpenStack---M版---双节点搭建---Swift(单节点)安装和配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 本次搭建仅采用Compute单节点做swift组件 1.Controller安装并配置控制节点 ...

  7. 《k8s-1.13版本源码分析》-测试环境搭建(k8s-1.13版本单节点环境搭建)

    本文原始地址(gitbook格式):https://farmer-hutao.github.io/k8s-source-code-analysis/prepare/debug-environment. ...

  8. kafka安装配置及操作(官方文档)http://kafka.apache.org/documentation/(有单节点多代理配置)

    https://www.cnblogs.com/biehongli/p/7767710.html w3school https://www.w3cschool.cn/apache_kafka/apac ...

  9. 一个节点rac+单节点dg网络配置(listener.ora与tnsnames.ora)

    环境说明:  实验环境是 一个节点的 rac + 单机dg    (主备全部用asm存储) tnsnames.ora  文件  (oracle用户) node 1 : node1-> pwd / ...

随机推荐

  1. jQuery冒泡事件阻止

    JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...

  2. Spring Cloud Alibaba 从孵化到 "挂牌" 之旅

    背景 2014 年,Spring Boot 1.0 发布.Spring Boot 的发布绝对是 Pivotal 历史上具有里程碑意义的事件,它让我们能够非常简便地开发 Spring 应用,屏蔽了各种配 ...

  3. Vuex 常规用法

    背景 很多时候我们已经熟悉了框架的运用,但是有时候就是忘了怎么用 所以这里想记下大部分的框架使用方法,方便使用的时候拷贝 一.安装 npm 方式 npm install vuex --save yar ...

  4. luoguP1288 取数游戏II [博弈论]

    题目描述 有一个取数的游戏.初始时,给出一个环,环上的每条边上都有一个非负整数.这些整数中至少有一个0.然后,将一枚硬币放在环上的一个节点上.两个玩家就是以这个放硬币的节点为起点开始这个游戏,两人轮流 ...

  5. (转)Linux下使用system()函数一定要谨慎

    转:http://my.oschina.net/renhc/blog/53580 曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入.只是简单的知道用这个函 ...

  6. docker集群故障迁移

    docker swarm 故障时候镜像迁移(无法添加新节点的时候)生产docker集群出现了故障,无法正常添加删除节点.在这样的情况下只能想办法把故障集群的镜像迁移到新的docker集群当中.将发生故 ...

  7. jenkins在pipline中运行后台命令

    需求 在jenkin中启动java程序或者python程序的时候,希望程序在后台执行,并在jenkins构建完成之后继续执行.在工作中有两个地方我碰到了这种需求 在shell script输入框中pi ...

  8. 基于Netty的RPC架构学习笔记(十二):借助spring实现业务分离、聊天室小项目、netty3和4、5的不同、业务线程池以及消息串行化

    文章目录 借助spring实现业务分离(

  9. Codeforces 743C - Vladik and fractions (构造)

    Codeforces Round #384 (Div. 2) 题目链接:Vladik and fractions Vladik and Chloe decided to determine who o ...

  10. HDU 4109 Instrction Arrangement

    题目链接:https://vjudge.net/problem/HDU-4109 题目大意 有 N 个指令,标号从 0 ~ N - 1,和 M 个指令间的先后关系,每个关系都有一个权值 w,表示后一个 ...