Openstack管理框架分析以及创建


Openstack管理框架分析及创建(domain、project、service、role、user……)
By Eli·kang
elikang819@foxmail.com



图:openstack管理框架


1、》》》 创建域(域是登陆的时候指定的):
Domains:表示一组projects和users的集合。
每一个project或user只能属于一个domain,但user可以属于多个projects。domain有命名空间的概念,即在一个命名空间内的名称是否是全局唯一。

openstack domain create --description "Default Domain" default


2、》》》 创建project(基本等同G版之前的Teant,租户概念)
project是域名下子项,辅之以user(用户)、role(角色:管理权限),可以实现对管理范围的限制。

创建service项目:
openstack project create --domain default
\
--description "Service Project" service

创建admin项目:
openstack project create --domain default \
--description "Admin Project" admin


创建demo项目:
openstack project create --domain default
\
--description "Demo Project" demo

3、》》》创建role(角色)
openstack创建的角色没有其它参数限制,所以应该是全局通用的。  

创建admin角色:
openstack role create admin


创建user角色:
openstack role create user


4、》》》 创建user(用户)

用户分为两大类:
一类是为openstack的部分组件创建的 访问用户,这一类用户的角色都是admin的;
另一类是管理员登陆用的 管理用户,这一类又可以分为两种,一种是具有所有权限的超级管理员,角色也是admin;另一种是只能管理分配的project,这一种用户只具有部分权限,角色是user。

admin角色的用户可以创建admin角色的其它用户,可见,admin的角色权限很大,轻易不能透露。
另外keystone不需要创建用户,因为它就是管理所有授权服务的啊,所以在创建以上项目的时候需要首先创建好keystone服务。 Keystone提供3A(Account, Authentication, Authorization)服务。除了3A之外,Keystone还对外提供服务目录(Service Catalog)服务,类似于UDDI服务的概念,用户(无论是Dashboard, API Client)都需要访问Keystone获取服务列表,以及每个服务的地址(Openstack中称为Endpoint)。
实际运行过程,当创建的用户向keystone申请权限时,keystone对用户鉴权完毕之后,会为用户颁发一个令牌,这样用户在请求其他服务的时候,只需要亮出自己的令牌即可,而不需要发送自己的密钥。当然为了防止仿冒令牌,令牌是有时限的。所有的用户都可以通过TOKEN来创建,所以TOKEN的安全也十分重要。


首次创建用户之前,需要先配置好环境变量
export OS_TOKEN=2a392914a9f6dade3f14;
export OS_URL=http://controller:35357/v3;
export OS_IDENTITY_API_VERSION=3;

创建admin用户:这里需要输入密码
openstack user create --domain default
\
--password-prompt admin

将admin角色添加到admin项目和admin用户中:
openstack role add --project admin --user admin admin


创建demo用户:
openstack user create --domain default
\
--password-prompt demo
将user角色添加到demo项目和demo用户中:
openstack role add --project demo --user demo user
 

创建用户完成之后要去除环境变量:
unset OS_TOKEN OS_URL;

注意:
1、所有的用户都可以通过TOKEN来创建,所以TOKEN的安全也十分重要。
2、admin角色的用户可以创建admin角色的其它用户,所以要注意帐户的保护。
   user角色的用户没有权限创建新的用户,可以分配给普通管理人员使用。
3、一个用户可以关联多个项目,使用role add可以设定。

4、Openstack 中, 以租户作为云主机隔离的单位,project 等同于 tenant。在管理openstack时候, 需要添加独立的project, 然后每个project具有独立的用户、网络、云主机等。Keystone虽然存在keystone tenant-list 命令用于查看租户,但是由于Tenant概念在G版被废弃,新版本已经不支持这个命令了。


*********************************************************************

5、》》》创建service(服务:glance、nova、neutron等等)

需要创建的组件中,keystone组件要首先创建,而且上面的所有管理的规划要在创建keystone之后才可以进行,它是管理所有权限的服务嘛,而其它本身不需要创建用户。其它的服务组件都是需要创建访问用户的,并且需要分配admin的角色给帐户,这样就可以实通过访问用户和keystone进行交互,进而可以实现权限的管理。

再一个就是,每个服务组件都需要在openstack中注册,注册的endponit是由keystone来管理的。Endpoint,翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。因此,在keystone中包含一个endpoint模板(endpoint template,在安装keystone的时候我们可以在conf文件夹下看到这个文件),这个模板提供了所有存在的服务endpoints信息。一个endpoint template包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,并且具有public、private和admin这三种权限。public url可以被全局访问(如http://compute.example.com),private url只能被局域网访问(如http://compute.example.local),admin url被从常规的访问中分离。

keystone:
The Identity service provides authentication services for each OpenStack service.
The authentication service uses a combination of
domains , projects (tenants), users , and roles .

创建service:
openstack service create
\
--name keystone --description "OpenStack Identity" identity

创建endponit,public/internal/admin:
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



glance:

创建glance用户:
openstack user create --domain default --password-prompt glance;
将admin角色添加到service项目和glance用户中:
openstack role add --project service --user glance admin;


创建glance服务:
openstack service create --name glance
\
--description "OpenStack Image" image;

创建glance endponit:
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

nova:

创建nova用户:
openstack user create --domain default
\
--password-prompt nova;
将nova用户的角色设为admin:
openstack role add --project service --user nova admin; \


创建nova服务:
openstack service create --name nova \
--description "OpenStack Compute" compute;
创建nova endponit:
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



neutron:

创建neutron用户:
openstack user create --domain default --password-prompt neutron;
将neutron用户的角色设为admin
openstack role add --project service --user neutron admin;



创建neutron服务:
openstack service create --name neutron
\
--description "OpenStack Networking" network;
创建neutron的endponit:
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

……
……
















参考:http://www.2cto.com/kf/201302/187655.html
http://blog.sina.com.cn/s/blog_60f6c9680101bn75.html

本文由elikang整理,鉴于本人知识能力的不足,本文许多欠缺之处,欢迎指正。
欢迎加QQ群讨论 :云计算- 532524739 ,聚焦docker && openstack。群里会不断分享有关云计算的资料。




  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值