Devstack单节点环境实战配置

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

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

目录

  • 目录
  • 前期准备工作
  • 安装Git
  • 配置系统防火墙
  • 准备Devstack
  • 后话

本实验是在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是安装的。针对这种我还原快照到初始位置再配置就没发现过这样的问题了。
最后来个部署成功截图:

时间: 2024-08-01 07:48:36

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

《Linux/UNIX OpenLDAP实战指南》——2.5 OpenLDAP单节点配置案例

2.5 OpenLDAP单节点配置案例 2.5.1 安装环境规划 安装环境的拓扑图如图2-1所示. 安装环境要求如下. 环境平台:VMware ESXi 5.0.0 系统版本:Red Hat Enterprise Linux Server release 6.5 (Santiago) 软件版本:OpenLDAP-2.4.23-32 IP地址及主机名规划如表2-1所示. OpenLDAP相关软件包套件如表2-2所示. 2.5.2 主机名规划配置 LDAP服务端和客户端主机名称及对应的IP地址解析服

活动目录系列之四:单域环境的实现(多站点)--基本配置

在上期我们学习了活动目录系列之二:单域环境的实现(单站点) ,当时我们实现的是在一个站点的 情况下.下面我们来看这样一个场景: **一个企业总部在北京,在上海和广东各有其办公区域, 要求实现活动目录域环境.** 一.分析: 对于此企业的现状,在逻辑结构上可以采用多域 和单域,比如我们先采用单域(这要取决于你是准备集中管理还是分散管理,在这里我采用集中管理,下 个专题我来讲多域多站点的情况). 如果不采用站点,上海和广东的域用户在客户端登录到域的 过程会比较慢(不管你在上海和广东是否放置了DC,都

《手机测试Robotium实战教程》——第2章,第2.1节JDK安装及其环境变量配置

第2章 测试开发环境搭建 手机测试Robotium实战教程 2.1 JDK安装及其环境变量配置 因为要用到Java语言,所以JDK是首先需要安装的.可以通过下面的链接,选择对应平台的JDK版本进行下载. http://www.oracle.com/technetwork/java/javase/downloads/index.htm. 本书所有的例子选择在JDK 8平台下进行. 运行下载的JDK安装文件,根据提示完成安装.在安装完毕后,设置环境变量.设置环境变量的目的是可以在任意路径下执行jav

《手机测试Robotium实战教程》—第2章2.1节JDK安装及其环境变量配置

第2章 测试开发环境搭建 手机测试Robotium实战教程2.1 JDK安装及其环境变量配置 因为要用到Java语言,所以JDK是首先需要安装的.可以通过下面的链接,选择对应平台的JDK版本进行下载. 本书所有的例子选择在JDK 8平台下进行. 运行下载的JDK安装文件,根据提示完成安装.在安装完毕后,设置环境变量.设置环境变量的目的是可以在任意路径下执行javac/java等工具. (1)在计算机桌面选中计算机后单击鼠标右键,在弹出的菜单中选择"属性"项,打开"系统属性&q

《手机测试Robotium实战教程》—第2章2.3节Android SDK的安装及环境变量配置

2.3 Android SDK的安装及环境变量配置 进行Android开发或者自动化测试,Android SDK是必不可少的. 如果没有特别的要求,可以选择下载混合的下载包,里面包含Eclipse.ADT和Android SDK.本书是单独下载SDK安装程序.双击运行安装程序,安装完毕后,在安装目录下运行"SDK Manager.exe",在弹出的窗口中选中Tools文件夹,下载最新版本的Android SDK Tools.Android SDK Platform-tools和Andr

单域环境下如何使用VLAN构建网络

学习cisco设备有一段时间了,可一直在工作环境中没有用到过,单位使用的是傻瓜式的交换机加一个FW出外网,考虑到单位是域环境,且预算明年会增加一台三层交换机到机房,一台二层交换机到厂房,所以萌发一个念头,用虚拟机来完成一个单域环境中使用VLAN的实验.为明年的网络改造打下一定的基础,所以,完成一个在单域环境中使用VLAN的实验.本实验的交换机用cisco IOS模拟器用3640来完成,图中的C1 C2 C3用VM安装WIN 2003,再将3640桥接到不同的虚拟网卡.完成本实验.相比其他单独做c

打造小规模方案 Scale为分支办公提供单节点HCI设备

Scale方面表示,其负责为灾难恢复(简称DR)与分布式企业部署场景,即远程与分支办公环境(简称ROBO)提供复制与远程管理支持.这款产品的成本较普通HCIA部署方案更低,因为后者需要至少三个甚至更多集群节点.这款产品的设计思路是将Scale集群引入大型中央办公环境内,并由其远程管理ROBO或者DR站点处的边缘节点. Scale Computing公司即将发布其HC3超融合型基础设施设备(简称HCIA)的一套单节点配置方案 Scale公司的竞争对手Pivot 3本月亦推出了一款Edge Offi

weblogic集群中部署单节点

问题描述 weblogic集群中部署单节点 现有weblogic集群环境server-0和server-1 部署了应用A,现有一个应用B不能部署集群只能部署单节点(server-0或则server-1中的其中一个) 请问这种方式可以实现吗,并且B应用也要对外提供web访问. 如何配置实现或推荐一些资料给我,对weblogic不熟悉,找不到搜索关键词 解决方案 http://blog.csdn.net/xu1314/article/details/41870807 解决方案二: 多节点部署Cass

【OGG】RAC环境下配置OGG单向同步 (四)

[OGG]RAC环境下配置OGG单向同步 (四) 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① RAC环境下配置OGG单向同步     注意:本篇BLOG中代码部分需要特别关注的地方我都用黄色背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thread 2的最大归档日志号为43是需要特别关注的地方.   List