本文为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. 「NOI2018」屠龙勇士 解题报告

    「NOI2018」屠龙勇士 首先对于每个龙用哪个剑砍,我们可以用set随便模拟一下得到. 然后求出拿这个剑砍这条龙的答案 \[ atk_ix-p_iy=a_i \] 其中\(atk_i\)是砍第\(i ...

  2. JSTL标签的用法详解

    在JSP中写Java代码是一件很恶心的事情,代码量少的话还可以,要是多的话,就蛋疼了,整个页面都是<%  %>所以EL表达式和JSTL就应运而生了,这里我们注重讲解一下JSTL标签的使用: ...

  3. ubuntu 下gcc的编译运行

    一些基本的操作 $gcc test.c //将test.c预处理.汇编.编译并链接形成可执行文件test $gcc test.c -o test //-o用来指定输出文件的文件名 $gcc -E te ...

  4. FS获取KERNEL32基址的三种方法

    FS寄存器指向当前活动线程的TEB结构(线程结构) 偏移  说明 000  指向SEH链指针 004  线程堆栈顶部 008  线程堆栈底部 00C  SubSystemTib 010  FiberD ...

  5. [NOIP模拟15]题解

    A.建设城市(city) 这容斥题多难啊你们是怎么考场切掉的啊 首先可以想一下,如果没有k的限制,这题怎么做? 相信你们肯定能看出来是挡板法裸题:m个物品分给n个人,每个人至少一个. 就是$C_{m- ...

  6. Ubuntu下qemu环境搭建vexpress开发平台

    在查找资料过程中,发现自己搭建虚拟的arm环境的话,有一个比较好的软件就是qemu了,当然还有其他的,大家各投所好就好. 接下来说一下qemu环境搭建过程. 其实搭建很简单,作为小白,我还是捣鼓了两三 ...

  7. Java List T 去掉重复对象-java8

    Stream语法详解 Stream当成一个高级版本的Iterator.原始版本的Iterator,用户只能一个一个的遍历元素并对其执行某些操作:高级版本的Stream,用户只要给出需要对其包含的元素执 ...

  8. cesium安装及第一个示例

    cesium安装及第一个示例 一.环境要求 二.浏览器要求 三.安装node.js 四.下载cesium包(地址为https://cesiumjs.org) 包括了 五.在你的项目里引入相关js与cs ...

  9. vue 笔记,ref 及 $event 事件对象

    本文仅用作简单记录 ref : 在标签上添加 ref = “name” ,表示获取当前元素节点 <input type="text" ref="info" ...

  10. jetson更换源

    参考链接:https://blog.csdn.net/qq_36396941/article/details/88903094 Nano的镜像默认是国外的源,速度很慢,国内的源有的上不去,有的包无法安 ...