凭证
启动作业,同步playbook脚本,导入项目内容时,需要使用凭证进行身份验证。
可以授予用户和团队使用这些凭据的权限,而无需将凭据公开给用户。
添加到团队的凭据可供团队的所有成员使用,而添加到用户的凭据默认情况下仅对该特定用户可用。
原理
Ansible Tower使用SSH连接到远程主机(或Windows等效主机)。为了将密钥从Tower传递到SSH,必须先解密密钥,然后才能写入命名管道。然后tower使用该管道将密钥发送到SSH(因此它永远不会写入磁盘)。
如果使用密码,Ansible Tower会通过直接响应提示密码并在将密码写入的提示之前解密密码来处理这些密码。
添加新的凭证
![](https://img.haomeiwen.com/i10797253/067d916987e6865c.png)
- 详细信息
- “ 名称”字段中输入新凭据的名称。
- (可选)输入或选择与凭证关联的组织的名称。
- 输入或选择要创建的凭据类型。
- 权限
显示与此凭证相关联的用户和团队,并为他们授予角色(所有者,管理者,审计员)
凭证类型
![](https://img.haomeiwen.com/i10797253/fe86f60884bfe37d.png)
- Machine
计算机凭据使Tower能够在您管理的主机上调用Ansible。就像在命令行上使用Ansible一样,您可以指定SSH用户名,可选的提供密码,SSH密钥,密钥密码,甚至让Tower在部署时提示用户输入密码。它们为playbooks定义ssh和用户级权限升级访问,并在提交作业以在远程主机上运行playbooks时使用。网络连接(httpapi,netconf和network_cli)使用Machine作为凭证类型。
计算机/ SSH凭据不使用环境变量。相反,它们通过Ansible -u标志传递用户名,并在底层SSH客户端提示输入时交互地写入SSH密码。
![](https://img.haomeiwen.com/i10797253/9c3399bff4b56ee3.png)
-
用户名:用于SSH身份验证的用户名。
-
密码:用于SSH身份验证的实际密码。如果输入,此密码将以加密方式存储在Tower数据库中。或者,您可以通过选择启动时提示,将Tower配置为在启动时向用户询问密码。在这些情况下,启动作业时会打开一个对话框,提示用户输入密码和密码确认。
-
SSH私钥:复制或拖放机器凭据的SSH私钥。
-
私钥密码:如果使用的SSH私钥受密码保护,则可以为私钥配置密钥密码。如果输入,此密码将以加密方式存储在Tower数据库中。或者,您可以通过选择启动时提示,将Tower配置为在启动时向用户询问密码。在这些情况下,启动作业时会打开一个对话框,提示用户输入密码和密码确认。
-
权限提升方法:指定要分配给特定用户的提升权限的类型。这相当于指定--become-method=BECOME_METHOD参数,其中BECOME_METHOD可以是。sudo | su | pbrun | pfexec | dzdo | pmrun
- 空选择:不为此凭据分配权限提升。
- sudo:使用超级用户(root用户)权限执行单个命令
- su:切换到超级用户(root用户)帐户(或其他用户帐户)
- pbrun:请求在受控帐户中运行应用程序或命令,并提供高级root权限委派和键盘记录。
- pfexec:使用预定义的进程属性(例如特定用户或组ID)执行命令。
- dzdo:在Centrify的Active Directory服务中使用RBAC信息的增强版sudo(参见Centrify 在DZDO上的站点)
- pmrun:请求应用程序在受控帐户中运行(请参阅Unix 6.0权限管理器)
- runas:允许您以当前用户身份运行。
-
仅当选择了权限提升选项时,才会看到权限提升用户名字段。输入要在远程系统上使用升级权限的用户名。
-
Privilege Escalation Password:仅在选择了权限提升选项时才会看到该字段。输入用于通过远程系统上选定的权限提升类型对用户进行身份验证的实际密码。如果输入,此密码将以加密方式存储在Tower数据库中。或者,您可以通过选择启动时提示,将Tower配置为在启动时询问用户密码。在这些情况下,启动作业时会打开一个对话框,提示用户输入密码和密码确认。
Sudo密码必须与SSH密码或SSH私钥结合使用,因为在调用sudo以更改为sudo用户之前,Tower必须首先与主机建立经过身份验证的SSH连接。
- Amazon Web Services 选择此凭据类型可实现云主机列表与Amazon Web Services的同步。
- Ansible Tower 选择此凭据可以访问另一个Tower实例
- Google Compute Engine 选择此凭据类型可以将云主机列表与Google Compute Engine(GCE)同步。
- Insights 选择此凭据类型可以使云主机列表与Red Hat Insights同步。
- Microsoft Azure Resource Manager选择此凭据类型可以使云主机列表与Microsoft Azure资源管理器同步
- Network
仅当您使用与提供商的本地连接时才选择网络凭据类型,以使用Ansible网络模块连接和管理网络设备。连接到网络设备时,凭据类型必须与连接类型匹配:
对于local使用的连接provider,凭证类型应为网络
对于所有其他网络连接(httpapi,netconf和network_cli),凭证类型应为Machine - OpenStack 选择此凭据类型可以使云主机清单与OpenStack同步。
- Red Hat CloudForms选择此凭据类型可实现云主机清单与Red Hat CloudForms的同步。
- Red Hat Satellite 6选择此凭据类型可以使云存储与Red Hat Satellite 6同步。
- Red Hat Virtualization此凭证允许Tower访问Ansible的oVirt4.py动态库存插件,该插件由Red Hat Virtualization(RHV)管理。
- Source ControlSCM(源代码管理)凭据与Projects一起使用,以从远程修订控制系统(如Git,Subversion或Mercurial)克隆和更新本地源代码存储库。
- Vault选择此凭据类型可以使库存与Ansible Vault同步。
- VMware vCenter选择此凭据类型可以使库存与VMware vCenter同步。
自定义凭证类型
作为具有超级用户访问权限的Tower管理员,您可以使用类似YAML / JSON的定义以标准格式定义自定义凭据类型,从而允许为作业和库存更新分配新凭据类型。
自定义凭据支持以下注入其身份验证信息的方法:
- 环境变量
- Ansible额外变量
- 基于文件的模板(即生成.ini或.conf包含凭证值的文件)
您可以将一个SSH和多个云凭据附加到作业模板。每个云凭证必须是不同的类型。换句话说,只允许一个AWS凭证,一个GCE凭证等。在Ansible Tower 3.2及更高版本中,value凭证和machine凭证是单独的实体。
注意:当创建一个新的证书类型,您有责任避免碰撞extra_vars,env以及文件的命名空间。此外,请避免使用环境变量或额外的变量名称,ANSIBLE_因为它们是保留的。您必须具有超级用户权限才能创建和编辑凭据类型(CredentialType)并能够查看该CredentialType.injection字段。
网友评论