Ansible 如何使通用AWX作业模板适用于具有不同SSH用户名的计算机?
我在AWX中有一个工作流,它按顺序运行多个作业模板。我想使这些作业模板对prod和非prod环境都通用。机器凭据在作业模板级别而不是作业工作流级别提供,因此,只能提供1个机器凭据。 我也不想在启动时提示选项,因为这与您松散的调度功能。 有没有办法让我的工作模板通用(剧本)?可以在具有不同用户名的多台计算机上运行的ssh?Ansible 如何使通用AWX作业模板适用于具有不同SSH用户名的计算机?,ansible,ansible-awx,Ansible,Ansible Awx,我在AWX中有一个工作流,它按顺序运行多个作业模板。我想使这些作业模板对prod和非prod环境都通用。机器凭据在作业模板级别而不是作业工作流级别提供,因此,只能提供1个机器凭据。 我也不想在启动时提示选项,因为这与您松散的调度功能。 有没有办法让我的工作模板通用(剧本)?可以在具有不同用户名的多台计算机上运行的ssh? 注意:我没有访问AWX服务器的权限。只有用户界面。我不是系统管理员。以下是为实现这一点所做的更改- 编制特定于环境的清单-不要更改任何其他环境的节点部分的状态,这一点很重要,因
注意:我没有访问AWX服务器的权限。只有用户界面。我不是系统管理员。以下是为实现这一点所做的更改-
ansible_连接、ansible_用户、ansible_ssh_传递。Ansible理解ok,它必须使用Ansible_用户Ansible_ssh_pass通过ssh登录到机器。
这样,您就不必在AWX作业模板中提及凭据,并且在模板级别将机器凭据选项保留为空
下面是我在库存级别定义的变量的快照
我维护一个变量文件,即配置文件和vault,以便在运行时在剧本中呈现。您可以创建一个子目录,比如vars,并将清单变量中提到的作为值的变量映射到vars/var.yml文件。vars.yml可以将键定义为- ssh_secret_dev:“{{vault_secret_pass}}”
ssh\u user\u dev:username
加密的vault文件可以具有最终值- 金库密码:非常密码
您还可以使用在清单中定义的任何变量(不是特殊的ansible变量),并在您的剧本中使用它们,这些剧本的值可以从变量文件中选取。您需要查看如何定义凭据,并将这些信息从剧本/作业中移到清单中@Zeitounator的ansible最佳实践指南很有帮助。我自己写了这个问题的答案。
- hosts: localhost
vars_files:
- ./vars/vault.yml
- ./vars/vars.yml
gather_facts: no
no_log: true
tasks:
- .....some tasks......