在Ubuntu14.04上使用devstack安装OpenStack
设置使用豆瓣pypi源
mkdir /root/.pip cat >/root/.pip/pip.conf <<EOF [global] index-url = http://pypi.douban.com/simple/ trusted-host = pypi.douban.com EOF |
安装git
sudo apt-get install git |
下载devstack
cd /opt sudo git clone https://github.com/openstack-dev/devstack.git |
在非root用户下运行脚本创建stack用户
sudo chown –R $USER:$USER /opt/devstack cd /opt/devstack/tools/ ./create-stack-user.sh |
配置stack用户密码
passwd stack |
编辑/etc/sudoers, 在root用户下增加stack用户权限
# User privilege specification root ALL=(ALL:ALL) ALL stack ALL=(ALL:ALL) ALL |
修改/opt/devstack, /opt/stack权限
sudo chown –R stack:stack /opt/devstack sudo chown –R stack:stack /opt/stack |
后面的操作都需要切换到stack用户执行
su - stack |
修改部署配置文件
拷贝一份
cp /opt/devstack/samples/local.conf /opt/devstack |
默认只安装glance, nova, cinder, keystone....
可以手动增加其他的模块
stack@ubuntu:/opt/devstack$ cat local.conf.swift.more # 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 ``SERVICE_TOKEN`` and ``*_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``. SERVICE_TOKEN=azertytoken ADMIN_PASSWORD=nomoresecrete MYSQL_PASSWORD=stackdb RABBIT_PASSWORD=stackqueue SERVICE_PASSWORD=$ADMIN_PASSWORD
# ``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
# 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
# Swift # -----
# Swift is now used as the back-end for the S3-like object store. If Nova's # objectstore (``n-obj`` in ``ENABLED_SERVICES``) is enabled, it will NOT # run if Swift is enabled. 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
# Tempest # -------
# Install the tempest test suite enable_service tempest
#以下为手动增加的模块,可以看自己需要选择 # Swift - Object Storage ENABLED_SERVICES+=,s-proxy,s-object,s-container,s-account
# Neutron - Networking Service # If Neutron is not declared the old good nova-network will be used ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron
## Neutron - Load Balancing ENABLED_SERVICES+=,q-lbaas
## Neutron - VPN as a Service ENABLED_SERVICES+=,q-vpn
## Neutron - Firewall as a Service ENABLED_SERVICES+=,q-fwaas
# VLAN configuration #Q_PLUGIN=ml2 #ENABLE_TENANT_VLANS=True
# GRE tunnel configuration Q_PLUGIN=ml2 ENABLE_TENANT_TUNNELS=True
# Heat - Orchestration Service ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng #IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2"
# Ceilometer - Metering Service (metering + alarming) ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eval
ENABLED_SERVICES+=,trove,tr-api,tr-tmgr,tr-cond |
【可选】下边进行先下载github代码,可以避免在./stack.sh脚本下载速度太慢,注意看是下载成功;
git clone git://git.openstack.org/openstack/ceilometer /opt/stack/ceilometer git clone git://git.openstack.org/openstack/cinder /opt/stack/cinder git clone git://git.openstack.org/openstack/glance /opt/stack/glance git clone git://git.openstack.org/openstack/heat /opt/stack/heat git clone git://git.openstack.org/openstack/horizon /opt/stack/horizon git clone git://git.openstack.org/openstack/keystone /opt/stack/keystone git clone git://git.openstack.org/openstack/neutron /opt/stack/neutron git clone git://git.openstack.org/openstack/neutron-fwaas /opt/stack/neutron-fwaas git clone git://git.openstack.org/openstack/neutron-lbaas /opt/stack/neutron-lbaas git clone git://git.openstack.org/openstack/neutron-vpnaas /opt/stack/neutron-vpnaas git clone git://git.openstack.org/openstack/nova /opt/stack/nova git clone git://git.openstack.org/openstack/swift /opt/stack/swift
wget --progress=dot:giga -c https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img -O /opt/devstack/files/cirros-0.3.0-x86_64-disk.img |
最后执行安装脚本
./stack.sh |
安装完成后,可以登录IE
用户名admin 或 demo
密码为local.conf配置的,默认为nomoresecrete
安装完成
登录后的界面
安装完成后配置/opt/devstack/stackrc
#OFFLINE=$(trueorfalse False OFFLINE) OFFLINE=True |
设备重启后,需要手动再执行./stack.sh;没有设置OFFLINE的话,很多需要从网上下载;
./stack.sh 运行后,之前的测试环境不会恢复,重新安装。