为特定组中的每个服务器执行任务

时间:2016-04-27 09:35:07

标签: ansible

我有一个主机文件:

[synology]
192.168.1.111 ansible_sudo_pass='dfg78G67'

[web]
139.59.xx:8682 server_name=do1 sql_server_id=1 sql_auto_increment_increment=1
139.59.xx:8682 server_name=do2 sql_server_id=2 sql_auto_increment_increment=2

对于每个服务器,我都有他的ssh公钥

我想将它添加到我的synology

- name: "Add ssh key"
   authorized_key: user=admin key="{{ lookup('file', 'ssh_keys/id_rsa_{{ item.server_name }}.pub') }}"
   with_items: "{{ groups['web'] }}"

但Ansible回应

TASK [synology_init : Add ssh key] **********************
fatal: [192.168.1.111]: FAILED! => {"failed": true, "msg": "'unicode object' has no attribute 'server_name'"}

THX

1 个答案:

答案 0 :(得分:0)

- name: "Add ssh keys"
  authorized_key: user=admin key="{{ lookup('file', 'ssh_keys/id_rsa_{{ hostvars[item].server_name }}.pub') }}"
  with_items: "{{ groups['web'] }}"