利用devstack安装openstack (2016.7.27)
网上有很多类似的文章,但是openstack不喜欢别人追随他的脚步,所以自己记录一下,怕自己忘了。
主机:Ubuntu 14.04 64bit
内网IP:10.251.0.171
外网IP:121.201.52.122
利用ssh登陆到主机
1.更换源
国内访问国外的站点真的是太慢了,必须更换,相信我
cp /etc/apt/sources.list /etc/apt/sources.list_backup #备份
vim /etc/apt/sources.list
阿里源:
deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
最后执行
apt-get update
apt-get upgrade
2.安装git
apt-get install git
3.下载devstack
trystack.cn 是一个神奇的网站,原因跟上面是一样的了,直接访问国外站点太慢了 ,后面还会用到的
git clone http://git.trystack.cn/openstack-dev/devstack.git
4.在devstack中创建local.conf
在/devstack/samples下面就有local.conf文件,拷贝过来就可以,我觉得可以先加个IP先跑一下,看看能不能过,然后再配置其它的服务
# Sample ``local.conf`` for user-configurable variables in ``stack.sh``
# NOTE: Copy this file to the root DevStack directory for it to work properly.
# ``local.conf`` is a user-maintained settings file that is sourced from ``stackrc``.
# This gives it the ability to override any variables set in ``stackrc``.
# Also, most of the settings in ``stack.sh`` are written to only be set if no
# value has already been set; this lets ``local.conf`` effectively override the
# default values.
# This is a collection of some of the settings we have found to be useful
# in our DevStack development environments. Additional settings are described
# in http://devstack.org/local.conf.html
# These should be considered as samples and are unsupported DevStack code.
# The ``localrc`` section replaces the old ``localrc`` configuration file.
# Note that if ``localrc`` is present it will be used in favor of this section.
[[local|localrc]]
# Minimal Contents
# ----------------
# While ``stack.sh`` is happy to run without ``localrc``, devlife is better when
# there are a few minimal variables set:
# If the ``*_PASSWORD`` variables are not set here you will be prompted to enter
# values for them by ``stack.sh``and they will be added to ``local.conf``.
ADMIN_PASSWORD=stack
DATABASE_PASSWORD=stack
RABBIT_PASSWORD=stack
SERVICE_PASSWORD=stack
# ``HOST_IP`` and ``HOST_IPV6`` should be set manually for best results if
# the NIC configuration of the host is unusual, i.e. ``eth1`` has the default
# route but ``eth0`` is the public interface. They are auto-detected in
# ``stack.sh`` but often is indeterminate on later runs due to the IP moving
# from an Ethernet interface to a bridge on the host. Setting it here also
# makes it available for ``openrc`` to include when setting ``OS_AUTH_URL``.
# Neither is set by default.
#HOST_IP=w.x.y.z
#HOST_IPV6=2001:db8::7
HOST_IP=10.251.0.171
# Logging
# -------
# By default ``stack.sh`` output only goes to the terminal where it runs. It can
# be configured to additionally log to a file by setting ``LOGFILE`` to the full
# path of the destination log file. A timestamp will be appended to the given name.
LOGFILE=$DEST/logs/stack.sh.log
# Old log files are automatically removed after 7 days to keep things neat. Change
# the number of days by setting ``LOGDAYS``.
LOGDAYS=2
# Nova logs will be colorized if ``SYSLOG`` is not set; turn this off by setting
# ``LOG_COLOR`` false.
#LOG_COLOR=False
# Using milestone-proposed branches
# ---------------------------------
# Uncomment these to grab the milestone-proposed branches from the
# repos:
#CINDER_BRANCH=milestone-proposed
#GLANCE_BRANCH=milestone-proposed
#HORIZON_BRANCH=milestone-proposed
#KEYSTONE_BRANCH=milestone-proposed
#KEYSTONECLIENT_BRANCH=milestone-proposed
#NOVA_BRANCH=milestone-proposed
#NOVACLIENT_BRANCH=milestone-proposed
#NEUTRON_BRANCH=milestone-proposed
#SWIFT_BRANCH=milestone-proposed
# Using git versions of clients
# -----------------------------
# By default clients are installed from pip. See LIBS_FROM_GIT in
# stackrc for details on getting clients from specific branches or
# revisions. e.g.
# LIBS_FROM_GIT="python-ironicclient"
# IRONICCLIENT_BRANCH=refs/changes/44/2.../1
# Swift
# -----
# Swift is now used as the back-end for the S3-like object store. Setting the
# hash value is required and you will be prompted for it if Swift is enabled
# so just set it to something already:
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
# For development purposes the default of 3 replicas is usually not required.
# Set this to 1 to save some resources:
SWIFT_REPLICAS=1
# The data for Swift is stored by default in (``$DEST/data/swift``),
# or (``$DATA_DIR/swift``) if ``DATA_DIR`` has been set, and can be
# moved by setting ``SWIFT_DATA_DIR``. The directory will be created
# if it does not exist.
SWIFT_DATA_DIR=$DEST/data
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 neutron
enable_service tempest
5.创建stack用户
现在的安装必须用stack用户
cd /home/devstack/tools/
./create-stack-user.sh
6 .修改权限
chown -R stack:stack /home/devstack
7.修改sudoers
vim /etc/sudoers
在中添加
root ALL=(ALL:ALL) ALL
stack ALL=(ALL:ALL) ALL#添加
8指定国内的pip源
国内用户访问pypi.python.org很容易超时,你需要指定一个国内的pip源。
我是指定的豆瓣的pypi源:
创建一个/etc/pip.conf文件,包括如下内容:
[global]
trusted-host = pypi.douban.com
index-url = http://pypi.douban.com/simple
9.手动下载openstack组件源码
cd /opt/stack
git clone http://git.trystack.cn/openstack/nova.git
git clone http://git.trystack.cn/openstack/glance.git
git clone http://git.trystack.cn/openstack/cinder.git
git clone http://git.trystack.cn/openstack/horizon.git
git clone http://git.trystack.cn/openstack/keystone.git
git clone http://git.trystack.cn/openstack/neutron.git
git clone http://git.trystack.cn/openstack/swift.git
git clone http://git.trystack.cn/openstack/heat.git
git clone http://git.trystack.cn/openstack/ceilometer.git
git clone http://git.trystack.cn/openstack/tempest.git
git clone http://git.trystack.cn/kanaka/noVNC.git
10.执行 ./stack.sh
我是在云主机中进行的,有条件的可以这么安装,也可以使用虚拟机,不建议在本地安装,因为一旦关机再开机时服务不会重启,需要重新执行./stack.sh(在其之前应该执行./unstack.sh),并且在云主机中可以保存镜像很方便