You've already forked role_users
feat: Move from Debian to Fedora #1
2
.gitignore
vendored
2
.gitignore
vendored
@@ -21,4 +21,4 @@ tags
|
|||||||
|
|
||||||
# ---> Ansible
|
# ---> Ansible
|
||||||
*.retry
|
*.retry
|
||||||
|
.ansible
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ galaxy_info:
|
|||||||
platforms:
|
platforms:
|
||||||
- name: Debian
|
- name: Debian
|
||||||
versions:
|
versions:
|
||||||
- all
|
- "bookworm"
|
||||||
|
- "trixie"
|
||||||
|
- "sid"
|
||||||
|
- name: Fedora
|
||||||
|
versions:
|
||||||
|
- "43"
|
||||||
|
|
||||||
dependencies: []
|
dependencies: []
|
||||||
|
|||||||
@@ -15,10 +15,24 @@
|
|||||||
loop_var: user
|
loop_var: user
|
||||||
label: "{{ user.name }}"
|
label: "{{ user.name }}"
|
||||||
|
|
||||||
|
- name: Create bash aliases path for Fedora
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "~{{ user.name }}/.bashrc.d/"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ user.name }}"
|
||||||
|
group: "{{ user.group | default(user.name) }}"
|
||||||
|
mode: u=rwX,g=,o=
|
||||||
|
when: ansible_facts['distribution'] | lower == "fedora"
|
||||||
|
become: true
|
||||||
|
loop: "{{ users }}"
|
||||||
|
loop_control:
|
||||||
|
loop_var: user
|
||||||
|
label: "{{ user.name }}"
|
||||||
|
|
||||||
- name: Deploy bash_aliases
|
- name: Deploy bash_aliases
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
src: bash_aliases.j2
|
src: bash_aliases.j2
|
||||||
dest: "~{{ user.name }}/.bash_aliases"
|
dest: "{{ users_bash_alias[distribution] }}"
|
||||||
owner: "{{ user.name }}"
|
owner: "{{ user.name }}"
|
||||||
group: "{{ user.group | default(user.name) }}"
|
group: "{{ user.group | default(user.name) }}"
|
||||||
mode: u=rw,g=,o=
|
mode: u=rw,g=,o=
|
||||||
@@ -27,6 +41,11 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: user
|
loop_var: user
|
||||||
label: "{{ user.name }}"
|
label: "{{ user.name }}"
|
||||||
|
vars:
|
||||||
|
distribution: "{{ ansible_facts['distribution'] | lower }}"
|
||||||
|
users_bash_alias:
|
||||||
|
debian: ~{{ user.name }}/.bash_aliases
|
||||||
|
fedora: "~{{ user.name }}/.bashrc.d/01-common"
|
||||||
|
|
||||||
- name: Create ssh directory
|
- name: Create ssh directory
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
|
|||||||
@@ -12,7 +12,8 @@
|
|||||||
- name: Create groups with the users name
|
- name: Create groups with the users name
|
||||||
ansible.builtin.group:
|
ansible.builtin.group:
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
when: user.group is undefined
|
state: "{{ item.state | default('present') }}"
|
||||||
|
when: user.group | default([]) | length == 0
|
||||||
become: true
|
become: true
|
||||||
loop: "{{ users }}"
|
loop: "{{ users }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
@@ -21,6 +22,7 @@
|
|||||||
- name: Create other groups
|
- name: Create other groups
|
||||||
ansible.builtin.group:
|
ansible.builtin.group:
|
||||||
name: "{{ item.1 }}"
|
name: "{{ item.1 }}"
|
||||||
|
when: item.state | default('present') == 'present'
|
||||||
become: true
|
become: true
|
||||||
loop: "{{ users | subelements('groups', skip_missing=True) }}"
|
loop: "{{ users | subelements('groups', skip_missing=True) }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
@@ -36,7 +38,14 @@
|
|||||||
shell: "{{ item.shell | default(omit) }}"
|
shell: "{{ item.shell | default(omit) }}"
|
||||||
group: "{{ item.group | default(item.name) }}"
|
group: "{{ item.group | default(item.name) }}"
|
||||||
groups: "{{ item.groups | default(omit) }}"
|
groups: "{{ item.groups | default(omit) }}"
|
||||||
|
state: "{{ item.state | default('present') }}"
|
||||||
become: true
|
become: true
|
||||||
loop: "{{ users }}"
|
loop: "{{ users }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
label: "{{ item.name }}"
|
label: "{{ item.name }}"
|
||||||
|
|
||||||
|
- name: Exclude users to delete
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
users: "{{ users | ansible.builtin.difference(users_to_delete) }}"
|
||||||
|
vars:
|
||||||
|
users_to_delete: "{{ users | selectattr('state', 'defined') | selectattr('state', 'equalto', 'absent') }}"
|
||||||
|
|||||||
Reference in New Issue
Block a user