【发布时间】:2018-06-26 03:42:35
【问题描述】:
如何解决下面运行 ansible 角色的问题?如果远程服务器上不存在用户,ansible 会收到错误消息“无法查找用户 test1:'getpwnam(): name not found: 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
【问题讨论】:
-
期望是什么?创建用户?跳过任务?默默忽略?
-
我想在多台服务器上运行它,如果用户不存在,则在服务器上什么都不做,所以跳过这个任务。
-
这不是您管理基础架构的方式。您应该提前知道(并声明)存在哪些用户。
-
服务器上有很多用户,但我不需要管理所有用户,只需要管理指定的用户。例如:server1 - user1 - 3 ssh keys server2 - user2 - 3 ssh keys 我需要将指定的 ssh 密钥添加/删除到 users1-2 到 users1-2。你能帮我吗,我该怎么做?
-
因此,在将密钥添加到他们的配置文件之前,请确保创建特定服务器所需的用户帐户(而不是“所有用户”)。