金鱼哥RHCA回忆录:DO447管理清单和凭据--创建静态清单

举报
金鱼哥 发表于 2022/06/24 11:49:27 2022/06/24
【摘要】 第八章 管理清单和凭据--创建静态清单

🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥


📜8.1.1 Ansible清单

Ansible Playbooks运行一个主机和主机组的清单。Ansible可以选择部分或所有清单作为目标系统,通过任务执行进行管理。如果没有Red Hat Ansible Tower, Ansible将这个目录定义为静态清单,或者通过脚本从外部源动态地定义。
在这里插入图片描述

存在两个隐式组。组all包含目录中的所有主机。未分组的组包括除“all”之外不属于任何组的所有主机。在前面的示例中,唯一未分组的主机是london1.example.com

在Ansible Tower中,清单是作为对象进行管理的,并且可以通过两种不同的方式进行配置。本节将介绍如何将清单设置为静态清单,并使用RBAC控制对它的访问,使用Tower的web界面。


📜8.1.2 在Ansible Tower中创建清单

在Ansible Tower中,清单作为对象进行管理。每个组织可能有许多可用的清单。在创建作业模板时,可以将它们配置为使用属于该组织的特定清单。Tower上哪些用户可以使用清单对象是由他们在清单中的角色决定的。

本节将着眼于如何使用Tower的web用户界面从无到开始创建一个新的清单对象,并使用前面的清单文件样本作为模型。后面的部分将介绍配置目录的其他方法。

下面的过程演示了如何将前面显示的示例Ansible清单实现为分配给Default组织的名为Mail服务器的静态清单资源。

  1. 以为Default组织分配Admin角色的用户登录。

  2. 点击屏幕左侧的inventory快速导航链接。

  3. 创建一个新的清单。在inventory屏幕上,单击+按钮。

    从下拉菜单中选择Inventory在NEW INVENTORY屏幕上,需要INVENTORY的NAME和它的ORGANIZATION。对于本例,使用Mail servers作为NAME,并单击放大镜图标以选择Default组织。单击SAVE。

  4. 添加主机london1.example.com到清单。

  5. 将east组添加到清单中。

    点击屏幕左侧的inventory快速导航链接。在inventory屏幕上,单击Mail servers链接。

    在MAIL SERVERS清单详细信息屏幕上,单击GROUPS按钮。单击+按钮。在CREATE GROUP屏幕上,在NAME字段中输入east。单击REATE GROUP屏幕上的SAVE按钮,最终将组添加到清单中。
    在这里插入图片描述

  6. 将northeast组和southeast组添加为之前添加到清单中的east组的子组。

    在MAIL SERVERS清单详细信息屏幕上,单击GROUPS按钮。

    单击east主机组。在east的组详细信息屏幕上,单击GROUPS按钮。
    在这里插入图片描述

在east组详细信息屏幕上,单击+按钮。从下拉菜单中选择New Group。在CREATE GROUP屏幕上,在NAME字段中输入southeast。单击CREATE GROUP屏幕上的SAVE按钮,以完成向清单中添加子组的操作。在EAST组详细信息屏幕上,再次单击+按钮,并为northeast组重复操作。
在这里插入图片描述

  1. 添加raleigh1.example.com和atlanta1.example.com托管到之前添加到清单中的southeast子组。

    在east组详细信息界面,单击southeast组链接。

    在southeast组详细信息界面,单击“HOSTS”按钮。单击+按钮,从下拉菜单中选择New Host。在“CREATE HOST”界面中输入raleigh1.example.com字段。单击CREATE HOST屏幕上的SAVE按钮,将主机添加到子组中。

    在SOUTHEAST组详细信息屏幕上,再次单击+按钮。重复此过程以添加atlanta1.example.com主机
    在这里插入图片描述

  2. 添加boston1.example.com主机到northeast子组。

    在EAST组详细信息界面,单击northeast组链接。

    在NORTHEAST组详细信息屏幕上,单击HOSTS按钮。单击+按钮,并从下拉菜单中选择New Host。在“CREATE HOST”界面中输入boston1.example.com。单击CREATE HOST屏幕上的SAVE按钮,将主机添加到子组中。
    在这里插入图片描述

  3. 完成的Mail Servers清单屏幕看起来类似如下:
    在这里插入图片描述


📜8.1.3 清单角色

前一节介绍了如何分配RBAC角色以允许用户和团队查看和管理团队和组织。还可以通过分配角色来允许他们查看和管理其他对象,比如清单。

可以通过为清单分配适当的角色,为用户和团队分配读取、使用或管理清单的能力。在某些情况下,可以间接继承授予使用目录权限的角色,而不是直接将角色分配给用户或团队。

下面是一个清单中可用的角色列表:

📑Admin

清单管理角色向用户授予对清单的完全权限。这些权限包括删除和修改目录。此外,此角色还授予与目录角色Use、Ad Hoc和Update相关的权限。


📑Use

清单Use角色授予用户在作业模板资源中使用清单的能力。这可以使用作业模板的剧本控制使用哪个清单来启动作业。


📑Ad Hoc

清单Ad Hoc角色授予用户使用清单执行临时命令的能力。在Ansible Tower用户指南中详细讨论了如何使用Ansible Tower执行特殊命令。


📑Update

清单Update角色授予用户从外部数据源更新动态清单的能力。


📑Read

清单Read角色授予用户查看清单内容的能力。

当首次创建一个清单时,只有对该清单所属组织具有Admin、inventory Admin或Auditor角色的用户才能访问它。所有其他访问都必须特别配置。

这可以通过如上所述为用户和团队分配适当的角色来完成。在为用户和团队分配角色之前,必须创建并保存目录。


角色是通过清单编辑器屏幕的PERMISSIONS部分分配的(可以通过名称旁边的铅笔图标访问)。下面的过程详细说明了在目录中分配用户和团队角色的步骤:

  1. 在创建目录的组织中,以具有Admin角色的用户登录。

  2. 单击快速导航链接中的inventory,显示组织的清单列表。

  3. 点击物品栏的铅笔图标,进入物品栏的编辑器界面。

  4. 在清单的编辑器屏幕上,单击PERMISSIONS按钮进入权限编辑器。

    将出现一个列表,列出用户和团队及其分配的角色。如果角色旁边有X,单击它从用户中删除该角色。

  5. 单击+按钮添加权限。

  6. 在ADD USERS/TEAMS选择屏幕中,单击USERS或TEAMS。选择要分配新角色的用户或团队旁边的复选框。

  7. 在“请为所选用户/团队分配角色”下拉菜单中,单击“选择角色”下拉菜单。为每个用户或团队选择所需的清单角色。单击KEY查看清单角色及其定义的列表。

  8. 单击SAVE以完成新角色。


📜8.1.4 配置清单变量

Ansible支持将值应用于特定主机(主机变量)或主机组(组变量)上的变量的清单变量。

如果您单独使用Ansible,建议设置清单变量的方法是在与清单文件相同的工作目录中使用host_vars和group_vars目录。这些目录包含以它们所代表的主机或主机组命名的YAML文件,这些文件定义了应用于该主机或主机组的变量和值。通过为特殊的all组定义变量,可以将变量分配给目录中的所有主机。

例如,文件group_vars/southeast可能将ntp变量的值定义为ntp-se.example.com

---
ntp: ntp-se.example.com

当你在Ansible Tower web Ul管理一个静态清单,您可以直接在inventory对象中定义清单变量,而不是使用host_vars和group_vars目录。


📑重要

如果项目确实有host_vars或group_vars文件来设置应用于剧中主机的清单变量,那么它们将被尊重。然而,你不能在Tower的web UI中编辑这些文件。

此外,如果在两个项目文件中定义了相同的主机或组变量,并且在通过web UI管理的静态清单对象中定义了相同的值,那么很难预测Tower将使用哪个值。

当在Tower的web UI中使用静态清单管理时,通过在一个地方或另一个地方设置清单变量来避免这样的冲突。

在INVENTORIES屏幕上,可以通过点击inventory名称旁边的Edit inventory(铅笔)图标来设置变量。在详细信息界面中,您可以设置影响清单中所有主机的变量:
在这里插入图片描述

当在目录中创建一个主组时,可以在CREATE group屏幕的variables字段中使用YAML或JSON定义组变量。也可以通过单击目录中主机组名称旁边的Edit group(铅笔)图标来设置组变量。这些变量适用于属于这个组的所有主机:
在这里插入图片描述

同样,当在目录中创建单个主机时,可以在CREATE host屏幕的variables字段中使用YAML或JSON定义主机变量。或者,单击目录中主机名称旁边的Edit host(铅笔)图标。一旦创建。定义主机变量。以这种方式定义的变量只适用于特定的主机。
在这里插入图片描述

📑重要:

清单变量可以被具有更高优先级的变量覆盖。作业模板中定义的额外变量和剧本变量都比清单变量具有更高的优先级。


📜8.1.5 课本练习

[student@workstation ~]$ lab host-inventory start

📑1. 以“admin”帐号和“redhat”密码登录Ansible Tower。


📑2. 创建一个名为Prod的静态清单。

2.1 单击左侧快速导航栏中的inventory,打开inventory页面。

2.2 点击+按钮添加一个新的清单。

2.3 从下拉菜单中选择正常的Inventory类型

2.4 在下一画面中,详细信息如下所示:
在这里插入图片描述
2.5 单击SAVE创建新的Inventory。您将被重定向到清单详细信息页面。


📑3. 在Prod清单中创建prod-servers组。

3.1 单击GROUPS按钮。

3.2 单击+按钮添加一个新组。

3.3 在下一画面中,详细信息如下所示:
在这里插入图片描述
3.4 单击SAVE创建新组。


📑4. 将主机servere.lab.example.com添加到prod Inventory中的prod-servers组中。

4.1 单击“HOSTS”按钮,将主机添加到刚刚创建的组中。

4.2 单击+按钮将新主机添加到组中。从下拉菜单中选择New Host。

4.3 在下一画面中,详细信息如下所示:
在这里插入图片描述

4.4 单击SAVE添加新主机。


📑5. 将Operations团队Admin角色分配给Prod清单。

5.1 单击左侧快速导航栏中的inventory。

5.2 在Prod Inventory条目的同一行上,单击铅笔图标来编辑Inventory。

5.3 在下一页中,单击PERMISSIONS来管理产品清单的权限。

5.4 单击+按钮添加权限。

5.5 单击TEAMS可显示可用列表。

5.6 在第一部分中,勾选Operations团队旁边的复选框。这将在第二部分中显示该团队。

5.7 在下面的第二部分中,从下拉菜单中选择Admin角色。

5.8 单击SAVE以完成角色分配。这将您重定向到Prod Inentory的权限列表,现在显示操作团队的所有成员都被分配到Prod Inventory的Admin角色。
在这里插入图片描述
在这里插入图片描述


📑6. 与用户oliver一起验证对Prod清单的访问,oliver属于Operations团队。

6.1 单击右上角的“注销”图标即可注销。然后以oliver的身份登录,密码为redhat123。此用户被分配为操作团队的成员角色。

6.2 单击左侧快速导航栏中的inventory。

6.3 单击前面创建的Prod清单的链接。

6.4 查看prod Inventory的内容,查看其中包含的主机和组。


📑7. 以用户oliver的身份登录添加主机serverf.lab.example.com

7.1 单击prod-servers组的链接,进入该组。

7.2 单击“HOSTS”按钮。

7.3 单击+按钮将新主机添加到组中。从下拉菜单中选择New Host。

7.4 在下一画面中,详细信息如下所示:
在这里插入图片描述

7.5 单击“SAVE”创建主机。


📑8. 将Test Inventory中的Use角色分配给Developers团队。

8.1 单击右上角的“退出”图标退出,然后以admin身份用redhat密码重新登录。

8.2 单击左侧导航栏中的inventory

8.3 在与Test Inventory相同的一行上,单击铅笔图标来编辑Inventory。

8.4 在下一页中,单击PERMISSIONS来管理目录的权限。

8.5 单击+按钮添加权限

8.6 单击TEAMS可显示可用球队列表。

8.7 在第一部分中,选中developer团队旁边的复选框。这将在第一部分下面的第二部分中显示该团队。8.8 在第二部分中,从下拉菜单中选择Use角色。
在这里插入图片描述

8.9 单击SAVE进行角色分配。这将您重定向到Test Inventory的权限列表,它现在显示了开发人员团队的所有成员都被分配了Test Inventory上的Use角色。


📑9. 与属于Developers团队的daniel用户一起验证对Test Inventory的访问。

9.1.单击右上角的“注销”图标即可注销。以daniel的身份登录,密码为redhat123。此用户被分配为开发人员团队的管理员角色。

9.2单击左侧导航栏中的inventory。

9.3.单击Test Inventory的链接。

9.4.查看测试清单的内容,以查看其中包含的主机和组。请注意,即使daniel是开发人员团队的管理员,他也不能管理测试清单,因为您只将清单的Use角色授予开发人员团队。

9.5.点击右上角的登出图标可以登出Tower网站界面。


注意:

这代表了一个真实的场景,在这个场景中,开发人员可以访问测试环境中的系统列表,但不能修改列表。


💡总结

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第八章 管理清单和凭据–创建静态清单 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200