centos7 devstack 安装openstack liberty

本机环境

操作系统:CentOS Linux release 7.2.1511 (Core)
本机IP:172.16.33.201
网关:172.16.33.254

下载devstack和前期准备

这里和别人的文章有点出入,git clone devstack的时候需要指定分支,不然安装openstack的时候会提示一个脚本不存在

1
2
# cd /opt
# git clone https://git.openstack.org/openstack-dev/devstack -b stable/liberty

新建stack用户,修改devstack文件夹所有者

1
2
3
# cd /opt/devstack/tools/
# ./create-stack-user.sh
# chown -R stack:stack /opt/devstack

新建local.conf文件,示例如下,按需更改

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# vim /opt/devstack/local.conf

[[local|localrc]]
# Define images to be automatically downloaded during the DevStack built process.
IMAGE_URLS="http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img"
# Credentials
DATABASE_PASSWORD=123456
ADMIN_PASSWORD=123456
SERVICE_PASSWORD=123456
SERVICE_TOKEN=pass
RABBIT_PASSWORD=123456
#FLAT_INTERFACE=eth0

HOST_IP=172.16.33.201
SERVICE_HOST=172.16.33.201
MYSQL_HOST=172.16.33.201
RABBIT_HOST=172.16.33.201
GLANCE_HOSTPORT=172.16.33.201:9292


## Neutron options
Q_USE_SECGROUP=True
FLOATING_RANGE=172.16.33.0/24
FIXED_RANGE=10.0.0.0/24
Q_FLOATING_ALLOCATION_POOL=start=172.16.33.202,end=172.16.33.210
PUBLIC_NETWORK_GATEWAY=172.16.33.254
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


# Work offline
#OFFLINE=True
# Reclone each time
RECLONE=False


# 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=/opt/stack/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
SCREEN_LOGDIR=/opt/stack/logs

# the number of days by setting ``LOGDAYS``.
LOGDAYS=1
# Database Backend MySQL
enable_service mysql
# RPC Backend RabbitMQ
enable_service rabbit


# Enable Keystone - OpenStack Identity Service
enable_service key
# Horizon - OpenStack Dashboard Service
enable_service horizon
# Enable Swift - Object Storage Service without replication.
enable_service s-proxy s-object s-container s-account
SWIFT_HASH=66a3d6b56c1f479c8b4e70ab5c2000f5
SWIFT_REPLICAS=1
# Enable Glance - OpenStack Image service
enable_service g-api g-reg

# Enable Cinder - Block Storage service for OpenStack
VOLUME_GROUP="cinder-volumes"
enable_service cinder c-api c-vol c-sch c-bak
# Enable Heat (orchestration) Service
enable_service heat h-api h-api-cfn h-api-cw h-eng
# Enable Trove (database) Service
enable_service trove tr-api tr-tmgr tr-cond
# Enable Sahara (data_processing) Service
enable_service sahara

# Enable Tempest - The OpenStack Integration Test Suite
enable_service tempest

# 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 - Load Balancing
enable_service q-lbaas
## Neutron - Firewall as a Service
enable_service q-fwaas
## Neutron - VPN as a Service
enable_service q-vpn
# VLAN configuration.
#Q_PLUGIN=ml2
#ENABLE_TENANT_VLANS=True


# GRE tunnel configuration
#Q_PLUGIN=ml2
#ENABLE_TENANT_TUNNELS=True
# VXLAN tunnel configuration
Q_PLUGIN=ml2
Q_ML2_TENANT_NETWORK_TYPE=vxlan

# Enable Ceilometer - Metering Service (metering + alarming)
enable_service ceilometer-acompute ceilometer-acentral ceilometer-collector ceilometer-api
enable_service ceilometer-alarm-notify ceilometer-alarm-eval
enable_service ceilometer-anotification
## Enable NoVNC
enable_service n-novnc n-cauth

# Enable the Ceilometer devstack plugin
enable_plugin ceilometer https://git.openstack.org/openstack/ceilometer.git

# Branches
KEYSTONE_BRANCH=stable/liberty
NOVA_BRANCH=stable/liberty
NEUTRON_BRANCH=stable/liberty
SWIFT_BRANCH=stable/liberty
GLANCE_BRANCH=stable/liberty
CINDER_BRANCH=stable/liberty
HEAT_BRANCH=stable/liberty
TROVE_BRANCH=stable/liberty
HORIZON_BRANCH=stable/liberty
SAHARA_BRANCH=stable/liberty
CEILOMETER_BRANCH=stable/liberty
TROVE_BRANCH=stable/liberty

# Select Keystone's token format
# Choose from 'UUID', 'PKI', or 'PKIZ'
# INSERT THIS LINE...
KEYSTONE_TOKEN_FORMAT=${KEYSTONE_TOKEN_FORMAT:-UUID}
KEYSTONE_TOKEN_FORMAT=$(echo ${KEYSTONE_TOKEN_FORMAT} | tr '[:upper:]' '[:lower:]')


[[post-config|$NOVA_CONF]]
[DEFAULT]
# Ceilometer notification driver
instance_usage_audit=True
instance_usage_audit_period=hour
notify_on_state_change=vm_and_task_state
notification_driver=nova.openstack.common.notifier.rpc_notifier
notification_driver=ceilometer.compute.nova_notifier

安装openstack

1
2
3
# cd /opt/devstack
# su stack
# ./stack.sh

安装完成,如下图所示:
image

访问dashboard:
image

命令行操作

1
2
3
4
admin用户
# source /opt/devstack/openrc admin admin # 加载环境变量进行操作
demo用户
# source /opt/devstack/openrc demo demo # 加载环境变量进行操作
一个默默无闻的工程师的日常
Built with Hugo
主题 StackJimmy 设计