🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥🎈支持我:可点赞👍、可收藏⭐️、可留言📝
📜官网:
https://docs.ansible.com/ansible-tower/3.8.1/html_zh/userguide/projects.html
📜9.1.1 项目
一个Ansible项目代表了至少一个剧本及其相关剧本和角色的集合。无论Ansible Tower是否被使用,它都是一个很好的实践这些材料将在一个版本控制系统中一起管理。Ansible的设计Tower假定大多数Ansible项目都是在一个版本控制系统中进行管理的,并且可以从几个常用的版本控制系统中自动检索项目的更新材料。
在Ansible Tower的web界面中,每个Ansible项目都由一个project资源表示。项目被配置为从版本控制系统(也被Ansible Tower称为源代码控制管理或SCM系统)中检索这些材料。Ansible Tower支持使用Git、Subversion或Mercurial从scm下载和自动获取项目材料更新。
📑注意:
可以简单地将项目复制到Ansible Tower服务器中作为项目基本路径。该目录由/etc/tower/settings.py配置,默认位于/var/lib/awx/projects然而,这不是一个推荐的实践。更新这样的项目需要在Ansible Tower接口之外进行人工干预。它还要求项目管理员可以直接访问Ansible Tower上的操作系统环境进行更改,这降低了Ansible Tower服务器的安全性。最好能从SCM系统中获得项目材料。
📜9.1.2 创建一个项目
下面是创建一个项目来共享现有Git存储库中管理的Ansible Playbooks和角色集合的过程。本节后面的实践练习将更详细地介绍这一点
- 以组织中的Admin角色用户登录Ansible Tower的web界面。
- 单击左侧快速导航栏中的Projects,进入Projects管理界面。
- 点击+按钮来创建新的Project。
- 在name字段中为Project输入唯一的名称。
- 可选地,在description字段中为项目输入一个描述。
- 单击ORGANIZATION字段旁边的放大类图标,显示Ansible Tower内的组织列表。在列表中选择一个组织,单击“选择”。
- 在SCM TYPE下拉菜单中,选择Git选项。
- 在SOURCE DETAILS部分中,在SCM URL字段中输入Git存储库的位置。
- 另外,在SCM BRANCH/TAG/COMMIT字段中,指定存储库的BRANCH、tag或COMMIT来获取内容。
- 如果访问Git存储库需要身份验证,请单击SCM CREDENTIAL字段旁边的放大镜图标,以显示可用SCM凭证的列表。从列表中选择SCM租借,然后单击Select。本节稍后将讨论SCM凭证的创建。
- 最后,选择需要采取的行动来更新项目的SCM源。可用的选项有clean、Delete on Update和Update Revision on Launch。这三个选项将在本节的最后详细讨论
- 单击SAVE以完成Project的创建。
📜9.1.3 项目角色
用户通过分配给业务群组资源的角色,被授予对业务群组资源的权限。用户可以直接分配角色,也可以被分配角色。与往常一样,角色可以直接分配给用户,也可以通过团队间接分配。例如,为了让用户获得特定项目的权限,必须为他们分配或继承该项目的角色。
以下是可用的项目角色列表:
📑Admin
Admin角色授予用户对项目的完全访问权。当在项目中授予此角色时,用户可以删除项目并修改其属性,包括权限。此外,此角色还授予用户Use、Update和Read角色,这将在本节稍后讨论。
📑Use
Use角色为用户提供在模板资源中使用Project的能力。在模板资源中项目的使用将在后面的小节中详细讨论。此角色还向用户授予与Project Read角色关联的权限。
📑Update
Update角色授予用户从SCM源手动更新或安排项目材料更新的能力。此角色还向用户授予与Project Read角色关联的权限。
📑Read
Read角色授予用户查看与项目关联的详细信息、权限和通知的能力。
📜9.1.4 管理项目的访问
第一次创建项目时。它只能由项目组织中具有Admin或Auditor角色的用户访问。
用户的其他访问必须特别配置。创建项目时不能分配角色,但必须通过编辑项目添加角色
角色是在项目编辑器屏幕的PERMISSIONS部分中分配的。以下过程详细说明了为项目设置角色的步骤:
- 以创建业务群组所在组织的Admin角色用户登录。
- 单击左侧快速导航栏中的“项目”,显示项目列表。
- 单击要编辑的项目的铅笔图标,进入项目编辑器屏幕
- 在项目编辑器屏幕上。单击PERMISSIONS按钮进入权限编辑器。
- 单击+按钮添加权限
- 在用户和团队选择屏幕中,单击USERS或TEAMS,然后选择要授予权限的用户或团队。
- 单击KEY显示Project角色及其定义的列表。
- 单击SELECT ROLES下拉菜单,为每个用户或团队选择所需的项目角色。
- 单击SAVE以完成对权限的更改
注意:项目的角色也可以通过用户或团队管理屏幕添加。
📜9.1.5 创建SCM凭据
在本课程的前一节中,您学习了如何使用Machine Credentials,它存储连接到托管主机并在托管主机上执行身份验证任务所需的身份验证信息剧本。源代码控制凭据,也称为SCM凭据,存储身份验证信息,Ansible Tower可以使用这些信息访问存储在版本控制系统(如Git)中的项目材料。SCM凭据存储用户名、密码或私钥(以及私钥密码短语,如果有的话),以验证对源代码控制存储库的访问。
本文概述了创建SCM凭证的过程,这样Ansible Tower就可以从项目的Git存储库中检索剧本、角色或其他材料。
- 作为具有适当角色分配的用户登录:
如果创建一个私有的SCM凭证,那么就没有特定的角色需求。
如果创建属于某个组织的SCM凭证,则以具有该组织的Admir角色的用户登录。
- 单击左侧快速导航栏中的“Credentials”进入“Credentials”管理界面。
- 在CREDENTIAL屏幕上,单击+以创建一个新的CREDENTIAL。
- 在CREATE CREDENTIAL屏幕上,为新CREDENTIAL输入所需的信息。
1. 在name字段中为Credential输入唯一的名称。
2. 如果创建组织凭据,请单击Organization字段旁边的放大类,选择要在其中创建凭据的组织,然后单击 select。如果创建私有凭证,则跳过此步骤。
3. 单击CREDENTIAL TYPE下拉菜单并选择Source Control CREDENTIAL类型,然后单击select。
- 在上一步中选择了源代码控制凭证类型之后,type DETAILS部分将显示相应的字段。
在各自的字段中输入身份验证数据。例如,您可能需要指定USERNAME。如果需要密码,必须在password字段中输入。如果使用SSH私钥进行身份验证,可以复制粘贴或拖放并将私钥放入SCM私钥字段中。该密钥可以是加密的SSH私钥,在这种情况下,您可以在private key passphrase字段中向Ansible Tower提供密码短语。
6.单击SAVE按钮以完成新的SCM凭据的创建。
📜9.1.6 SCM凭据的角色
与机器凭据一样,私有SCM凭据仅供其创建者、系统管理员和系统审计员用户使用。分配给组织的SCM凭据可以通过为用户或团队分配该凭据的适当角色与其他用户共享。
以下是提供用户访问SCM凭证的可用角色列表:
📑Admin
Admin角色授予用户对SCM凭据的完全权限。这些权限包括删除和修改SCM凭证。此角色还授予与凭据Use和Read角色关联的用户权限。
📑Use
Use角色授予用户将SCM凭证与项目资源相关联的能力。此角色还向用户授予与Credential Read角色关联的权限。
Use角色不控制用户自己是否可以使用SCM Credential来更新项目,只控制他们是否可以分配SCM Credential,这样它就可以被项目中具有update角色的人使用。
例如,如果SCM凭据与项目相关联,那么在项目中分配了Update角色的任何用户都可以使用相关联的SCM凭据,而无需授予凭据上的use角色。
📑Read
Read角色授予用户查看SCM凭证的详细信息的能力。
📜9.1.7 管理对SCM凭据的访问
当首次创建组织SCM凭证时,该凭证被分配到的组织中具有管理员或审核员角色的用户只能访问该凭证。其他用户的其他访问权限必须特别配置。
将SCM凭证角色分配给用户或团队,规定了谁拥有SCM的权限属于某个组织的凭据。时不能分配这些权限SCM凭据的创造。它们在创建之后通过编辑Credential进行调整。
角色是通过凭证编辑器屏幕的PERMISSIONS部分分配的。以下过程详细说明了在证书创建之后向分配给组织的SCM凭证授予权限的步骤。
- 在SCM凭证所属的组织上,以具有Admin角色的用户登录。
- 单击左侧快速导航栏中的“Credentials”进入“Credentials”管理界面。
- 单击要编辑的SCM Credential的名称,以进入Credential编辑器屏幕。
- 在Credential编辑器屏幕上,单击PERMISSIONS按钮进入权限编辑器
- 单击按钮添加权限。在用户和团队选择屏幕中,单击USERS或TEAMS,然后选择要授予权限的用户或团队。
- 单击KEY显示Credential角色及其定义的列表
- 单击SELECT ROLES下拉菜单并为每个用户或团队选择所需的Credential角色。
- 单击SAVE以完成对权限的更改。
重要:SCM凭证的权限也可以通过Ansible Tower的设置界面下的用户或团队管理屏幕添加。
📜9.1.8 更新项目
Ansible Tower中的SCM项目资源代表了从SCM源获得的剧本和角色的副本。由于对这些剧本和角色内容的修改是在外部SCM系统中管理的,它们在Ansible Tower Project中的对应项必须定期从SCM源进行更新,以反映新的更改
在Ansible Tower中有几种更新SCM项目资源的方法。正如前面提到的,通过在项目的详细信息屏幕中选择三个SCM更新选项之一,项目可以配置为从它们的SCM源进行更新。
📑Clean
这个SCM更新选项在从源代码控制存储库获得最新版本之前删除了本地修改
📑Delete on Update
这个SCM更新选项在从源代码控制存储库获得最新版本之前完全删除了Ansible Tower上的本地项目存储库。对于大型存储库,这比Clean需要更长的时间。
📑Update on Launch
每当项目用于启动作业时,这个SCM更新选项就会从源代码控制存储库更新项目。更新本身被Ansible Tower作为一个单独的任务进行跟踪。
如果不希望使用这些自动设置,可以手动将Project更新为源代码控制存储库中的最新版本。以下过程概述了从SCM源手动更新项目所需的步骤:
- 作为具有项目中Update角色的用户登录。
- 单击左侧快速导航栏中的“项目”,进入项目管理界面。
- 在项目表中,如果用户具有给定项目的Update角色,则ACTIONS列下会出现一个双箭头图标。
- 要触发手动,立即更新项目,单击它的双箭头图标来启动对其SCM源内容的更新。
📑重要:
Update角色仅指示用户是否可以根据SCM源手动触发Project aqq的更新。它不会影响项目的SCM更新选项配置的更新行为。例如,配置了启动SCM更新选项的项目仍然执行更新,即使当项目由一个没有被授予项目更新角色的用户使用时也是如此。
📜9.1.9 Ansible角色支持
项目可以指定外部的Ansible角色,这些角色作为依赖关系存储在Ansible Galaxy或其他源代码控制存储库中。在项目更新结束时,如果项目的存储库包含包含有效需求的角色目录requirements.yml文件,Red Hat Ansible Tower会自动运行ansible-galaxy来安装角色
ansible-galaxy install -r roles/requirements.yml -p ./roles/ --force
📜9.1.10 课本练习
[student@workstation ~]$ lab provision-project start
📑1. 以admin帐号和redhat密码登录Ansible Tower web。
📑2. 创建创建新项目所需的新源代码控制凭据。
2.1 在左侧导航栏中,单击Credentials来管理Credentials。
2.2 单击按钮以添加新的Credential。
2.3 在下一画面中,详细信息如下所示:
2.4 单击SAVE创建新的Credential。
📑3. 创建一个名为My Webservers DEV的新项目。
3.1 在左侧导航栏中,单击project快速导航链接。
3.2 单击+按钮添加一个新的Project。
3.3 在下一画面中,详细信息如下所示:
ssh://git.lab.example.com/var/opt/gitlab/git-data/repositories/git/my_webservers_DEV.git
3.4 单击SAVE创建新的Project。这将自动触发项目的SCM更新。Ansible Tower使用SCM URL和SCM CREDENTIAL字段中提供的值来拉下该存储库的本地副本。
📑4. 观察项目My Webservers DEV的自动SCM更新。
4.1 向下滚动页面,等待几秒钟。在项目列表中,项目左侧有一个状态图标,My Webservers DEV。该图标开始时为白色,失败时为红色,带有感叹号,成功时为绿色
4.2 单击状态图标以显示SCM更新作业的详细状态页面。正如您在DETAILS窗口中看到的,SCM更新作业像任何其他Ansible Playbook一样运行。
4.3 验证DETAILS部分中作业的STATUS是否显示成功。
📑5. 在My Webservers DEV项目给Developers团队Admin角色。
5.1 在左侧导航栏中,单击project快速导航链接。
5.2 点击My Webservers DEV编辑项目设置
5.3 在下一页中,单击PERMISSIONS来管理项目的权限。
5.4 单击右边的+按钮添加权限。
5.5 单击TEAMS可显示可用列表。
5.6 在第一部分中,选中developer团队旁边的复选框。这将导致团队显示在第一部分下面的第二部分中。
5.7 在下面的第二部分中,从下拉列表中选择Admin角色。
5.8 单击SAVE进行角色分配。这将你重定向到项目的权限列表,My Webservers DEV,现在显示开发团队的所有成员都被分配了项目的管理员角色。
5.9 点击登出图标退出Tower的网页界面。
💡总结
RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。
以上就是【金鱼哥】对 第九章 管理项目和开展作业--为ansible剧本创建一个项目 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!