本节按照以下步骤部署DevStack实验环境,包括控制节点和计算节点
创建虚拟机
按照物理资源需求创建devstack-controller和devstak-compute虚拟机
安装操作系统
安装Ubuntu 14.04,并配置eth0的IP devstack-controller 192.168.104.10 devstak-compute 192.168.104.11
下载代码
下载devstack代码,并切换到stable / liberty分支
apt-get install git -y
git clone https://git.openstack.org/openstack-dev/devstack -b stable / liberty
配置stack用户
创建stack用户
devstack /工具/ create-stack-user.sh
为方便起见,将devstack目录放到/选择/堆栈下,并设置权限
mv devstack / opt / stack
chown -R stack:stack / opt / stack / devstack
切换到stack用户
su - stack
cd devstack
编写运行配置文件
在/ opt / stack / devstack目录下,创建local.conf。
devstack控制器
[本地| localrc]
MULTI_HOST = true
HOST_IP = 192.168.104.10 #management&api network
LOGFILE = / opt / stack / logs / stack.sh.log#凭据ADMIN_PASSWORD
= admin
MYSQL_PASSWORD = secret
RABBIT_PASSWORD = secret
SERVICE_PASSWORD = secret
SERVICE_TOKEN = abcdefghijklmnopqrstuvwxyz#enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas,q-vpn
Q_AGENT = linuxbridge
ENABLE_TENANT_VLANS = True
TENANT_VLAN_RANGE = 3001:4000
PHYSICAL_NETWORK =默认值LOG_COLOR = False
LOGDIR = $ DEST / logs
SCREEN_LOGDIR = $ LOGDIR / screen
devstack-计算
[本地| localrc]
MULTI_HOST = true
HOST_IP = 192.168.104.11 #management&api network#凭据ADMIN_PASSWORD
= admin
MYSQL_PASSWORD = secret
RABBIT_PASSWORD = secret
SERVICE_PASSWORD = secret
SERVICE_TOKEN = abcdefghijklmnopqrstuvwxyz#服务信息
SERVICE_HOST = 192.168.104.10
MYSQL_HOST = $ SERVICE_HOST
RABBIT_HOST = $ SERVICE_HOST
GLANCE_HOSTPORT = $ SERVICE_HOST:9292
Q_HOST = $ SERVICE_HOST
KEYSTONE_AUTH_HOST = $ SERVICE_HOST
KEYSTONE_SERVICE_HOST = $ SERVICE_HOSTCEILOMETER_BACKEND = mongodb
DATABASE_TYPE = mysqlENABLED_SERVICES = n-cpu,q-agt,neutron
Q_AGENT = linuxbridge
ENABLE_TENANT_VLANS = True
TENANT_VLAN_RANGE = 3001:4000
PHYSICAL_NETWORK = default#VNC配置
NOVA_VNC_ENABLED =真
NOVNCPROXY_URL = “HTTP:// $ SERVICE_HOST:6080 / vnc_auto.html”
VNCSERVER_LISTEN = $ HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS = $ VNCSERVER_LISTENLOG_COLOR = False
LOGDIR = $ DEST / logs
SCREEN_LOGDIR = $ LOGDIR / screen
另外,为了加快安装速度,还可以加上下面的配置使用国内的devstack镜像站点
#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
开始部署
分别在devstack-controller和devstak-compute上执行命令
./stack.sh
会输出各项操作的结果。日志会写到stack.sh.log文件。
整个过程需要连接Internet,网速慢可能会花较长时间,成功后最后会打印出相关信息。
devstack-controlle上的输出
devstack-compute上的输出
验证OpenStack
下面验证OpenStack已经正常运行浏览器访问http://192.168.104.10/(deststack-controller的IP)admin / admin登录
点击系统 - >系统信息,确保各个服务的状态正常
这里cinder-volume的状态是“Down”,这是因为我们还没有配置cinder,后面会让它Up up来。
启动OpenStack
如果重启了系统,OpenStack不会自动启动,可以运行下面命令
cd devstack ./rejoin-stack.sh
运行成功后,OpenStack的每个服务都在一个屏幕中以进程方式运行。使用屏幕有几个好处:
-
可以方便的在不同服务之间切换和查看日志。因为OpenStack的服务很多,每个服务都有自己的日志文件。查找日志是一件非常麻烦的事情,屏幕可以帮我们提高效率。
-
当我们修改了某个服务的配置文件需要重启服务时,只需在该服务的屏幕窗口按Ctrl + C,然后在命令行中找到上一个命令(Up键)执行就行,这个命令就是启动服务的命令。
下面是屏幕常用命令
在屏幕中执行
Ctrl + a + n切换到下一个窗口
Ctrl + a + p切换到前一个窗口(与Ctrl + a + n相对)
Ctrl + a + 0..9切换到窗口0 ..9
Ctrl + a + d暂时断开(detach)当前屏幕会话,但不中断屏幕窗口中程序的运行
在shell中执行
屏幕-ls列出当前所有的会话
屏幕-r stack回到devstack这个会话
删除自动创建的网络
Devstack在部署时可能会创建几个测试网络,为了得到一个干净的环境需将其删除
删除路由器管理 - >系统 - >路由器
删除网络管理员 - >系统 - >网络
至此,我们得到了一个干净的OpenStack环境。后面会在这个环境中实践各个模块。