blob: befc0dc7cb69731e808475065d613608dd3e3453 [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) }}"
25 with_items: "{{ userlist }}"
26
27- name: Add user to sudo-capable group if they're a sudoer
28 when: "'sudoer' in item and item.sudoer"
29 user:
30 name: "{{ item.username }}"
31 groups: "{{ users_os_sudoers_group }}"
32 append: true
33 with_items: "{{ userlist }}"
34
35- name: Add user to any extra_groups
36 when: "'extra_groups' in item and item.extra_groups"
37 user:
38 name: "{{ item.username }}"
39 groups: "{{ item.extra_groups }}"
40 append: true
41 with_items: "{{ userlist }}"
42
43- name: Add ssh key to user account, removing all others
44 when: "item.ssh_key | default(true)"
45 authorized_key:
46 user: "{{ item.username }}"
47 key: "{{ lookup('file', item.username ~ '.pub') }}"
48 exclusive: true
49 with_items: "{{ userlist }}"
Zack Williams00108f22020-10-30 14:01:28 -070050
51- name: Add users_sudoers file (if specified)
52 when: "users_sudoers | length > 0"
53 template:
54 src: "users_sudoers.j2"
55 dest: "/etc/sudoers.d/users_sudoers"
56 owner: "root"
57 group: "root"
58 mode: 0440
59 validate: "visudo -c -s -f %s"