二·Openstack 管理项目与用户

(本文所有提及OSP=OpenStack Platform)

1 管理项目

1) OpenStack 项目简介:

● Linux 中通过实施用户和组来控制对操作系统资源的访问
● OSP 利用域、项目、组和用户来组织OpenStack 资源
● admin 用户可用于登录Horizon 控制面板或通过命令行管理OpenStack。此
● admin 用户类似于Linux 操作系统中的root 用户。此用户属于admin 项目在OpenStack 中,身份验证和授权服务由OpenStack 身份服务提供, 其代号为 Keysto n e
● 用户通过身份服务API 端点进行身份验证,然后请求其它OpenStack 服务
● OSP 支持Keystone API 的版本2 和3,本课程使用版本2

2 )OpenStack 身份服务所用的术语:

● 项目:用户及其拥有的资源的集合。根据云提供商,这可用于映射客户、帐户或组织单元。OSP 附带了两个项目,名为admin 和services。 这两个项目属于default 域

● 用户: 代表使用OpenStack 服务的人员或云用户。RHOSP 附带了admin用户,该用户从属于admin 项目并且分配有admin 角色。

● 角色: 定义一组特权, 从而能够对OpenStack 服务执行特定的操作。RHOSP 附带了两个预定义角色,即admin 和 member_。member 角色提供项目中资源的普通用户访问权限。admin 角色提供整个OpenStack 环境的管理特权

● 凭据: 是Keystone 验证用户身份时需要的身份验证数据。此信息包含用户名、密码、项目名称、Keystone 端点和地区名称。通过利用此信息,在用户发出访问服务的请求时,Keystone提供身份验证令牌, 让用户能够访问该服务

● 地区: 用于在逻辑上表示不同的RHOSP 部署。这些部署可以按照地理位置来划分,并且相应地命名。例如,一个地区可以命名为in-mumbai,来代表位于印度孟买的OpenStack 部署。这些地区可以进一步划分为子地区

● 组:是域中的用户集合。通过分配角色到组,可以向该组中的所有用户分配特权。将用户从组中删除,便可撤销这些特权以及用户与项目或域的关联。Keystone API 的版本了中支持组

● 域: 是可以在单个身份域中定义的项目和用户的集合。域可以映射到个人、公司或云服务运营商。Keystone API 的版本3 中支持域。如果没有创建域,所有项目和用户都使用default 域

3)管理OpenStack 项目:

● 较早版本的OSP 中曾经使用“租户tenant”一词。项目可以映射到组织、帐户或客户

● 项目有助于用户使用单一OpenStack 环境,不必互相干扰权限和资源。例如,可以将上传到项目的镜像标记为专用镜像,使其他项目中的用户无法访问此镜像

● 可以将多个用户分配到一个项目。分配到项目的用户有权在该项目内创建和管理虚拟资源。一个用户还可与多个项目关联

● 创建和删除项目: 项目可以由admin 帐户创建,也可由分配了项目的admin 角色的用户创建

● 每个项目配置有一组资源配额,可以在创建项目时编辑。删除项目时,会同时移除该项目的所有用户关联

4) 利用OpenStack CLI 创建和删除项目:

● 提供Keystone 凭据文件, 使得OpenStack 命令行工具能够与OpenStack 服务通信。若要创建项目,用户必须具备管理员特权
● 通过openstack project create 命令创建项目。该命令取项目名称作为参数。您可以使用–description 选项指定项目的描述(可选)。项目默认为启用, 可通过–disable 选项使项目的初始状态为禁用
● 通过openstack project delete 命令删除项目。该命令取项目名称或ID 作为选项。您可以利用空格分隔的列表,一次性删除多个项目
● 使用 openstack project list 命令列出所有当前可用的项目,并验证该项目已被删除
# openstack project create--description "Demo Org Project"--domain demo-org--project project-name

2 管理用户

1)OpenStack 用户简介:

● 系统用户是真实的人或者由特定应用使用的帐户
● 用户可以是自服务用户,可以管理实例、卷、网络和新镜像,还可以执行其他任务
● 用户也可以是由OpenStack 服务使用的帐户
● 用户可以访问从属于自己分配到的项目的云资源,就如在任何操作系统中一样,用户可以具有文件和目录的权限
● OpenStack 用户具有一组有限的权限和特权, 由分配给用户的用户角色定义。身份验证是确认用户身份的过程。就如任何Linux 操作系统一样,通过提供用户名和密码来登录系统。OSP 身份服务支持多种身份验证方式,包括用户名与密码、LDAP 以及其他外部身份验证方式
● 身份验证成功后,用户获得访问OpenStack 服务所需的授权令牌
● OpenStack 组: 组在身份服务APIV3 中引入,是域中的用户集合。与Linux 组相似,域中某个组被分配到的组角色会应用到该组中的所有用户。用户添加到组中后,便可使用与这个组所属域关联的身份验证方式。启用身份服务APIV3 后,可以利用Horizon 控制面板或OpenStack 统一CLI 创建组。使用openstack group create 命令创建组。–domain选项用于在特定域中创建组

2)管理OpenStack 用户:

● OSP 提供一个名为admin 的默认用户,该用户具有访问所有项目和域的全部特权。管理员可以利用Horizon 控制面板或OpenStack 统一CLI 创建和编辑用户,并将用户添加到项目或域中的组
● 用户可以从属于多个项目
● 从控制面板管理用户: 使用控制面板创建用户需要管理员特权。控制面板提供选择了相应的选项,可为用户选择主项目、密码和电子邮件地址
● 如果管理员希望防止某一现有用户生成任何服务请求,可以暂时禁用其用户帐户。在控制面板中,导航到Identity > Users。在Actions 列下的列表中,选择Disable User 来禁用该用户
● 在控制面板中的Users 选项卡上,从Actions 列下的列表中选择Enable User 来启用该用户。在创建用户后,使用其用户名和密码登录控制面板,以访问OpenStack 服务从控制面

3)从CLI 管理用户:

● 若要从OpenStack CLI 创建用户,可使用openstack user create 命令
● 若要创建需要以交互式方式输入密码的用户,可使用 -password-prompt 选项在使用OpenStack 命令行客户端时,必须提供用户的Keystone 凭据文件。用户
● 的Keystone 凭据文件设置OpenStack 命令行客户端所需的环境变量

  ● $openstack user create--proj ect demoproj ect--password-prompt demouser
  ● $openstack user create--project demoproject demouser
  ● $ openstack user set--disable demouser
  ● $ openstack user set--enable demouser

4) 从OpenStack CLI 管理用户:

I.提供项目管理员Keystone 凭据文件,以获取管理员权限。
2.使用openstack user create 命令创建用户。默认情况下,所有用户都为启用状态 且分配有 member 用户角色。
3.使用openstack user list 命令可列出所有用户。,使用openstack user show 命令可查看特定用户的详细信息。
4.验证新用户可以访问OpenStack。提供用户的Keystone 凭据文件,然后使用该用户的Keystone 凭据运行任何openstack 命令。
5.以管理员身份,使用openstack user set--disable 命令来禁用用户帐户
6 .验证该用户帐户已被禁用。提供已禁用用户的Keystone 凭据文件,再运行任何openstack命令。
7.以管理员用户身份,更新用户的帐户。使用openstack user set 命令以启用该用户,或更新其电子邮件地址、用户名或密码。–enable 选项可用户启用用户帐户–password-prompt 选项以交互式方式提示输入密码。
8.使用openstack user delete 命令来删除用户。必须将用户名或ID 指定为命令的
参数。
9.通过列出项目中的当前用户,确认该用户已被删除

5) 添加用户到项目:

● 用户可以在创建时添加到项目中。也可利用控制面板或OpenStack CLI 将现有用户添加到项目中。从Horizon 控制面板中,单击Identity > Projects > ManageMembers,在项目中添加或移除用户
● 在OpenStack CLI 中,使用openstack user set--project 命令来更改用户的主项目。若要添加用户到其他项目, 可使用openstack role add 命令。使用此命令可为用户分配项目中的member 角色

3 用户角色与特权

1)用户角色简介:

● 成功通过身份验证后,用户基于其授权获得OpenStack 服务的访问权限。在OpenStack 中,不同服务通过引用与用户关联的角色来提供服务访问权限。角色定义用户通过身份验证后可以执行的操作。
● 分配给从属于某一项目的用户的角色称为用户角色。在KeystoneAPIv3 中,用户从属于组,组则分配到角色。分配给组的角色称为组角色
● admin 用户从属于admin 项目,它分配有admin 用户角色。admin 用户类似于Linux 操作系统中的root 用户,因为它具有全部的管理特权
● OpenStack Platform 附带了admin 和member 两种预定义用户角色。
● admin 角色具备所有项目的资源的全部特权
● 当用户关联到某一项目时(项目成员),会分配到member 用户角色。如果项目中的用户被分配了admin 用户角色,则该用户获得与admin 用户相同的特权。此用户不仅是所属项目的管理员,还能够管理OpenStack 环境中的所有项目
● admin 用户角色因此要预防特权过高问题。这就是说,必须对具有admin 用户角色的用户实施更为严格的身份验证机制,如双重认证等。Keystone APIv3 中引入了域,来克服与admin 用户角色关联的特权过高问题

2)管理用户角色:

● 可以从Horizon 控制面板创建和编辑用户角色
● 以管理员身份,登录Horizon 控制面板并导航到Identity > Roles。若要创建新角色,可单击Create Role。若要为用户分配角色,可在创建该用户时选取角色。可以通过从Identity > Projects 编辑项目成员,为现有的用户分配新用户角色

3)从控制面板管理用户角色:

● 角色定义了一组权限和特权。将角色分配给用户时,用户可继承该角色的权限和特权。用户请求服务时,该服务将解读用户分配到的用户角色,并根据该角色来提供访问权限
I.以具备管理员特权的用户身份,导航到Identity>Projects
2.若要为用户分配角色,首先选择该用户所属的项目。单击Actions 列下的Manage Members
3.在Edit project 对话框中,单击Project Members 选项卡。在Project Members部分中,选择用户的所需角色。单击Save。默认情况下,所有用户在添加到项目时会分配到member 角色

4)从CLI 管理用户角色:

● 使用OpenStack 命令行客户端时,可通过openstack role create role-name 命令来创建用户角色。若要列出用户角色,可使用openstack role list 命令
● 分配用户角色到现有用户:若要从Horizon 控制面板分配用户角色到现有用户可从Identity > Projects 编辑项目成员。在使用OpenStack CLI 时,可通过openstack role add 命令为用户添加角色: $ openstack role add --project demo-project --user demo-user demo-role
● 使用openstack role assignment list 命令可列出分配至项目中某一用户的用户角:
$ openstack role assignment list --project demo-project --user demo-user --names

4 管理配额

Linux 管理员可以实施系统配额,以限制用户访问有限数量的磁盘空间
OSP 项目配额类似于Linux 文件系统配额。OpenStack 管理员可以配置配额来防止系统资源被用尽
项目配额以每个项目为基础设置,限制能够分配给该项目的资源数量
这些运行上的限制可以让管理员更加密切地控制OpenStack 内的项目;例如,基于分配给项目的RAM 量来定义配额。这可用于防止客户端提交超过必要数量的内存,或使用多于其服务协议中的额度
每个项目都有一组默认的配额值。可以为新项目修改这些默认值,也可以为任何现有项目更新它们

1)查看默认项目配额:

● OpenStack 附带有默认配额,为项目提供配额限值。可以通过修改这些值,为项目提供更多资源
● 若要从Horizon 控制面板查看默认配额,请以管理员身份登录,再导航到Admin > System >Defaults.Defaults 选项卡中显示默认项目配额
● CLI查看,使用命令:
$ openstack quota show --default

2)更新默认项目配额:

● 可以通过更新默认配额,为所有项目设置新的额度限值
● 如果使用控制面板,可以管理员身份登录,再导航到Admin > System >Defaults。单击Update Defaults 以更新默认项目配额。
● 在撰写本文时,openstack 命令尚未提供用于更新默认项目配额的命令。管理员可以利用nova quota-class-update default 命令来更新默认项目配额python-novaclient 软件包提供 nova quota-* 命令
● 例如, 运行下列命令可以将实例数量配额设置为15: $ nova quota-class-update default--instances 15

3)利用Horizon 控制面板创建具有配额的项目:

● OpenStack Platform 附带项目的默认配额。可以编辑这些项目配额,对项目的成员定义资源使用量限制。下列步骤描述了创建具有默认配额的项目并在项目创建后编辑这些配额的流程
I.在Web 浏览器中打开控制面板,再以具备管理特权的用户身份登录。导航到Identity >Proj ects
2.单击Create Project 以创建项目。,在:Quotas 选项卡中,所有字段都填充了默认的项目配额限值。例如,Instances的默认配额是10。这表示,在任何一个时间点上项目中最多只能存在10 个实例。单击Save。
3.导航到Identity>Users。创建一个用户,并使其成为项目的成员
4.以管理员身份,导航到Admin>System>Defaults 来查看和编辑默认配额。单击UpdateDefaults,编辑所有项目的默认配额
5.验证默认配额更改。例如,如果您更改了实例数,可以项目成员用户身份登录控制面板再启动一个实例来验证这一更改
6.以管理员身份登录控制面板,来编辑项目的默认配额。导航到Identity>Projects
7.若要编辑项目配额,可选择Actions 列中的Modify Quotas.单击Save
8.以项目成员用户身份登录控制面板再启动一个实例,以验证更新的配额。如果超过了任何配额,Overview 页的Limit Summary 部分中将以红色显示此信息

4)利用OpenStack CLI 创建具有配额的项目:

● 下列步骤概述了通过命令行创建具有默认配额的项目并在项目创建后编辑这些配额的流程
I.提供管理员Keystone 凭据文件,再利用openstack project create 命令创建一个项目
2.利用openstack user create 命令创建作为项目成员的用户
3.利用openstack quotas show--default 命令列出默认项目配额
4.提供管理员的凭据文件,以编辑项目配额。利用openstack quota set 命令编辑项目配额
5.利用openstack quota show 命令列出项目配额,以验证新的配额值

你可能感兴趣的:(OpenStack)