gpt4 book ai didi

Ansible - 无法查找用户

转载 作者:行者123 更新时间:2023-12-05 08:08:33 26 4
gpt4 key购买 nike

如何解决下面运行 ansible 角色的问题?如果远程服务器上不存在用户,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

最佳答案

也许您可以通过 ansible 的 getent 包装器检查现有用户?感觉简单了点,不用shell模块:

tasks:
- name: Get existing users
getent:
database: passwd

- name: Disable expired users
user:
name: "{{ item.name }}"
shell: /sbin/nologin
with_items:
- "{{ users_removed }}"
when: item.name in getent_passwd.keys()

请注意,正如@techraf 指出的那样,在生产环境中,您应该始终着眼于事先声明和了解哪些用户应该和不应该出现:)

关于Ansible - 无法查找用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com