繁体   English   中英

Ansible AWX - 在一个 AWX 模板中使用一本剧本部署具有不同凭据的多个主机

[英]Ansible AWX - Deploy multiple hosts with different credentials with one playbook in one AWX template

环境是3个主机。 主机 A; B 和 C 主机 A 在 Docker 容器中使用 AWX 运行 Ansible。 我的任务是,从主机B 获取备份文件,并将它们传输到服务器C。实际上,这是两个任务。 主机 B 和 C 具有不同的凭据。 我知道如何在一本剧本中收集这两个任务,但是如何将第二个凭据添加到 C 服务器以在 AWX 模板中建立复制任务?

剧本示例:

- hosts: B
  tasks:
  - name: Fetch backup data from remote host B to my_path
    fetch:
      src: /origin_path/backup_file.tar.gz
      dest: /my_path/backup_file.tar.gz

- hosts: C
  tasks:
  - name: Copy backup data from my_path to remote host C
    tasks:
      copy:
      src: /my_path/backup_file.tar.gz
      dest: /remote_path/backup_file.tar.gz
```

对于这种类型的场景,我为每个主机创建了单独的剧本,为每个剧本创建了一个模板,然后使用工作流模板依次运行两个剧本。

我想要一个更好的解决方案,即允许您描述的多个凭据。

您可以考虑使用清单变量为您的主机设置凭据(通过主机变量或组变量)。

  1. 使用 Ansible Vault 加密您的密码 ( https://docs.ansible.com/ansible/latest/user_guide/vault.html#choosing-between-a-single-password-and-multiple-passwords )
  2. 在您的清单中设置 ansible_user 和 ansible_password 主机变量(注意 ansible_password 是使用 ansible-vault 加密的值)
  3. 在 AWX 中创建一个 Vault 凭证,它将存储用于加密您的密码的密钥
  4. 将保险库凭证添加到 AWX 中的剧本模板。 这将确保在运行剧本时密码被解密。

您可以使用清单变量来处理服务器的多个域凭据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM