Ansible-查找用户失败
我怎样才能解决以下角色的问题?如果远程服务器上不存在用户,ansible会向我显示错误“查找用户test1失败:'getpwnam():找不到名称:test1”。我需要在多台服务器上管理多个用户。谢谢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
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。你能帮我吗,我该怎么做?因此,请确保在向特定服务器(而不是“所有用户”)的配置文件添加密钥之前,已创建特定服务器所需的用户帐户。这些更改不是自解释的。请澄清你做了什么。