内容简介:Keystone被组织为在一个或多个端点上公开的一组内部服务。其中许多服务由前端以组合方式使用。例如,身份验证调用将使用Identity服务验证用户/项目凭据,并在成功时创建并返回带有令牌服务的令牌。Users表示单个API使用者。用户本身必须由特定域拥有,因此所有用户名不是全局唯一的,而是仅对其域唯一。
一、keystone服务概念
服务
Keystone被组织为在一个或多个端点上公开的一组内部服务。其中许多服务由前端以组合方式使用。例如,身份验证调用将使用Identity服务验证用户/项目凭据,并在成功时创建并返回带有令牌服务的令牌。
身份
Identity服务提供身份验证凭据验证以及有关 用户 和 组的 数据。在基本情况下,此数据由Identity服务管理,允许它还处理与此数据关联的所有CRUD操作。在更复杂的情况下,数据由权威后端服务管理。例如,身份服务充当LDAP的前端。在这种情况下,LDAP服务器是真实的来源,身份服务的作用是准确地传递该信息。
用户
Users表示单个API使用者。用户本身必须由特定域拥有,因此所有用户名不是全局唯一的,而是仅对其域唯一。
组
Groups是表示用户集合的容器。组本身必须由特定域拥有,因此所有组名称不是 全局唯一的,而是仅对其域唯一。
资源
资源服务提供有关 项目 和 域的 数据。
项目
Projects代表ownershipOpenStack 的基本单元,因为OpenStack中的所有资源都应归特定项目所有。项目本身必须由特定域拥有,因此所有项目名称不是 全局唯一的,但对于其域是唯一的。如果未指定项目的域,则将其添加到默认域。
域
Domains是项目,用户和组的高级容器。每个都归一个域所有。每个域定义一个名称空间,其中存在API可见的名称属性。Keystone提供了一个默认域名,名称为“默认”。
在Identity v3 API中,属性的唯一性如下:
-
域名。所有领域的全球独特性。
-
角色名称。在拥有的域内独一无二。
-
用户名。在拥有的域内独一无二。
-
项目名。在拥有的域内独一无二。
-
团队名字。在拥有的域内独一无二。
由于其容器架构,域可以用作委派OpenStack资源管理的方式。如果授予适当的分配,则域中的用户仍可以访问另一个域中的资源。
作业
Assignment服务提供有关 角色 和 角色分配的数据 。
角色
Roles规定最终用户可以获得的授权级别。角色可以在域或项目级别授予。可以在单个用户或组级别分配角色。角色名称在拥有域中是唯一的。
角色分配
一个3元组,有一个Role,一个Resource和一个Identity。
令牌
一旦用户的凭证已经过验证,令牌服务就会验证和管理用于验证请求的令牌。
二、登陆并修改openstack管理员密码
在完成openstack搭建后,按照http://serverip/dashboard/ 登陆,登陆提示会需要admin管理员账户密码。默认密码保存在keystonerc_admin 文件
cat keystonerc_admin
export OS_PASSWORD后面就是默认密码,后进入dashboard界面登陆
登陆进去后,可以在设置修改管理员密码
完成后,同时要修改 keystonerc_admin文件中export OS_PASSWORD后密码,然后按照如下命令配置生效
source keystonerc_admin #重新加载
注意,admin用户是管理员,可以拥有整个资源的权限,默认分配到admin的项目组中,所以在管理界面修改完成管理员密码后必须修改keystonetc_admin的文件的中的密码,不然会导致其他组件服务认证失败
三、创建项目与用户
3.1创建项目
首先创建一个项目,在身份管理中点击项目
创建项目名称为test-cloud,域信息和域ID因为是测试环境,都保持默认
项目成员为登陆云服务的租户名称,可以后期添加,目前保持默认,配额是限制该项目资源的使用,测试环境下保持默认即可
点击完成创建,即可创建好项目test_cloud,可以作为vdc(虚拟数据中心)提供给租户使用
3.2创建用户
为test_cloud创建一个管理员,负责分配资源,名称为vdc_admin。在身份验证-用户中创建,如下所示:
说明:
1、选择项目test_cloud代表使用此资源
2、选择角色_member_
然后再以vdc_admin登陆openstack,可以看到可获取的资源的明显不同
四、创建外部网络
4.1 openstack中网络概念
在openstack中,所有的网络服务都是由neutron实现。openstack官方对neutron中描述如下:
OpenStack网络(neutron)管理OpenStack环境中所有虚拟网络基础设施(VNI),物理网络基础设施(PNI)的接入层。OpenStack网络允许租户创建包括像 firewall , :term: ` load balancer`和 :term: ` virtual private network (×××)`等这样的高级虚拟网络拓扑。
网络服务提供网络,子网以及路由这些对象的抽象概念。每个抽象概念都有自己的功能,可以模拟对应的物理设备:网络包括子网,路由在不同的子网和网络间进行路由转发。
对于任意一个给定的网络都必须包含至少一个外部网络。不像其他的网络那样,外部网络不仅仅是一个定义的虚拟网络。相反,它代表了一种OpenStack安装之外的能从物理的,外部的网络访问的视图。外部网络上的IP地址可供外部网络上的任意的物理设备所访问
外部网络之外,任何 Networking 设置拥有一个或多个内部网络。这些软件定义的网络直接连接到虚拟机。仅仅在给定网络上的虚拟机,或那些在通过接口连接到相近路由的子网上的虚拟机,能直接访问连接到那个网络上的虚拟机。
如果外部网络想要访问实例或者相反实例想要访问外部网络,那么网络之间的路由就是必要的了。每一个路由都配有一个网关用于连接到外部网络,以及一个或多个连接到内部网络的接口。就像一个物理路由一样,子网可以访问同一个路由上其他子网中的机器,并且机器也可以访问路由的网关访问外部网络。
另外,你可以将外部网络的IP地址分配给内部网络的端口。不管什么时候一旦有连接连接到子网,那个连接被称作端口。你可以给实例的端口分配外部网络的IP地址。通过这种方式,外部网络上的实体可以访问实例.
neutron利用了 linux 重要网络技术,相关概念如下:
bridge:网桥,Linux中用于表示一个能连接不同网络设备的虚拟设备,linux中
传统实现的网桥类似一个hub设备,而ovs管理的网桥一般类似交换机。
br-int:bridge-integration,综合网桥,常用于表示实现主要内部网络功能的网
桥。
br-ex:bridge-external,外部网桥,通常表示负责跟外部网络通信的网桥。
GRE:General Routing Encapsulation,一种通过封装来实现隧道的方式。在
openstack中一般是基于L3的gre,即original pkt/GRE/IP/Ethernet
VETH:虚拟ethernet接口,通常以pair的方式出现,一端发出的网包,会被另
一端接收,可以形成两个网桥之间的通道。
qvb:neutron veth, Linux Bridge-side
qvo:neutron veth, OVS-side
TAP设备:模拟一个二层的网络设备,可以接受和发送二层网包。
TUN设备:模拟一个三层的网络设备,可以接受和发送三层网包。
iptables:Linux 上常见的实现安全策略的防火墙软件。
Vlan:虚拟 Lan,同一个物理 Lan 下用标签实现隔离,可用标号为1-4094。
VXLAN:一套利用 UDP 协议作为底层传输协议的 Overlay 实现。一般认为作
为 VLan 技术的延伸或替代者。
namespace:用来实现隔离的一套机制,不同 namespace 中的资源之间彼此
不可见。
Neutron管理下面的实体:
网络:隔离的 L2 域,可以是虚拟、逻辑或交换。
子网:隔离的 L3 域,IP 地址块。其中每个机器有一个 IP,同一个子网的主机彼此 L3 可见。
端口:网络上虚拟、逻辑或交换端口。 所有这些实体都是虚拟的,拥有自动生成的唯一标示id,支持CRUD功能,并在数据库中跟踪记录状态。
网络隔离的 L2 广播域,一般是创建它的用户所有。用户可以拥有多个网络。网络是最基础的,子网和端口都需要关联到网络上。网络上可以有多个子网。同一个网络上的主机一般可以通过交换机或路由器连通起来。
子网隔离的 L3 域,子网代表了一组分配了 IP 的虚拟机。每个子网必须有一个 CIDR 和关联到一个网络。IP 可以从 CIDR 或者用户指定池中选取。子网可能会有一个网关、一组 DNS 和主机路由。不同子网之间 L3 是互相不可见的,必须通过一个三层网关(即路由器)经过 L3 上进行通信。
端口可以进出流量的接口,往往绑定上若干 MAC 地址和 IP 地址,以进行寻址。一般为虚拟交换机上的虚拟接口。虚拟机挂载网卡到端口上,通过端口访问网络。当端口有 IP 的时候,意味着它属于某个子
逻辑概念如下图所示:
大致架构如下:(VLAN模式)
由于本次采用allinone的部署,控制节点和网络节点合并在一起,同时,测试环境下只有一个网卡。
4.2将neutron与外部网络连接
neuntron主要是通过br-ex与外部网络连接通讯
首先将/etc/sysconfig/network-scripts/ifcfg-ens192(实际情况物理网卡名称可能不同,如kvm中为eth0),复制为/etc/sysconfig/network-scripts/ifcfg-br-ex,
编辑/ etc / sysconfig / network-scripts / ifcfg-br-ex,重点修改如下内容
DEVICE=br-ex DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static IPADDR=172.31.208.100 # 这个ip地址就是ens01网卡的ip地址 NETMASK=255.255.255.0 GATEWAY=192.168.122.1 DNS1=192.168.122.1 ONBOOT=yes
然后修改/etc/sysconfig/network-scripts/ifcfg-ens192
DEVICE=ens192 TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=br-ex ONBOOT=yes
完成修改保存后,重启网络服务
systemctl restart network
现在,使用Neutron创建外部网络。
. keystonerc_admin neutron net-create external_network --provider:network_type flat --provider:physical_network extnet --router:external
然后我们就可以在openstack dashbord中看到创建好的外部网路
4.2 配置子网
使用之间创建好的vdc_admin登陆,开始创建网络,名称为public
然后定义子网private_network网段为分配私网网段,192.168.1.0/24
下一步,定义子网dhcp地址范围和dns信息,这里不用添加主机路由
完成私网网络配置后,还需要配置一个路由器,虚拟机实例分配到私网地址后,通过该路由器进行snat到exernal网络,再到外部物理网络
然后点击新建的路由器router,添加接口
此时就完成了路由器的添加。
此时查看网络拓扑,如下所示:
可以看,虚拟网络public已经通过虚拟机路由器与外部网络是连通的了
配置完成,可以再命令行中验证创建的网络情况
以上所述就是小编给大家介绍的《openstack-修改管理员密码与创建外部网路》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 关于训练神经网路的诸多技巧Tricks(完全总结版)
- TCP协议灵魂之问,巩固你的网路底层基础
- Netty基础系列(1) --linux网路I/O模型
- Red Hat 推出 Ansible 2.3 引入网路模组及持久连线框架
- Harbor 任意管理员注册漏洞
- 我的第一个python web开发框架(38)——管理员管理功能
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux内核设计的艺术
新设计团队 / 机械工业出版社华章公司 / 2011-6-20 / 79.00元
关于Linux内核的书已经不计其数,但这本书却是独树一帜的,它的内容代表着Linux内核研究成果的世界顶尖级水平,它在世界范围内首次提出并阐述了操作系统设计的核心指导思想——主奴机制,这是所有操作系统研究者的一笔宝贵财富。本书可能也代表着同类图书的顶尖水平,是一本真正能引导我们较为容易地、极为透彻地理解Linux内核的经典之作,也可能是当前唯一能从本质上指引我们去设计和开发拥有自主知识产权的操作系......一起来看看 《Linux内核设计的艺术》 这本书的介绍吧!