云计算(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组件架构图
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
整体规划
(也可使用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
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的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
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用于普通用户
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 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
创建端点
为简化操作,可以使用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中查看记录。
创建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 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
认证
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
认证服务
生成脚本
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
测试
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使用计算服务来托管和管理云计算系统,是IaaS系统的主要部分,模块主要由Python实现。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
服务列表
参见:compute01
Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 *** 等。Neutron 提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。
Openstack的设计理念是把所有的组件当做服务来注册的。 Neutron就是网络服务。它将网络、子网、端口和路由器抽象化,之后启动的虚拟主机就可以连接到这个虚拟网络上,最大的好处是这些都可视化的在Horizon里得到了实现,部署或者改变一个SDN变得非常简单。
Neutron结构
客户机连接到网络的流程
1) 租户创建了一个网络,比如net
2) 租户为此网络分配一个子网,比如192.168.56.0/24
3) 租户启动一个客户机,并指明一个网口连接到net
4) Nova通知Neutron并在net上创建一个端口,如port1
5) Neutron选择并分配一个IP给port1
6) 客户机通过port1就连接到了net上
组织架构
组织架构
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/
登录页面
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。