system/roles/base/tasks/main.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 }}"
groups: [socklog]
append: true