blob: 8ba9c7c6861138c8b997e2bfef7220704125ca96 [file] [log] [blame]
Zack Williams2894e4f2020-09-17 09:45:17 -07001---
2# users tasks/main.yml
3#
4# SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
5# SPDX-License-Identifier: Apache-2.0
6
7- name: include OS-specific vars
8 include_vars: "{{ ansible_os_family }}.yml"
9
10- name: include OS-specific tasks
11 include_tasks: "{{ ansible_os_family }}.yml"
12
Zack Williamsc3e9c1f2020-11-30 09:21:56 -070013- name: Create groups
14 group:
15 name: "{{ item }}"
16 with_items: "{{ users_groups }}"
17
Zack Williams2894e4f2020-09-17 09:45:17 -070018- name: Create user accounts
19 user:
20 name: "{{ item.username }}"
21 comment: "{{ item.fullname | default(item.username) }}"
22 password: "{{ item[users_os_pw_type] }}"
23 home: "{{ item.homedir | default(omit) }}"
24 system: "{{ item.system | default(false) }}"
Zack Williams005ba2d2021-04-02 18:20:35 -070025 shell: "{{ item.shell | default(users_default_shell) }}"
Zack Williams2894e4f2020-09-17 09:45:17 -070026 with_items: "{{ userlist }}"
27
28- name: Add user to sudo-capable group if they're a sudoer
29 when: "'sudoer' in item and item.sudoer"
30 user:
31 name: "{{ item.username }}"
32 groups: "{{ users_os_sudoers_group }}"
33 append: true
34 with_items: "{{ userlist }}"
35
36- name: Add user to any extra_groups
37 when: "'extra_groups' in item and item.extra_groups"
38 user:
39 name: "{{ item.username }}"
40 groups: "{{ item.extra_groups }}"
41 append: true
42 with_items: "{{ userlist }}"
43
44- name: Add ssh key to user account, removing all others
45 when: "item.ssh_key | default(true)"
46 authorized_key:
47 user: "{{ item.username }}"
48 key: "{{ lookup('file', item.username ~ '.pub') }}"
49 exclusive: true
50 with_items: "{{ userlist }}"
Zack Williams00108f22020-10-30 14:01:28 -070051
52- name: Add users_sudoers file (if specified)
53 when: "users_sudoers | length > 0"
54 template:
55 src: "users_sudoers.j2"
56 dest: "/etc/sudoers.d/users_sudoers"
57 owner: "root"
58 group: "root"
59 mode: 0440
60 validate: "visudo -c -s -f %s"