Ansible:当前剧本角色中主机上的 with_items

标签 ansible

我正在构建一个角色,我可能希望将其包含为多个剧本的依赖项。我要支持:

clusterA.yml
- hosts:
  - clusterA
  roles:
  - clusterA

对比:

clusterB.yml
- hosts:
  - clusterB
  roles:
  - clusterB

在 clusterA 或 clusterB meta/main.yml 中,我可能有:

dependencies:
  - { role: commondependency }

好的,在设置 commondependency 时,我想通过 ssh-keyscan 集群中的其他主机。该簇可以是 clusterA,也可以是 clusterB,也可以是 clusterY。我可以找到很多这样的例子:

- name: Key Scan Cluster
  shell: ( ssh-keyscan {{item}} && cat /opt/commondependency/.ssh/known_hosts | sort | uniq ) > /opt/commondependency/.ssh/known_hosts
  with_items: hosts['clusterA']

但我真正想要的是:

- name: Key Scan Cluster
  shell: ( ssh-keyscan {{item}} && cat /opt/commondependency/.ssh/known_hosts | sort | uniq ) > /opt/commondependency/.ssh/known_hosts
  with_items: the hosts I am running a playbook on right now

最佳答案

开始吧,http://docs.ansible.com/playbooks_variables.html底部提到的方式:

- name: Key Scan Cluster
  shell: ( ssh-keyscan {{item}} && cat /opt/commondependency /.ssh/known_hosts | sort | uniq ) > /opt/commondependency/.ssh/known_hosts
  with_items: "{{ansible_play_hosts}}"

关于Ansible:当前剧本角色中主机上的 with_items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30087080/

相关文章:

linux - 升级到 1.9 后,使用 sudo 的 Ansible 文件复制失败

ansible - 指定要在 playbook 中使用的特定回调

docker - 将 ansible 与 docker-compose 结合使用

kubernetes - 合并Yaml文件或Ansible中的变量以修补kubernetes部署

ansible - 在 Ansible 中,如何检查某个值是否位于数组的元素之一中?

PostgreSQL fe_sendauth : no password supplied

ansible - Jinja2 使用 key 访问最后一个变量

powershell - 如何使用 Ansible 卸载 Chocolatey 软件包?

amazon-web-services - Cloudformation 堆栈在执行所有用户数据之前显示为完整

Ansible:显示最后 X 输出行