ansible - 在“vars”部分使用 {{ item }} 时,Ansible“项目未定义”
问题描述
我有一些如下代码,我想迭代 groups['A'] 和 groups['B'] 中的每个主机来创建组。
- name: Create a group
group:
name: "test_group"
state: "present"
delegate_to: "{{ item }}"
vars:
ansible_ssh_user: "{{ lookup('env', 'USER') }}@user@{{ item }}"
with_items:
- "{{ groups['A'] }}"
- "{{ groups['B'] }}"
因为我想修改 ansible ssh 连接用户以连接到“delegate_to”主机,所以我在此任务中覆盖了 ansible_ssh_user,但它不起作用并给我类似的错误消息
失败的!=> {"msg": "'item' 未定义"}
但是如果我注释掉
vars:
ansible_ssh_user: "{{ lookup('env', 'USER') }}@user@{{ item }}"
它没有给出任何错误。
解决方案
尝试将 var 更改为:
ansible_ssh_user: "{{ lookup('env', 'USER') }}@user@{{ ansible_hostname }}
这对我来说很好:
- name: 'install public key on every server'
authorized_key:
user: '{{ myuser}}'
key: "{{ myuser.ssh_public_key }}"
delegate_to: '{{ item }}'
with_items:
- '{{ groups["A"] }}'
- '{{ groups["B"] }}'
- '{{ groups["C"] }}'
也许您可以尝试,但在我委托 set_fact 并在本地恢复它之前...
推荐阅读
- java - 访问 Java 数组中的前 N 个元素,如 Python arr[:N]
- r - 替换 R 中的字符串 gsub
- python - Dialogflow 通过 API “导出”:缺少所需的 json 文件 agent.json
- windows - InnoSetup - unisXXX.exe 文件的设置图标
- python - 无法使用 Flask Python 下载 CSV 文件
- python - 从python中的图中获取特定数据
- azure-active-directory - 创建应用程序网关并在网关上应用 Web 应用程序防火墙策略所需的 Azure IAM 角色
- php - DOMPDF - PHP 页面到 PDF
- spring-boot - Map的Bean之间的区别
与地图 - python - nltk 停用词的 for 循环进入无穷大