用DevStack安装OpenStack(单机)

Posted by Jobin on May 23, 2018

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。但是安装OpenStack却不是那么容易的,让许多初学者望而却步。想体验一下OpenStack的魅力,可以使用DevStack来安装OpenStack。

操作步骤

安装CentOS

下载镜像,然后在虚拟机中安装,至少需要安装OpenSSH Server,方便远程连接。

selinux,iptables关闭

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

配置网络

OpenStack至少需要两个网卡,一个用于连接外部网络,一个用于连接内部网络。

外部网络

供应商网络,外部或Internet可以访问的网络。

内部网络

管理网络,用于OpenStack组件以及MySQL DB Server, RabbitMQ messaging server之间的通信。租户网络和管理网络使用同一张网卡。

vmware虚拟机网络配置:

网络 名称 类型 子网IP 子网掩码 子网网关
外部网络 VMnet1 仅主机模式 192.168.0.0 255.255.255.0 192.168.0.1
内部网络 VMnet8 NAT模式 10.0.0.0 255.255.255.0 10.0.0.2

## 配置pip源

root@jhb:~# mkdir /root/.pip
root@jhb:~# vi /root/.pip/pip.conf

[global]
index-url=http://pypi.douban.com/simple/
trusted-host=pypi.douban.com

下载DevStack

安装git并下载最新版的devstack。

root@jhb:~# yum install git   
root@jhb:~# cd /home
root@jhb:~# git clone http://git.trystack.cn/openstack-dev/devstack.git -b stable/queens

创建stack用户

目前DevStack脚本已经不支持直接使用root身份运行,你需要创建stack用户来运行。

在非root用户下创建stack用户并设置密码。

jhb@jhb:~$ sudo chown –R $USER:$USER /home/devstack
jhb@jhb:~$ cd /home/devstack/tools/
jhb@jhb:~$ sudo ./create-stack-user.sh
jhb@jhb:~$ sudo passwd stack

授权stack用户

在root用户下给stack用户授权。编辑/etc/sudoers,找到这一行 root ALL=(ALL:ALL) ALL,在下面加上一行 stack ALL=(ALL:ALL) ALL。

root@jhb:~# vi /etc/sudoers

# User privilege specification
root ALL=(ALL:ALL) ALL
stack ALL=(ALL:ALL) ALL

root@jhb:~# chown –R stack:stack /home/devstack
root@jhb:~# chown –R stack:stack /opt/stack

创建local.conf文件

进入/home/devstack目录,编辑local.conf文件

root@jhb:~# cd /home/devstack/
root@jhb:/home/devstack# vi 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://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img"

HOST_IP=192.168.0.15


# Credentials
DATABASE_PASSWORD=pass
ADMIN_PASSWORD=pass
SERVICE_PASSWORD=pass
SERVICE_TOKEN=pass
RABBIT_PASSWORD=pass

HORIZON_BRANCH=stable/queens
KEYSTONE_BRANCH=stable/queens
NOVA_BRANCH=stable/queens
NEUTRON_BRANCH=stable/queens
GLANCE_BRANCH=stable/queens
CINDER_BRANCH=stable/queens


#keystone
KEYSTONE_TOKEN_FORMAT=UUID

##Heat
#HEAT_BRANCH=stable/queens
#enable_service h-eng h-api h-api-cfn h-api-cw


## Swift
#SWIFT_BRANCH=stable/queens
#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.0.0/24"
FIXED_RANGE="10.0.0.0/24"
NETWORK_GATEWAY="10.0.0.2"
Q_FLOATING_ALLOCATION_POOL=start=192.168.0.150,end=192.168.0.180
PUBLIC_NETWORK_GATEWAY="192.168.0.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

以stack用户身份运行脚本安装

root@jhb:/home/devstack# su stack
stack@jhb:/home/devstack$ ./stack.sh