Always default to 'root' as a user_name if no variable has been set. This can easily happen as not every role sets the variable and instead we only set it once in the user role. Another way to possibly go about it in the future would be to inject the 'user_name' into each role that needs it as one of that role's default variables. If it is specified by the user somewhere it _should_ override those defaults, though I have to read up on the exact variable precedence.
143 lines
3.2 KiB
YAML
143 lines
3.2 KiB
YAML
---
|
|
# Prefer booster to dracut so make sure to never install it
|
|
- name: Ignore dracut
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/xbps.d/ignore-dracut.conf
|
|
line: ignorepkg=dracut
|
|
state: "present"
|
|
create: true # create file if absent
|
|
tags:
|
|
- packages
|
|
- dracut
|
|
|
|
- name: Update xbps and system
|
|
community.general.xbps:
|
|
name:
|
|
- xbps
|
|
state: latest
|
|
update_cache: true
|
|
upgrade: true
|
|
tags:
|
|
- packages
|
|
- update
|
|
|
|
- name: Install Base system
|
|
community.general.xbps:
|
|
name:
|
|
- base-system
|
|
state: "{{ desired_package_state | default('present') }}"
|
|
tags:
|
|
- packages
|
|
|
|
- name: Get rid of temporary container metapackage
|
|
community.general.xbps:
|
|
name:
|
|
- base-container-full
|
|
state: absent
|
|
tags:
|
|
- packages
|
|
|
|
- name: Install booster
|
|
community.general.xbps:
|
|
name: booster
|
|
state: "{{ desired_package_state | default('present') }}"
|
|
notify: installed-booster
|
|
tags:
|
|
- packages
|
|
- booster
|
|
|
|
- name: Set hostname
|
|
ansible.builtin.template:
|
|
src: hostname.j2
|
|
dest: /etc/hostname
|
|
tags: hostname
|
|
|
|
- name: Set timezone
|
|
ansible.builtin.file:
|
|
path: /etc/localtime
|
|
src: /usr/share/zoneinfo/{{ timezone }}
|
|
state: link
|
|
tags: timezone
|
|
|
|
- name: Install glibc
|
|
tags: glibc
|
|
block:
|
|
- name: Check if glibc locales exist
|
|
ansible.builtin.stat:
|
|
path: /etc/default/libc-locales
|
|
register: libc_locales_file
|
|
|
|
- name: Set correct glibc locales
|
|
ansible.builtin.lineinfile:
|
|
path: /etc/default/libc-locales
|
|
regexp: "^{{ item }}"
|
|
line: "{{ item }}"
|
|
state: "present"
|
|
create: true
|
|
loop: "{{ locales_enabled }}"
|
|
when: libc_locales_file.stat.exists
|
|
notify: glibc-locales-changed
|
|
|
|
- name: Set up chrony for NTP management
|
|
community.general.xbps:
|
|
name:
|
|
- chrony
|
|
state: "{{ desired_package_state | default('present') }}"
|
|
tags: chrony
|
|
|
|
- name: Activate chronyd service
|
|
ansible.builtin.file:
|
|
src: "/etc/sv/chronyd"
|
|
dest: "/etc/runit/runsvdir/default/chronyd"
|
|
state: link
|
|
tags: chrony
|
|
|
|
- name: Set up snooze as cron daemon
|
|
tags:
|
|
- cron
|
|
- snooze
|
|
block:
|
|
- name: Install snooze
|
|
community.general.xbps:
|
|
name:
|
|
- snooze
|
|
state: "{{ desired_package_state | default('present') }}"
|
|
|
|
- name: Activate snooze cron services
|
|
ansible.builtin.file:
|
|
force: "yes"
|
|
src: "/etc/sv/{{ item }}"
|
|
dest: "/etc/runit/runsvdir/default/{{ item }}"
|
|
state: link
|
|
loop:
|
|
- snooze-hourly
|
|
- snooze-daily
|
|
- snooze-weekly
|
|
- snooze-monthly
|
|
|
|
- name: Set up socklog as syslog daemon
|
|
tags:
|
|
- syslog
|
|
- socklog
|
|
block:
|
|
- name: Install socklog
|
|
community.general.xbps:
|
|
name:
|
|
- socklog-void
|
|
state: "{{ desired_package_state | default('present') }}"
|
|
|
|
- name: Activate snooze cron services
|
|
ansible.builtin.file:
|
|
force: "yes"
|
|
src: "/etc/sv/{{ item }}"
|
|
dest: "/etc/runit/runsvdir/default/{{ item }}"
|
|
state: link
|
|
loop:
|
|
- socklog-unix
|
|
- nanoklogd
|
|
|
|
- name: Put user in socklog group
|
|
ansible.builtin.user:
|
|
name: "{{ user_name | default('root') }}"
|
|
groups: [socklog]
|
|
append: true
|