我在AWX中有一个工作流程,该工作流程可以依次运行多个作业模板。我想使这些Job模板对生产环境和非生产环境都通用。机器凭证是在作业模板级别而不是作业工作流级别给出的,因此只能提供1个机器凭证。我也不想在启动选项时提示您,因为这样会松动调度功能。有什么方法可以使我的Job模板通用(剧本)?哪些可以在具有不同ssh用户名的多台机器上运行?注意:我无权访问AWX服务器。仅UI。我不是系统管理员。
这里是为实现此目的而进行的更改-
移动凭据信息。从剧本到库存]]-您可以设置环境。库存级别的特定变量以及魔术变量。魔术变量是Ansible已知的。例如 -ansible_connection,ansible_user,ansible_ssh_pass。 Ansible知道可以,它必须使用ansible_user,ansible_ssh_pass通过ssh登录到计算机。这样,您不必在AWX作业模板中提及凭据,而可以在模板级别愉快地保留机器凭据选项empty。 https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html#magic。这是我在库存级别定义的变量的快照。
Variables and Vault
ssh_secret_dev:“ {{vault_secret_pass}}”ssh_user_dev:用户名并且加密的Vault文件可以具有最终值-
vault_secret_pass:very_secret_password
为什么要跳舞?为什么不只在Vault中定义所有内容并将库存变量与Vault连接?这提供了额外的安全性,您可以在其中映射安全凭证(在可变文件中)和额外机密(在Vault中)。显然,保管库将被加密,因此您需要在作业模板级别提及保管库凭证。作业模板级别的凭证部分将仅包含保管库凭证。
- hosts: localhost vars_files: - ./vars/vault.yml - ./vars/vars.yml gather_facts: no no_log: true tasks: - .....some tasks......
您还可以使用在清单中定义的任何变量(不是特殊的ansible变量),并将其用于可从变量文件中选取其值的剧本中。