如何在剧本中使用ansible tower登录凭据?

如何在剧本中使用ansible tower登录凭据?,ansible,Ansible,有没有可能使用我用来直接登录ansible tower的凭证进入playbook?没有,至少没有,按照我所知道的常规方式,并且没有破解代码 当您在ansible tower中为用户登录创建凭证时,它属于“ansible tower”类型。剧本中使用的凭证(如果我们说的是tower,实际上是作业)应该是“machine”或“github”类型,这将为您提供适当的字段来填充密钥、密码等内容。如中的文档所示 tower\u user\u name:启动此作业的tower用户的用户名。这不适用于回调或计

有没有可能使用我用来直接登录ansible tower的凭证进入playbook?

没有,至少没有,按照我所知道的常规方式,并且没有破解代码

当您在ansible tower中为用户登录创建凭证时,它属于“ansible tower”类型。剧本中使用的凭证(如果我们说的是tower,实际上是作业)应该是“machine”或“github”类型,这将为您提供适当的字段来填充密钥、密码等内容。

如中的文档所示


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") }}'
最后,如果您想对您的剧本进行更灵活的注入,您可以查看此链接