问题描述
在使用AWX时,遇到了一个问题。他的清单中有很多主机,使用相同的凭据进行连接,但是有一个主机需要使用不同的凭据。在建立SSH连接后,他们会使用su进行特权升级。当他在AWX中创建一个作业模板,并将其限制在这个“特殊”主机上时,一切都正常。但是,他希望将作业模板应用于所有主机。因此,他想在作业模板中设置默认凭据,并在这个单独的主机上使用主机变量设置凭据。他希望使用以下变量:
– ansible_become
– ansible_user
– ansible_password
– ansible_become_method
– ansible_become_user
– ansible_become_pass
他不希望在AWX中以明文形式存储密码,所以他了解到可以使用vault进行加密。但是,如果我理解正确的话,这意味着他需要在AWX中创建一个新的凭据,并将其分配给作业。但这对他来说行不通,因为他将无法连接到其他主机。
他想知道是否有可能将ansible_become_pass
加密并分配给这个单独的主机。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在AWX中,可以使用vault来加密凭据。您可以将加密的凭据分配给单个主机,以确保安全性。以下是实现这一目标的步骤:
1. 在AWX中创建一个新的凭据,将其设置为vault类型。
2. 使用vault加密ansible_become_pass
密码,并将其分配给这个单独的主机。
3. 在作业模板中使用这个新的凭据。
下面是具体的步骤:
1. 在AWX中导航到“凭据”页面。
2. 点击“添加”按钮,创建一个新的凭据。
3. 在“类型”字段中选择“Vault”。
4. 在“凭据值”字段中输入您的ansible_become_pass
密码,并点击“保存”。
5. 在AWX中导航到“清单”页面。
6. 找到您想要分配加密凭据的单个主机,并点击它。
7. 在主机页面的“变量”选项卡中,添加一个名为ansible_become_pass
的变量,并将其值设置为您在步骤4中创建的加密凭据。
8. 在作业模板中,将新的凭据分配给所有主机。
现在,您的作业模板将使用加密的凭据,并且只有这个单独的主机可以解密它。
方案2
如果您不想使用vault来加密凭据,您可以考虑使用其他方法来确保安全性。例如,您可以使用SSH密钥对来进行身份验证,而不是使用密码。这样,您就不需要在AWX中存储密码了。您可以在主机上设置SSH密钥对,并在AWX中使用这些密钥对进行连接。
请注意,这种方法需要您在主机上设置SSH密钥对,并在AWX中配置正确的密钥对。
总结
在AWX中,您可以使用vault来加密凭据,并将加密的凭据分配给单个主机。这样,您可以确保凭据的安全性。另外,您还可以考虑使用SSH密钥对来进行身份验证,以避免在AWX中存储密码。
希望这些解决方案对您有所帮助!如果您有任何其他问题,请随时提问。