Ansible-查找用户失败

Ansible-查找用户失败,ansible,centos7,getpwnam,Ansible,Centos7,Getpwnam,我怎样才能解决以下角色的问题?如果远程服务器上不存在用户,ansible会向我显示错误“查找用户test1失败:'getpwnam():找不到名称:test1”。我需要在多台服务器上管理多个用户。谢谢 vars: user_list: - user: test1 state: present path: /usr/local/test1/.ssh/authoried_keys keys: - "ssh-rsa test1" - user: test

我怎样才能解决以下角色的问题?如果远程服务器上不存在用户,ansible会向我显示错误“查找用户test1失败:'getpwnam():找不到名称:test1”。我需要在多台服务器上管理多个用户。谢谢

vars:
user_list:
  - user: test1
    state: present
    path: /usr/local/test1/.ssh/authoried_keys
    keys:  
      - "ssh-rsa test1"
  - user: test2
    state: absent
    path: /home/test2/.ssh/authoried_keys
    keys:
      - "ssh-rsa test2"

tasks:
- name: Manage SSH-keys
  authorized_key:
    user: "{{ item.0.user }}"
    key: "{{ item.1 }}"
    path: "{{ item.0.path }}"
    state: "{{ item.0.state }}"
  with_subelements:
   - '{{ user_list }}'
   - keys

CentOS Linux 7,Ansible 2.4.2.0

我想,我解决了我的问题

tasks:
- name: Check for users
  shell: cat /etc/passwd | cut -f1 -d":"
  register: sshkeys_users
  changed_when: False

- name: Manage SSH-keys
  authorized_key:
    user: "{{ item.0.user }}"
    key: "{{ item.1 }}"
    path: "{{ item.0.path }}"
    state: "{{ item.0.state }}"
  with_subelements:
    - '{{ user_list }}'
    - keys
  when: sshkeys_users is defined and item.0.user in sshkeys_users.stdout_lines

期望是什么?创建用户?跳过任务?静默忽略?我想在多台服务器上运行它,如果用户不存在,则在服务器上不执行任何操作,因此跳过该任务。这不是管理基础结构的方式。您应该提前知道(并声明)存在哪些用户。服务器上有许多用户,但我不需要管理所有用户,只需要管理指定的用户。例如:server1-user1-3 ssh密钥server2-user2-3 ssh密钥我需要将指定的ssh密钥添加/删除到servers1-2到users1-2。你能帮我吗,我该怎么做?因此,请确保在向特定服务器(而不是“所有用户”)的配置文件添加密钥之前,已创建特定服务器所需的用户帐户。这些更改不是自解释的。请澄清你做了什么。