Playbook #2

/home/zuul/src/opendev.org/opendev/system-config/playbooks/base.yaml

Report Status CLI Date Duration Controller User Versions Hosts Plays Tasks Results Files Records
18 Jul 2025 20:43:54 +0000 00:01:43.18 bridge99.opendev.org root Ansible 2.15.13 ara 1.7.2 (client), 1.7.2 (server) Python 3.10.12 3 1 85 251 27 0

File: /home/zuul/src/opendev.org/opendev/system-config/playbooks/roles/base/users/tasks/main.yaml

- name: Add sudo group
  group:
    name: "sudo"
    state: present

# NOTE(mordred): We replace the main file rather than dropping a file in to
# /etc/sudoers.d to deal with divergent base sudoers files from our distros.
# We also want to change some default behavior (we want nopassword sudo, for
# instance).
- name: Setup sudoers file
  copy:
    dest: /etc/sudoers
    src: sudoers
    owner: root
    group: root
    mode: 0440

- name: Setup adduser.conf file
  copy:
    dest: /etc/adduser.conf
    src: '{{ ansible_facts.os_family }}/adduser.conf'
    owner: root
    group: root
    mode: 0644

- name: Setup login.defs file
  copy:
    dest: /etc/login.defs
    src: '{{ ansible_facts.os_family }}/login.defs'
    owner: root
    group: root
    mode: 0644

- name: Delete default distro cloud image users
  # Do this in a separate task so that we can use force: yes which is
  # probably too destructive for normal users, but should be fine for
  # these built in cloud image names.
  loop: "{{ disabled_distro_cloud_users }}"
  user:
    name: "{{ item }}"
    state: absent
    remove: yes
    force: yes

- name: Delete old users
  loop: "{{ disabled_users }}"
  user:
    name: "{{ item }}"
    state: absent
    remove: yes

- name: Add groups
  loop: "{{ base_users + extra_users }}"
  group:
    name: "{{ item }}"
    state: present
    gid: "{{ all_users[item].gid|default(omit) }}"
  when:
    - item in all_users
    - "'gid' in all_users[item]"

- name: Add users
  loop: "{{ base_users + extra_users }}"
  user:
    name: "{{ item }}"
    state: present
    uid: "{{ all_users[item].uid }}"
    group: "{{ item }}"
    comment: "{{ all_users[item].comment }}"
    groups: sudo
    shell: /bin/bash
  when:
    - item in all_users
    - "'uid' in all_users[item]"

- name: Add ssh keys to users
  loop: "{{ base_users + extra_users }}"
  authorized_key:
    user: "{{ item }}"
    state: present
    key: "{{ all_users[item].key }}"
    exclusive: yes
  when:
    - item in all_users
    - "'key' in all_users[item]"