Zack Williams | 2894e4f | 2020-09-17 09:45:17 -0700 | [diff] [blame] | 1 | --- |
| 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 Williams | c3e9c1f | 2020-11-30 09:21:56 -0700 | [diff] [blame] | 13 | - name: Create groups |
| 14 | group: |
| 15 | name: "{{ item }}" |
| 16 | with_items: "{{ users_groups }}" |
| 17 | |
Zack Williams | 2894e4f | 2020-09-17 09:45:17 -0700 | [diff] [blame] | 18 | - 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 Williams | 005ba2d | 2021-04-02 18:20:35 -0700 | [diff] [blame] | 25 | shell: "{{ item.shell | default(users_default_shell) }}" |
Zack Williams | 2894e4f | 2020-09-17 09:45:17 -0700 | [diff] [blame] | 26 | 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 Williams | 00108f2 | 2020-10-30 14:01:28 -0700 | [diff] [blame] | 51 | |
| 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" |