diff options
| author | Ahmed Abdelhalim <[email protected]> | 2025-08-11 00:32:01 +0200 |
|---|---|---|
| committer | Ahmed Abdelhalim <[email protected]> | 2025-08-11 00:32:01 +0200 |
| commit | b9b0620b988870525b9972b537b8e22a0c6499af (patch) | |
| tree | f150e474c8d6a2448443ade1184f9c0f01ea4f06 /roles/user/tasks | |
| parent | 20ab3adb6b08944235c707490449c8906394564f (diff) | |
Add user role
Diffstat (limited to 'roles/user/tasks')
| -rw-r--r-- | roles/user/tasks/install-archlinux.yml | 7 | ||||
| -rw-r--r-- | roles/user/tasks/install-debian.yml | 7 | ||||
| -rw-r--r-- | roles/user/tasks/main.yml | 64 |
3 files changed, 78 insertions, 0 deletions
diff --git a/roles/user/tasks/install-archlinux.yml b/roles/user/tasks/install-archlinux.yml new file mode 100644 index 00000000..84a7f0c2 --- /dev/null +++ b/roles/user/tasks/install-archlinux.yml @@ -0,0 +1,7 @@ +--- +- name: "Ensure sudo installed" + become: true + community.general.pacman: + name: "sudo" + state: "present" + tags: [required_for_boot] diff --git a/roles/user/tasks/install-debian.yml b/roles/user/tasks/install-debian.yml new file mode 100644 index 00000000..6d59e934 --- /dev/null +++ b/roles/user/tasks/install-debian.yml @@ -0,0 +1,7 @@ +--- +- name: "Ensure sudo installed" + become: true + ansible.builtin.apt: + name: "sudo" + state: "present" + tags: [required_for_boot] diff --git a/roles/user/tasks/main.yml b/roles/user/tasks/main.yml new file mode 100644 index 00000000..4bc5fe4f --- /dev/null +++ b/roles/user/tasks/main.yml @@ -0,0 +1,64 @@ +--- +- name: "Install OS-specific packages" + ansible.builtin.include_tasks: "install-{{ ansible_os_family | lower }}.yml" + tags: [required_for_boot] + +- name: "Set sudo group fact" + ansible.builtin.set_fact: + sudo_group: "sudo" + tags: [required_for_boot] + +- name: "Set user groups fact" + ansible.builtin.set_fact: + user_groups: "{{ ([username, sudo_group] + user_groups) | unique }}" + +- name: "Configure permissions for group: {{ sudo_group }}" + become: true + community.general.sudoers: + name: "enable-sudo-group" + group: "{{ sudo_group }}" + commands: "ALL" + nopassword: false + sudoers_path: "/etc/sudoers.d" + state: present + tags: [required_for_boot] + +- name: "Ensure user groups are created" + become: true + ansible.builtin.group: + name: "{{ item }}" + state: "present" + with_items: "{{ user_groups }}" + tags: [required_for_boot] + +- name: "Create user: {{ username }}" + become: true + ansible.builtin.user: + name: "{{ username }}" + append: false + create_home: true + generate_ssh_key: false + groups: "{{ user_groups }}" + password: "{{ user_password }}" + state: "present" + update_password: "on_create" + register: user + notify: "Require password change" + tags: [required_for_boot] + +- name: "Create user ssh directory" + ansible.builtin.file: + path: "/home/{{ username }}/.ssh/" + mode: "0700" + owner: "{{ username }}" + state: "directory" + tags: [required_for_boot] + +- name: "Add user ssh authorized_keys" + ansible.builtin.copy: + dest: "/home/{{ username }}/.ssh/authorized_keys" + mode: "0600" + owner: "{{ username }}" + content: | + {{ user_public_keys | join('\n') }} + tags: [required_for_boot] |
