如何在剧本中使用ansible tower登录凭据?
有没有可能使用我用来直接登录ansible tower的凭证进入playbook?没有,至少没有,按照我所知道的常规方式,并且没有破解代码 当您在ansible tower中为用户登录创建凭证时,它属于“ansible tower”类型。剧本中使用的凭证(如果我们说的是tower,实际上是作业)应该是“machine”或“github”类型,这将为您提供适当的字段来填充密钥、密码等内容。如中的文档所示如何在剧本中使用ansible tower登录凭据?,ansible,Ansible,有没有可能使用我用来直接登录ansible tower的凭证进入playbook?没有,至少没有,按照我所知道的常规方式,并且没有破解代码 当您在ansible tower中为用户登录创建凭证时,它属于“ansible tower”类型。剧本中使用的凭证(如果我们说的是tower,实际上是作业)应该是“machine”或“github”类型,这将为您提供适当的字段来填充密钥、密码等内容。如中的文档所示 tower\u user\u name:启动此作业的tower用户的用户名。这不适用于回调或计
tower\u user\u name
:启动此作业的tower用户的用户名。这不适用于回调或计划作业。是的,您可以通过在您的Ansible Tower上使用“Ansible Tower”凭据类型保存凭据来实现
从Ansible Tower UI,转到凭证->新建凭证,然后
选择凭证类型为“Ansible Tower”
此凭据类型接受三个输入,即主机名、用户名和密码。
保存凭据并将其作为凭据添加到作业模板后,可以从playbook中调用它们,如下所示:
---
- name: Trigger an Atower API
hosts: localhost
connection: local
vars:
tower_host: '{{ lookup("env", "TOWER_HOST") }}'
tower_username: '{{ lookup("env", "TOWER_USERNAME") }}'
tower_password: '{{ lookup("env", "TOWER_PASSWORD") }}'
tasks:
- name: Some tasks that can be achieved through "{{ apiEndpoint }}"
uri:
url: "{{ tower_host }}{{ apiEndpoint }}"
method: GET
url_username: "{{ tower_username }}"
url_password: "{{ tower_password }}"
force_basic_auth: yes
validate_certs: False
register: output
顺便说一下,在为这种情况寻找正确的注入值的过程中,我也为不同的凭证类型找到了其他值。您可以在这里获得:
vars:
machine:
username: '{{ ansible_user }}'
password: '{{ ansible_password }}'
network:
username: '{{ lookup("env", "ANSIBLE_NET_USERNAME") }}'
password: '{{ lookup("env", "ANSIBLE_NET_PASSWORD") }}'
aws:
access_key: '{{ lookup("env", "AWS_ACCESS_KEY_ID") }}'
secret_key: '{{ lookup("env", "AWS_SECRET_ACCESS_KEY") }}'
security_token: '{{ lookup("env", "AWS_SECURITY_TOKEN") }}'
vmware:
host: '{{ lookup("env", "VMWARE_HOST") }}'
username: '{{ lookup("env", "VMWARE_USER") }}'
password: '{{ lookup("env", "VMWARE_PASSWORD") }}'
gce:
email: '{{ lookup("env", "GCE_EMAIL") }}'
project: '{{ lookup("env", "GCE_PROJECT") }}'
azure:
client_id: '{{ lookup("env", "AZURE_CLIENT_ID") }}'
secret: '{{ lookup("env", "AZURE_SECRET") }}'
tenant: '{{ lookup("env", "AZURE_TENANT") }}'
subscription_id: '{{ lookup("env", "AZURE_SUBSCRIPTION_ID") }}'
rhev:
ovirt_url: '{{ lookup("env", "OVIRT_URL") }}'
ovirt_username: '{{ lookup("env", "OVIRT_USERNAME") }}'
ovirt_password: '{{ lookup("env", "OVIRT_PASSWORD") }}'
最后,如果您想对您的剧本进行更灵活的注入,您可以查看此链接