如何正确创建用户与Ansible ?



我使用这个任务在Linux上创建新用户

- name: Add user
ansible.builtin.user:
name: "{{ item.name }}"
uid: "{{ item.uid }}"
shell: /bin/bash
group: "{{ item.group }}"
groups: sshgroup
append: yes
with_items: "{{ users }}"
- name: Add .ssh directory
file:
path: "/home/{{ item.name }}/.ssh"
state: directory
mode: 0700
owner: "{{ item.name }}"
group: "{{ item.group }}"
with_items: "{{ users }}"
- name: Add key
lineinfile:
dest: "/home/{{ item.name }}/.ssh/authorized_keys"
state: present
create: yes
line: "{{ item.auth_key }}"
owner: "{{ item.name }}"
group: "{{ item.group }}"
mode: 0600
with_items: "{{ users }}"

大多数情况下,用户可以通过ssh成功登录。但是有一种情况,新创建的用户不能用他/她的私人ssh密钥登录。他们收到了密码请求。

Linux上的用户喜欢

$ ls -la /home/
# Can't login with ssh
drwxrwxr-x.  3 user1      user1     103 October 12 10:10 user1
# Can login with ssh
drwxr-xr-x.  7 user2      user2    4002 October 23 11:20 user2
drwx------.  3 user3      user3      80 October 21 12:00 user3

他们似乎有不同的权限。为什么会出现这种情况?如果更改user1的权限,ansible怎么办?

是否存在剧本的替代部分或其他用户进行修改?无论使用ansible还是任何其他方法,用户通常都具有创建主目录的权限,请参见"drwx------."除非创建用户时文件夹已经存在,或者另有指定权限。如果你想确保它总是正确的,你总是可以使用一个额外的剧本,像下面的

- file:
path: /home/{{ item.name }}/
state: directory
mode: 0700
with_items: "{{ users }}"

据我所知,应该用来创建用户的模块是:user。您可以发出命令:ansible-doc useransible-doc -s user来获取有关语法的信息,以便在您的可见剧本中应用。下面我将提出一个剧本,即创建几个(在本例中是两个)用户,并在需要时修改/etc/sudoers。

p。您需要在剧本中提供散列密码才能登录到创建的帐户。

---
- name: create user
hosts: your_hosts
tasks:
- name: create users 
user:
name: "{{ item.user }}"
password: "{{ item.password }}"
state: present
with_items:
- { user: BBB, password: here_hashed_password }
- { user: CCC, password: here_hashed_password }    
- name: add sudo entry
lineinfile:
path: /etc/sudoers 
line: "{{ item.line }}"
with_items:
- { line: 'BBB ALL=(ALL) NOPASSWD: ALL' }
- { line: 'CCC ALL=(ALL) NOPASSWD: ALL' }

相关内容

  • 没有找到相关文章

最新更新