部署 DevStack - 每天5分钟玩转 OpenStack(17)

本节按照以下步骤部署 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/tools/create-stack-user.sh

为方便起见,将devstack目录放到/opt/stack下,并设置权限

mv devstack /opt/stack
chown -R stack:stack /opt/stack/devstack

切换到 stack 用户

su – stack
cd devstack

编写运行配置文件

在 /opt/stack/devstack 目录下,创建 local.conf。

devstack-controller

[[local|localrc]]

MULTI_HOST=true
HOST_IP=192.168.104.10 # management & api network
LOGFILE=/opt/stack/logs/stack.sh.log

# Credentials
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=default

LOG_COLOR=False
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen

devstack-compute

[[local|localrc]]

MULTI_HOST=true
HOST_IP=192.168.104.11 # management & api network

# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=secret
RABBIT_PASSWORD=secret
SERVICE_PASSWORD=secret
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz

# Service information
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_HOST

CEILOMETER_BACKEND=mongodb
DATABASE_TYPE=mysql

ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default

# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN

LOG_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/(devstack-controller 的 IP) admin/admin 登录

点击 System->System Information,确保各个服务的状态正常

这里 cinder-volume 的状态是 “Down”,这是因为我们还没有配置 cinder,后面会让它 Up 起来。

启动 OpenStack

如果重启了系统,OpenStack 不会自动启动,可以运行下面命令

cd devstack ./rejoin-stack.sh

运行成功后,OpenStack 的每个服务都在一个 screen 中以进程方式运行。 使用 screen 有几个好处:

  1. 可以方便的在不同服务之间切换和查看日志。 因为OpenStack的服务很多,每个服务都有自己的日志文件。 查找日志是一件非常麻烦的事情,screen可以帮我们提高效率。
  2. 当我们修改了某个服务的配置文件需要重启服务时,只需在该服务的 screen 窗口 Ctrl+C,然后在命令行中找到上一个命令(Up键)执行就行,这个命令就是启动服务的命令。

下面是 screen 常用命令
在 screen 中执行
Ctrl+a+n 切换到下一个窗口
Ctrl+a+p 切换到前一个窗口(与 Ctrl+a+n 相对)
Ctrl+a+0..9 切换到窗口 0..9
Ctrl+a+d 暂时断开(detach)当前 screen 会话,但不中断 screen 窗口中程序的运行

在 shell 中执行
screen -ls  列出当前所有的 session
screen -r stack  回到 devstack 这个 session

删除自动创建的网络

Devstack 在部署时可能会创建几个测试网络,为了得到一个干净的环境需将其删除

删除 Router Admin->System->Routers

删除 Network Admin->System->Networks

至此,我们得到了一个干净的 OpenStack 环境。 后面会在这个环境中实践各个模块。

时间: 2024-11-05 18:39:44

部署 DevStack - 每天5分钟玩转 OpenStack(17)的相关文章

Neutron 物理部署方案 - 每天5分钟玩转 OpenStack(68)

前面我们讨论了 Neutron 的架构,本节讨论 Neutron 的物理部署方案:不同节点部署不同的 Neutron 服务组件. 方案1:控制节点 + 计算节点 在这个部署方案中,OpenStack 由控制节点和计算节点组成. 控制节点部署的服务包括:neutron server, core plugin 的 agent 和 service plugin 的 agent. 计算节点部署 core plugin 的agent,负责提供二层网络功能. 这里有两点需要说明: 1. core plugi

创建 OVS vlan101 并部署 instance - 每天5分钟玩转 OpenStack(139)

前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron 自动在 br-int 网桥上创建了 vlan100 dhcp 的接口 "tap1820558c-0a". 现在,网络结构如下: 将 instance 连接到 vlan101 launch 新的 instance "cirros-vm3",网络选择 vlan101. c

每天5分钟 玩转OpenStack

最近在学习OpenStack的相关知识,一直苦于OpenStack的体系庞大以及复杂程度,学习没有进度,停滞不前.偶然机会在51CTO上发现了一个热点的专题关于OpenStack的,题目叫做<每天5分钟 玩转OpenStack>,抱着试试的态度看了几篇,被文章的内容和书写风格吸引了,内容全面,思路清晰,简单易懂,关键是每篇博文的内容很少,绝对是一泡大便的功夫.每周一.周三.周五定时更新,微信也有同步更新.不过大神在博客园cnblogs上的博文没有目录,每次翻阅的时候甚是费劲,可能是大神太忙了,

写在最前面 - 每天5分钟玩转 OpenStack(1)

<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重实践并兼顾理论 主要从实际操作的角度带着大家学习 OpenStack. 为啥要写这个? 简单回答是:因为OpenStack 学习难度大,但如果掌握了价值会很大 先做一个自我介绍吧. 本人网名CloudMan,在 IT 这个行当已经摸爬滚打了十多年,05年之前是搞上层应用开发的,那时候 Java 比较火,所以

部署 Helm - 每天5分钟玩转 Docker 容器技术(162)

本节我们将安装和部署 Helm 客户端和 Tiller 服务器. Helm 客户端 通常,我们将 Helm 客户端安装在能够执行 kubectl 命令的节点上,只需要下面一条命令: curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash 执行 helm version 验证. 目前只能查看到客户端的版本,服务器还没有安装. helm 有很多子命令和参数,为了提高使用命令行的效率,通常建议安装

创建 Pool & VIP - 每天5分钟玩转 OpenStack(122)

上节完成了 LBaaS 配置,今天我们开始实现如下 LBaaS 环境. 环境描述如下:1. 创建一个 Pool "web servers".2. 两个 pool member "WEB1" 和 "WEB2",均为运行 Ubuntu cloud image 的 instance.3. load balancer VIP 与 floating IP 关联.4. 位于外网的 client 通过 floating IP 外网访问 web server.

学习 OpenStack 的方法论 - 每天5分钟玩转 OpenStack(150)

作为 OpenStack 的核心教程,我们已经到了最后总结的部分. OpenStack 目前已经有好几十个模块,本教程讨论的是最最重要的核心模块:Keystone,Nova,Glance,Cinder 和 Neutron.请大家看下图: 此图截自 https://www.openstack.org/software/project-navigator/,这是 OpenStack 官方定义的 6 个 Core Service.每个模块都会从三个维度来衡量: ADOPTION - 采用度 MATUR

cloud-init 典型应用 - 每天5分钟玩转 OpenStack(174)

本节介绍几个 cloud-init 的典型应用:设置 hostanme,设置用户初始密码,安装软件. 设置 hostname cloud-init 默认会将 instance 的名字设置为 hostname.但这样不太方便,有时希望能够将二者分开,可利用 cloud-init 的set_hostname 模块实现.set_hostname 它会查询 metadata 中 hostname 信息,默认值就是 instance 的名字.我们可以指定自己的 hostname,方法是将下面的内容传给 c

理解 Keystone 核心概念 - 每天5分钟玩转 OpenStack(18)

作为 OpenStack 的基础支持服务,Keystone 做下面这几件事情: 管理用户及其权限 维护 OpenStack Services 的 Endpoint Authentication(认证)和 Authorization(鉴权) 学习 Keystone,得理解下面这些概念: User User 指代任何使用 OpenStack 的实体,可以是真正的用户,其他系统或者服务. 当 User 请求访问 OpenStack 时,Keystone 会对其进行验证. Horizon 在 Ident