一、准备主机

4vcpu,4G mem,centos7

二、预安装软件包

yum install epel-release centos-release-openstack-newton
yum install git sudo

# 安装中需要安装cassandra-driver-3.7.1,依赖Cython-0.24.1,
# 即使修改了pip源,也是从
#  因网络原因会卡住,因此预先手动安装Cython
pip install Cython==0.24.1

三、创建stack 用户

useradd -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/stack

四、下载devstack

su - stack
git clone https://github.com/openstack-dev/devstack.git
cd devstack
git checkout stable/newton

五、编辑local.conf

[[local|localrc]]

# 由于手动配置了所有软件源,
# 设置SKIP_EPEL_INSTALL=True,让devstack 不再安装epel,及其它相关软件源
SKIP_EPEL_INSTALL=True

# 如果打算从别的url下载get-pip.py,取消PIP_GET_PIP_URL的注释,设置为你的地址
PIP_GET_PIP_URL="http://local-server/get-pip.py"

 
DOWNLOAD_DEFAULT_IMAGES=False
# IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
IMAGE_URLS="http://p_w_picpaths.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img"

# GIT_BASE=https://github.com
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
 
# enable trove plugin ,否则将不能安装trove
TROVE_REPO=${GIT_BASE}/openstack/trove.git
TROVE_BRANCH=stable/newton
enable_plugin trove $TROVE_REPO $TROVE_BRANCH

# password
ADMIN_PASSWORD=root
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=super-secret-admin-token

# 设置默认的虚拟化
VIRT_DRIVER=libvirt
LIBVIRT_TYPE=qemu


DEST=/opt/stack
SERVICE_DIR=$DEST/status
DATA_DIR=$DEST/data
LOGFILE=$DEST/logs/stack.sh.log
LOGDIR=$DEST/logs

 
# The default fixed range (10.0.0.0/24) conflicted with an address
# range I was using locally.
FIXED_RANGE=172.254.1.0/24
NETWORK_GATEWAY=172.254.1.1
 
# Services
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 horizon
disable_service tempest

# enable trove,trove-api,trove-conductor,trove-taskmanager
enable_service trove tr-api tr-tmgr tr-cond


## Introduce glance to docker p_w_picpaths

# [[post-config|$GLANCE_API_CONF]]

# [DEFAULT]
 
# container_formats=ami,ari,aki,bare,ovf,ova,docker
 
## Configure nova to use the nova-docker driver
 
# [[post-config|$NOVA_CONF]]
 
# [DEFAULT]
 
# compute_driver=novadocker.virt.docker.DockerDriver

六、安装openstack

./stack.sh