Ansible:我在剧本中的“with_itmes”有什么问题

罗素·许

我注册了 3 个主机密钥并尝试循环我的主机让另一个远程主机保存密钥

- setup:

- name: Generate Public Key On 3nodes
  openssh_keypair:
    path: /root/.ssh/id_rsa
    comment: "{{ ansible_hostname }}"
  when: inventory_hostname in groups['new_percona']  

- name: register public key
  shell: cat /root/.ssh/id_rsa.pub
  register: public_key
  when: inventory_hostname in groups['new_percona']

- name: Add Nodes Public Key On master-0
  lineinfile: 
    dest: /root/.ssh/authorized_keys
    line: "{{ hostvars['{{ item }}']['public_key']['stdout'] }}"
  with_items:
    - percona-0
    - percona-1
    - percona-2
  when: '"master-0" in inventory_hostname'

结果

TASK [Install : Add Nodes Public Key On master-0] ******************************
fatal: [master-0]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: \"hostvars['{{ item }}']\" is undefined\n\nThe error appears to be in '/tmp/awx_5004_1s769t9j/project/roles/Install/tasks/install-percona.yml': line 62, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Add Nodes Public Key On master-0\n  ^ here\n"}

我也试试

- name: Add Nodes Public Key On master-0
  lineinfile: 
    dest: /root/.ssh/authorized_keys
    line: "{{ hostvars['{{ groups[new_percona] }}']['public_key']['stdout'] }}"
  when: '"master-0" in inventory_hostname'

或循环

- name: Add Nodes Public Key On master-0
  lineinfile: 
    dest: /root/.ssh/authorized_keys
    line: "{{ hostvars['{{ item }}']['public_key']['stdout'] }}"
  loop: [ 'percona-0', 'percona-1', 'percona-2' ]
  when: '"master-0" in inventory_hostname'

但以上是错误的

如何使用变量来循环主机?

如果只是单个主机,这是有效的

- name: Add Nodes Public Key On master-0
  lineinfile: 
    dest: /root/.ssh/authorized_keys
    line: "{{ hostvars['percona-0']['public_key']['stdout'] }}"
  when: '"master-0" in inventory_hostname'
吸管

不能在花括号内使用花括号。

line: "{{ hostvars[item]['public_key']['stdout'] }}"

这应该做你想做的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章