一、前言

折腾了一两个月(中间有事耽搁了半个月),至今日基本调试成功OpenStack,现将中间的部分心得记录下来。

二、环境

使用的是devstack newton版。具体部署过程可以参考cloudman的视频http://cloudman.cc/

三、部分细节

3.1 操作系统

  1. ubuntu16.04版,在安装软件环节选择虚拟host项。

  2. 启用root账户。

  3. 修改阿里的apt源。

  4. 修改豆瓣的pip源(root用户和stack用户均需修改)。

3.2 下载及配置openstack

  1. 下载

git clone https://git.openstack.org/openstack-dev/devstack -b stable/newton

  1. 主节点配置
control
[[local|localrc]] MULTI_HOST=true # management & api network
HOST_IP=192.168.166.101
LOGFILE=/opt/stack/logs/stack.sh.log # Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
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_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=10:100
PHYSICAL_NETWORK=default LOG_COLOR=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen # 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
  1. 计算节点配置
Compute
[[local|localrc]] MULTI_HOST=true
# management & api network
HOST_IP=192.168.166.102 # Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=admin
RABBIT_PASSWORD=admin
SERVICE_PASSWORD=admin
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz # Service information
SERVICE_HOST=192.168.166.101
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 ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=10:100
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=True
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen # 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

主从节点分别按上述配置即可安装成功。

  1. 各种service含义
q-agt
core agent,包括 linux bridge agent 和 open vswich agent q-dhcp
dhcp agent q-l3
l3 agent,提供 routing 服务 q-meta
neutron metadata agent q-lbaas
load balance agent q-fwass
firewall 服务
q-vpn
vpn agent,提供 VPN as a Service

3.3 实现VLAN网络

修改/etc/neutron/plugins/ml2/ml2_conf.ini,指明vlan network与物理网卡的对应关系。

physical_interface_mappings = default:eth1

每个节点均需进行上述修改。并需要将交换机的端口设置成trunk,这样既可以实现通过VLAN的方式将各个节点之间的虚拟机连接起来。

3.4 VLAN间通信(l3 agent)

修改/etc/neutron/l3_agent.ini(主节点计算节点均需修改)。

interface_driver 是最重要的选项,如果 mechanism driver 选用 linux bridge,则:

interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver

如果选用 open vswitch,则:

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

之后创建router,在router中创建两个interface即可实现两个vlan之间的通信。

3.5 虚拟机访问外部网络

修改/etc/neutron/plugins/ml2/ml2_conf.ini。

flat_networks=external

physical_interface_mappings = default:eth1,external:eth2

这里我们将外部网络的 label 命名为 “external”。重启祝节点和计算节点的neutron服务。

web中创建一个网络,type选为flat,physical network设置为external,勾选external network项。

创建子网,ip地址即为外部的IP地址,网关设置为外部网关。

将此网络添加到上面创建的router的接口中。这样即可实现虚拟机访问外部网络。

3.6 外部访问虚拟机

通过floating ip实现此功能。

如果ping不通,可以在security group加上ingress 和egress的all tcp rule。如果ssh不通,可以在security group加上ingress 和egress的all tcp rule。

3.7 虚拟机中安装ubuntu系统

下载ubuntu cloud镜像。地址:http://cloud-images.ubuntu.com/xenial/current/

添加镜像并部署instance,区别在于部署instance的时候需要设置key pair(私钥),通过此私钥进行登陆。

执行下述语句使得可以远程ssh连接ubuntu(假定已经设置了floating ip)。

passwd ubuntu<<EOF
ubuntu
ubuntu
EOF
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
systemctl restart sshd

四、总结

以上为我在部署OpenStack过程中的部分心得,此过程牵涉的知识实在太多,静下心来,一个问题一个问题解决,最终你会收获不一样的自己,有问题欢迎留言探讨。

OpenStack(企业私有云)万里长征第三步——调试成功的更多相关文章

  1. OpenStack 企业私有云的若干需求(3):多租户和租户间隔离(multi-tenancy and isolation)

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  2. OpenStack 企业私有云的若干需求(7):电信行业解决方案 NFV

    自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云(Hybrid cloud)支持 主流硬件支持.云快速交付 ...

  3. OpenStack 企业私有云的若干需求(2):自动扩展(Auto-scaling) 支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  4. OpenStack 企业私有云的若干需求(5):主流硬件支持、云快速交付 和 SLA 保证

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  5. OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  6. OpenStack企业私有云新需求(1):Nova 虚机支持 GPU

    作者:Sammy Liu 刘世民 本系列会介绍OpenStack 企业私有云的几个需求: GPU 支持 自动扩展(Auto-scaling)支持 混合云(Hybrid cloud)支持 物理机(Bar ...

  7. OpenStack 企业私有云的若干需求(4):混合云支持 (Hybrid Cloud Support)

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  8. OpenStack 企业私有云的若干需求(10):OpenStack 的前景和钱景

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

  9. OpenStack 企业私有云的若干需求(6):大规模扩展性支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

随机推荐

  1. 栈的Java简单实现

    关于栈 栈(Stack)是限定只能在一段进行插入和删除操作的线性表. 进行插入和删除操作的一端称为“栈顶”(top),另一端称为“栈底”(bottom). 栈的插入操作称为“入栈”(push),栈的删 ...

  2. Tomcat--安装与部署(一)

    一.Tomcat背景 自从JSP发布之后,推出了各式各样的JSP引擎.Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JS ...

  3. java的List分页 取出数据后使用List分页

    以前一直是在DAO层直接从数据库里分页,但是今天因为有些数据,需要混合展示,就是根据条件取出了多个对象的集合,然后把这些多个List放到一个List里,然后在从这个List里进行分页. MemberA ...

  4. springMVC---简介

    SpringMVC介绍 为什么要使用springMVC? 很多应用程序的问题在于处理业务数据和显示业务数据的视图的对象之间存在紧密耦合.通常,更新业务对象的命令都是从视图本身发起的,使视图对任何业务对 ...

  5. 1、在eclipse中导入Java的jar包方法---JDBC【图文说明】

    1.Eclipse环境下jar包导入 在Eclipse环境下编写Java程序,常常会借用到各种jar包.如:连接数据库时,导入jar包是必须的.导入方法如下: 1.打开eclipse,右击要导入jar ...

  6. Android 工程集成React Native 0.44 注意点

    当前(2017年5月22日 )React Native开发相当火爆,但是搜索下来,没有最新版本0.44集成的教程,因此尝试了一下如何集成到Android原生工程中去.本篇旨在记录出现的问题以及应对方式 ...

  7. Azure Event Hub 技术研究系列3-Event Hub接收事件

    上篇博文中,我们通过编程的方式介绍了如何将事件消息发送到Azure Event Hub: Azure Event Hub 技术研究系列2-发送事件到Event Hub 本篇文章中,我们继续:从Even ...

  8. java 上传3(uploadify中文api)

    jquery文件上传控件 Uploadify 基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,fla ...

  9. C#访问ORALCE数据库

    随着时间的推移知识也在更新,原来可用的技术也会被淘汰或更新. framework4.0开始不再支持System.Data.OracleClient了,但是令人欣慰的是ORACLE公司自己出了一个Ora ...

  10. SQL写操作 设置内容 (数组转字符串)

    SQL写操作 设置内容 (数组转字符串) SQL set内容 SQL操作数组转字符串 SQL写操作 set内容 (数组转字符串) [ 封装方法 ] function getSqlSet( $data ...