openstack云平台搭建(openstack系统部署步骤)

云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。

云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此,云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。

简单来说,就是把应用程序和数据都放在由大量服务器组成的云中,用户需要什么只要购买相应服务并使用即可。

云计算分为私有云、公有云、混合云。

云计算的服务分类:基础设施即服务、平台即服务、软件即服务。

特点:

超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器,亚马逊、IBM、微软和Yahoo等公司的“云”均拥有几十万台服务器。“云”能赋予用户前所未有的计算能力。

虚拟化。云计算支持用户在任意位置使用各种终端获取服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解应用运行的具体位置,只需要一台笔记本或一个PDA,就可以通过网络服务来获取各种能力超强的服务。

高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机更加可靠。

通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出于变万化的应用,同一片“云”可以同时支撑不同的应用运行。

高可伸缩性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。

按需服务。“云”是一个庞大的资源池,用户按需购买,像自来水、电和煤气那样计费。

极其廉价。“云”的特殊容错措施使得可以采用极其廉价的节点来构成云;“云”的自动化管理使数据中心管理成本大幅降低;“云”的公用性和通用性使资源的利用率大幅提升;“云”设施可以建在电力资源丰富的地区,从而大幅降低能源成本。

OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。常见组件:

Dashboard(web控制台,又名Horizon)

Keystone(权限管理,为各组件提供认证和授权功能)

Nova(管理虚拟机)

Nova-network(Neutron,管理网络流量和ip)

glance(镜像管理,提供装机镜像)

Cinder(磁盘管理,云盘)

Swift(网盘,对象存储)

openstack云平台搭建(openstack系统部署步骤)

OpenStack组件介绍

虚拟机创建步骤

openstack云平台搭建(openstack系统部署步骤)

openstack组件架构图

1) 登录界面或命令行通过RESTful API向keystone获取认证信息。

2) keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。

3) 界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。

4) nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。

5) keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。

7) 初始化新建虚拟机的数据库记录。

8) nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。

9) nova-scheduler进程侦听消息队列,获取nova-api的请求。

10) nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。

11) 对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。

12) nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。

13) nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。

14) nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)

15) nova-conductor从消息队队列中拿到nova-compute请求消息。

16) nova-conductor根据消息查询虚拟机对应的信息。

17) nova-conductor从数据库中获得虚拟机对应信息。

18) nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。

19) nova-compute从对应的消息队列中获取虚拟机信息消息。

20) nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。

21) glance-api向keystone认证token是否有效,并返回验证结果。

22) token验证通过,nova-compute获得虚拟机镜像信息(URL)。

23) nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。

24) neutron-server向keystone认证token是否有效,并返回验证结果。

25) token验证通过,nova-compute获得虚拟机网络信息。

26) nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。

27) cinder-api向keystone认证token是否有效,并返回验证结果。

28) token验证通过,nova-compute获得虚拟机持久化存储信息。

29) nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。

用户通过网络端请求软件服务。软件在网络平台开发,使用平台提供的基本功能服务。网络平台使用网络底层存储、计算资源等基本硬件功能服务,使用基础设置提供的服务。基础设施层使用存储、安全等服务和硬件构建基础功能。

XaaS概念,X as a Service

S层:software

P层:platform

I层:infrastructure

参考:http://chuansong.me/n/147623

openstack云平台搭建(openstack系统部署步骤)

整体规划

(也可使用docker直接创建,命令如下:

创建容器:# docker run -d –name controller –privileged=true docker.io/sf2gis/centos:ntp /usr/sbin/init

进入容器:# docker exec -it controller /bin/bash)

使用rancher时需要在网络中设置IP(10.42.0.10)和主机名(controller),在命令中设置入口为/usr/sbin/init,在安全中选择全部权限。

进入容器,设置IP和域名:/etc/hosts

10.42.0.10 controller

10.42.0.11 compute01

openstack云平台搭建(openstack系统部署步骤)

rancher生成容器

启动ntp服务。

完成后yum update 升级系统。

将容器commit为镜像

docker commit -a "sf2gis" -m "centos7.4+ntp server+update" controller sf2gis/openstack:ntp

将镜像push到dockerhub。

docker push sf2gis/openstack:ntp

参见:..\\DataBase\\mysql\\mysql.docx

systemctl enable rabbitmq-server.service、systemctl start rabbitmq-server.service

添加用户:rabbitmqctl add_user openstack abc123

配置权限:rabbitmqctl set_permissions openstack ".*" ".*" ".*"

添加webui:rabbitmq-plugins enable rabbitmq_management

配置完成后重启生效:systemctl restart rabbitmq-server.service

查看监听端口:netstat -anpt | grep beam

server间通信端口:25672

管理端口:15672

client端通信端口:5672

初次登录用户名和密码使用guest。

openstack云平台搭建(openstack系统部署步骤)

登录页面

OpenStack的Identity service为认证管理,授权管理和服务目录服务管理提供单点整合,作为统一API使用。此外,可以整合不在OpenStack项目中的用户信息服务(如LDAP服务)。

其他OpenStack服务在收到来自用户的请求时,询问Identity服务以验证是否具有权限。

keystone包括服务器、中间件及第三方驱动。服务器提供restful的web服务,中间件使组件可以访问到认证服务,第三方驱动用于整合外部用户信息服务。

mysql –u root -p

CREATE DATABASE keystone;

flush privileges;

yum install openstack-keystone httpd mod_wsgi memcached python-memcached -y #这里安装memcached是为了令牌更新用的

systemctl enable memcached.service && systemctl start memcached.service

netstat -tnlp|grep memcached

openssl rand -hex 10 #生成随机数,创建管理员令牌。8115b8656f6eeea723cc

openstack云平台搭建(openstack系统部署步骤)

keystone

cd /etc/keystone/

cp keystone.conf keystone.conf.bak

egrep -v "^#|^$" keystone.conf.bak keystone.conf

vi keystone.conf

[default]

admin_token = 0cfe644113b242e39878 #与上面生成的管理员令牌一致

[database]

[token]

provider = fernet #配置 fernet token provider

Fernet 是专为 API token 设计的一种轻量级安全消息格式,不需要存储于数据库,减少了磁盘的 IO,带来了一定的性能提升。使用uuid token偶尔会有莫名其妙认证失败返回401,从而导致web页面log out的情况。而使用fernet token后,则基本没有这种情况的发生。

su -s /bin/sh -c "keystone-manage db_sync" keystone #初始化身份认证服务的数据库

#keystone对自己进行认证:创建自身的用户和组并对其进行授权

keystone-manage fernet_setup –keystone-user keystone –keystone-group keystone

keystone-manage credential_setup –keystone-user keystone –keystone-group keystone

sed -i 's/#ServerName www.example.com:80/ServerName controller/g' /etc/httpd/conf/httpd.conf #修改配置文件中主机名为controller

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

vi /etc/httpd/conf.d/wsgi-keystone.conf,添加如下内容

Listen 35357

<VirtualHost *:35357

WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}

WSGIProcessGroup keystone-admin

WSGIScriptAlias / /usr/bin/keystone-wsgi-admin

WSGIApplicationGroup %{GLOBAL}

WSGIPassAuthorization On

LimitRequestBody 114688

<IfVersion = 2.4

ErrorLogFormat "%{cu}t %M"

</IfVersion

ErrorLog /var/log/httpd/keystone.log

CustomLog /var/log/httpd/keystone_access.log combined

<Directory /usr/bin

<IfVersion = 2.4

Require all granted

</IfVersion

<IfVersion < 2.4

Order allow,deny

Allow from all

</IfVersion

</Directory

</VirtualHost

Alias /identity_admin /usr/bin/keystone-wsgi-admin

<Location /identity_admin

SetHandler wsgi-script

Options +ExecCGI

WSGIProcessGroup keystone-admin

WSGIApplicationGroup %{GLOBAL}

WSGIPassAuthorization On

</Location

systemctl enable httpd.service

systemctl start httpd.service

netstat -anpt | grep http #35357用于管理,5000用于普通用户

openstack云平台搭建(openstack系统部署步骤)

apache http

export OS_TOKEN=8115b8656f6eeea723cc #配置认证令牌,与上面生成的管理员令牌一致

export OS_URL=http://controller:35357/v3 #配置端点URL

export OS_IDENTITY_API_VERSION=3 #配置认证 API 版本

env|grep ^OS #查看设置是否生效

注意:如果Token配置出错,将报HTTP 401错误。

openstack

service create –name keystone –description "OpenStack identity" identity

openstack云平台搭建(openstack系统部署步骤)

创建服务实体

创建访问该服务的三个端点:

openstack endpoint create –region RegionOne identity public http://controller:5000/v3

openstack endpoint create –region RegionOne identity internal http://controller:5000/v3

openstack endpoint create –region RegionOne identity admin http://controller:35357/v3

openstack云平台搭建(openstack系统部署步骤)

创建端点

为简化操作,可以使用bootstrap进行集中创建,下面的等同于服务实体的创建

keystone-manage bootstrap –bootstrap-password 8115b8656f6eeea723cc \\

–bootstrap-admin-url http://controller:35357/v3 \\

–bootstrap-internal-url http://controller:5000/v3 \\

–bootstrap-public-url http://controller:5000/v3 \\

–bootstrap-region-id RegionOne

组织结构:domain-》project-》role-》user

创建域:openstack domain create –description "default Domain" default

创建项目:openstack project create –domain default –description "admin Project" admin

创建角色:openstack role create admin

创建用户:openstack user create –domain default –password-prompt admin

关联:openstack role add –project admin –user admin admin

可以在keystone数据库assignment中查看记录。

openstack云平台搭建(openstack系统部署步骤)

创建admin管理项目

openstack project create –domain default –description "service Project" service

openstack project create –domain default –description "demo Project" demo

openstack user create –domain default –password-prompt demo

openstack role create user

openstack role add –project demo –user demo user

unset OS_TOKEN OS_URL

openstack –os-auth-url http://controller:35357/v3 –os-project-domain-name default –os-user-domain-name default –os-project-name admin –os-username admin token issue

openstack云平台搭建(openstack系统部署步骤)

请求认证

可以使用脚本文件简化认证过程:使用openstack token issue直接认证

vi admin-openrc

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=admin

export OS_USERNAME=admin

export OS_PASSWORD=admin

export OS_AUTH_URL=http://controller:35357/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

openstack云平台搭建(openstack系统部署步骤)

认证

vi demo-openrc

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=ademo

export OS_USERNAME=demo

export OS_PASSWORD=demo

export OS_AUTH_URL=http://controller:5000/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

管理镜像,允许用户发现,注册、恢复虚拟机镜像。

glance-api:接受用户调用。

glance-registry:管理镜像元数据,内部服务。存储于数据库中。

存储仓库:支持多种仓库。

元数据定义服务:用于自定义元数据。

CREATE DATABASE glance;

flush privileges;

创建glance用户(密码输入glance):openstack user create –domain default –password-prompt glance

建立admin角色连接:openstack role add –project service –user glance admin

创建服务实体:

openstack service create –name glance –description "OpenStack Image" image

创建服务的端点:

openstack endpoint create –region RegionOne image public http://controller:9292

openstack endpoint create –region RegionOne image internal http://controller:9292

openstack endpoint create –region RegionOne image admin http://controller:9292

openstack云平台搭建(openstack系统部署步骤)

认证服务

生成脚本

vi glance-openrc

export OS_PROJECT_DOMAIN_NAME=default

export OS_USER_DOMAIN_NAME=default

export OS_PROJECT_NAME=service

export OS_USERNAME=glacne

export OS_PASSWORD=glance

export OS_AUTH_URL=http://controller:35357/v3

export OS_IDENTITY_API_VERSION=3

export OS_IMAGE_API_VERSION=2

测试:openstack token issue

openstack云平台搭建(openstack系统部署步骤)

测试

yum install openstack-glance –y

配置glance-api

cd /etc/glance/

cp glance-api.conf glance-api.conf.bak

egrep -v "^#|^$" glance-api.conf.bak glance-api.conf

vi glance-api.conf

[DEFAULT]

notification_driver = noop #配置 noop 禁用通知,他们只适合与可选的Telemetry 服务

[database]

[keystone_authtoken] #配置认证服务访问信息

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = glance

password = glance

[paste_deploy] #配置认证服务访问

flavor = keystone

[glance_store] #配置本地文件系统存储和镜像文件位置

stores = file,http

default_store = file

filesystem_store_datadir = /var/lib/glance/images/

配置glance- registry

cp glance-registry.conf glance-registry.conf.bak

egrep -v "^#|^$" glance-registry.conf.bak glance-registry.conf

vi glance-registry.conf

[database]

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = glance

password = glance

[paste_deploy]

flavor = keystone

配置写入数据库

su -s /bin/sh -c "glance-manage db_sync" glance #将配置写入镜像服务数据库

启动镜像服务、开机启动

systemctl enable openstack-glance-api.service openstack-glance-registry.service

systemctl start openstack-glance-api.service openstack-glance-registry.service

下载镜像:wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img

创建镜像:

openstack image create "cirros" –file cirros-0.3.4-x86_64-disk.img –disk-format qcow2 –container-format bare –public #使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它

镜像列表:openstack image list #确认镜像的上传并验证属性

openstack云平台搭建(openstack系统部署步骤)

镜像列表

OpenStack使用计算服务来托管和管理云计算系统,是IaaS系统的主要部分,模块主要由Python实现。OpenStack组件可以在标准硬件上水平大规模扩展,并且下载磁盘镜像启动虚拟机实例。

openstack云平台搭建(openstack系统部署步骤)

Nova架构

将公网(public network)和私网(private network)隔离

VNC client运行在公网上,VNCServer运行在私网上,VNC Proxy作为中间的桥梁将二者连接起来

VNC Proxy通过token对VNC Client进行验证

VNC Proxy不仅仅使得私网的访问更加安全,而且将具体的VNC Server的实现分离,可以支持不同Hypervisor的VNC Server但不影响用户体验

在Controller节点上部署nova-consoleauth 进程,用于Token验证

在Controller节点上部署nova-novncproxy 服务,用户的VNC Client会直接连接这个服务

Controller节点一般有两张网卡,连接到两个网络,一张用于外部访问,我们称为public network,或者API network,这张网卡的IP地址是外网IP,如图中172.24.1.1,另外一张网卡用于openstack各个模块之间的通信,称为management network,一般是内网IP,如图中10.10.10.2

在Compute节点上部署nova-compute,在nova.conf文件中有下面的配置

vnc_enabled=True

vncserver_listen=0.0.0.0 //VNC Server的监听地址

vncserver_proxyclient_address=10.10.10.2 //nova vnc proxy是通过内网IP来访问vnc server的,所以nova-compute会告知vnc proxy用这个IP来连接我。

novncproxy_base_url=http://172.24.1.1:6080/vnc_auto.html //这个url是返回给客户的url,因而里面的IP是外网IP

CREATE DATABASE nova_api;

CREATE DATABASE nova;

CREATE DATABASE nova_cell0;

flush privileges;

. admin-openrc #获得admin权限

创建用户并添加到admin

openstack user create –domain default –password-prompt nova #创建nova用户,会提示输入密码nova

openstack role add –project service –user nova admin #添加admin 角色到 nova 用户

创建服务实体及端点

openstack service create –name nova –description "OpenStack Compute" compute

openstack endpoint create –region RegionOne compute public http://controller:8774/v2.1/%\\(tenant_id\\)s

openstack endpoint create –region RegionOne compute internal http://controller:8774/v2.1/%\\(tenant_id\\)s

openstack endpoint create –region RegionOne compute admin http://controller:8774/v2.1/%\\(tenant_id\\)s

yum install -y \\

openstack-nova-api \\

openstack-nova-conductor \\

openstack-nova-console \\

openstack-nova-novncproxy \\

openstack-nova-scheduler

cd /etc/nova/

cp nova.conf nova.conf.bak

egrep -v "^$|^#" nova.conf.bak nova.conf

vi nova.conf

[DEFAULT]

enabled_apis = osapi_compute,metadata #禁用EC2 API

auth_strategy = keystone #配置认证服务访问

my_ip = 10.42.0.10 #配置 my_ip使用controller的IP地址

use_neutron = True #启动网络服务支持

firewall_driver = nova.virt.firewall.NoopFirewallDriver #关闭防火墙

[api_database]

[database]

[keystone_authtoken] #配置认证服务访问

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name =default

project_name = service

username = nova

password = nova

[vnc] #配置VNC代理使用控制节点的管理IP地址

vncserver_listen = 0.0.0.0

vncserver_proxyclient_address = $my_ip

[glance]

api_servers = http://controller:9292 #配置镜像服务的位置,域名如果无法解析也可以IP地址

[oslo_concurrency]

lock_path = /var/lib/nova/tmp #配置锁路径

su -s /bin/sh -c "nova-manage api_db sync" nova #同步Compute 数据库,忽略告警信息

su -s /bin/sh -c "nova-manage db sync" nova

su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

su -s /bin/sh -c "nova-manage cell_v2 create_cell –name=cell1 –verbose" nova

systemctl enable openstack-nova-api.service \\

openstack-nova-consoleauth.service \\

openstack-nova-scheduler.service \\

openstack-nova-conductor.service \\

openstack-nova-novncproxy.service

systemctl start openstack-nova-api.service \\

openstack-nova-consoleauth.service \\

openstack-nova-scheduler.service \\

openstack-nova-conductor.service \\

openstack-nova-novncproxy.service

nova service-list

openstack云平台搭建(openstack系统部署步骤)

服务列表

参见:compute01

Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 *** 等。Neutron 提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。

Openstack的设计理念是把所有的组件当做服务来注册的。 Neutron就是网络服务。它将网络、子网、端口和路由器抽象化,之后启动的虚拟主机就可以连接到这个虚拟网络上,最大的好处是这些都可视化的在Horizon里得到了实现,部署或者改变一个SDN变得非常简单。

openstack云平台搭建(openstack系统部署步骤)

Neutron结构

客户机连接到网络的流程

1) 租户创建了一个网络,比如net

2) 租户为此网络分配一个子网,比如192.168.56.0/24

3) 租户启动一个客户机,并指明一个网口连接到net

4) Nova通知Neutron并在net上创建一个端口,如port1

5) Neutron选择并分配一个IP给port1

6) 客户机通过port1就连接到了net上

组织架构

openstack云平台搭建(openstack系统部署步骤)

组织架构

Neutron 由如下组件构成:

Neutron Server :对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。

Plugin:处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络的状态, 并调用 Agent 处理请求。

Agent :处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。

network provider :提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch 或者其他支持 Neutron 的物理交换机。

Queue :Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。

Database :存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router 等。

docker创建时,注意:

修改/etc/hosts(controller和compute01都要修改)。

CREATE DATABASE neutron;

Flush privileges;

. admin-openrc #获得 admin 凭证来获取只有管理员能执行命令的访问权限

openstack user create –domain default –password-prompt neutron

openstack role add –project service –user neutron admin

openstack service create –name neutron –description "OpenStack Networking" network

openstack endpoint create –region RegionOne network public http://controller:9696

openstack endpoint create –region RegionOne network internal http://controller:9696

openstack endpoint create –region RegionOne network admin http://controller:9696

yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables -y

cd /etc/neutron/

cp neutron.conf neutron.conf.bak

egrep -v "^$|^#" neutron.conf.bak neutron.conf

vi neutron.conf

[database] #配置数据库访问

[keystone_authtoken] #配置认证服务访问

auth_uri = http://controller:5000

auth_url = http://controller:35357

memcached_servers = controller:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = neutron

[nova] #配置网络以能够反映计算网络拓扑变化

auth_url = http://controller:35357

auth_type = password

project_domain_name = default

user_domain_name = default

region_name = RegionOne

project_name = service

username = nova

password = nova

[oslo_concurrency]

lock_path = /var/lib/neutron/tmp #配置锁路径

[DEFAULT]

core_plugin = ml2 #启用Layer 2 (ML2)插件模块,路由服务和重叠的IP地址

service_plugins = #故意缺少值,就可以启用多种服务插件

auth_strategy = keystone #配置认证服务访问

notify_nova_on_port_status_changes = True #配置网络以能够反映计算网络拓扑变化

notify_nova_on_port_data_changes = True

cd /etc/neutron/plugins/ml2/

cp ml2_conf.ini ml2_conf.ini.bak

egrep -v "^$|^#" ml2_conf.ini.bak ml2_conf.ini

vi ml2_conf.ini

[ml2]

type_drivers = flat,vlan #启用flat和VLAN网络

tenant_network_types = #故意缺少值,这样就可以启用多种网络

mechanism_drivers = linuxbridge #启用Linux 桥接

extension_drivers = port_security #启用端口安全扩展驱动

[ml2_type_flat]

flat_networks = provider #配置公共flat提供网络

[securitygroup]

enable_ipset = True #启用 ipset 增加安全组的方便性

cd /etc/neutron/plugins/ml2/

cp linuxbridge_agent.ini linuxbridge_agent.ini.bak

egrep -v "^$|^#" linuxbridge_agent.ini.bak linuxbridge_agent.ini

vi linuxbridge_agent.ini

[linux_bridge]

physical_interface_mappings = provider:ens33 #映射公共虚拟网络到公共物理网络接口

[vxlan] #禁用VXLAN覆盖网络

enable_vxlan = False

[securitygroup] #启用安全组并配置 Linux 桥接 iptables 防火墙驱动

enable_security_group = True

firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

cd /etc/neutron/

cp dhcp_agent.ini dhcp_agent.ini.bak

egrep -v "^$|^#" dhcp_agent.ini.bak dhcp_agent.ini

vi dhcp_agent.ini

[DEFAULT] #配置Linux桥接网卡驱动,Dnsmasq DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络访问元数据

interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_metadata = True

cd /etc/neutron/

cp metadata_agent.ini metadata_agent.ini.bak

egrep -v "^$|^#" metadata_agent.ini.bak metadata_agent.ini

vi metadata_agent.ini

[DEFAULT] #配置访问参数

nova_metadata_ip = controller #配置元数据主机

metadata_proxy_shared_secret = mate #配置元数据代理共享密码,自定义

cd /etc/nova/

cp nova.conf nova.conf.nova

vi nova.conf #新增neutron

[neutron]

url = http://controller:9696

auth_url = http://controller:35357

auth_type = password

project_domain_name = Default

user_domain_name = Default

region_name = RegionOne

project_name = service

username = neutron

password = neutron

service_metadata_proxy = True

metadata_proxy_shared_secret = mate

#网络服务初始化脚本需要一个超链接/etc/neutron/plugin.ini指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini

ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini

su -s /bin/sh -c "neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron #同步数据库

systemctl restart openstack-nova-api.service #重启计算API 服务

配置他们开机自启动(对所有网络选项)

systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service

启动网络服务

systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service

对网络选项2,同样也启用并启动layer-3服务:

systemctl enable neutron-l3-agent.service

systemctl start neutron-l3-agent.service

参见:安装neutron网络服务

Openstack项目中的Horizon仪表板组件是以Web界面的形式展示各项服务的,Openstack云系统管理员和终端用户可以通过仪表板管理各项资源和服务。

Horizon通过Openstack的APIs与控制节点通信,分配资源和同步状态。

Horizon服务组件允许对其进行定制化的修改,同时,提供一些核心代码类和可重复使用的模板与工具.

yum install -y openstack-dashboard

备份:cp /etc/openstack-dashboard/localsettings /etc/openstack-dashboard/localsettings.bak

修改配置:vi /etc/openstack-dashboard/localsettings

OPENSTACK_HOST = "controller"

ALLOWED_HOSTS = ['*', ]

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

CACHES = {

'default': {

'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',

'LOCATION': '127.0.0.1:11211',

}

}

OPENSTACK_KEYSTONE_URL = "http://192.168.71.2:5000/v3"

OPENSTACK_API_VERSIONS = {

'identity': 3,

OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_"

}

OPENSTACK_NEUTRON_NETWORK = {

'enable_distributed_router': False,

'enable_firewall': False,

'enable_ha_router': False,

'enable_lb': False,

'enable_quotas': True,

'enable_security_group': True,

'enable_vpn': False,

'profile_support': None,

}

TIME_ZONE = "Asia/Shanghai"

systemctl restart httpd.service memcached.service

http://IP/dashboard/

openstack云平台搭建(openstack系统部署步骤)

登录页面

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2022年9月13日 14:15
下一篇 2022年9月13日 14:18

相关推荐

发表回复

登录后才能评论