81 lines
3.6 KiB
YAML
81 lines
3.6 KiB
YAML
---
|
|
- name: Include Packages
|
|
ansible.builtin.include_vars:
|
|
file: packages.yml
|
|
name: role_packages
|
|
|
|
- name: Run OS-specific bootstrap process
|
|
block:
|
|
- name: Bootstrap ArchLinux
|
|
when: os | lower == 'archlinux'
|
|
ansible.builtin.command: pacstrap /mnt {{ role_packages.archlinux | join(' ') }} --asexplicit
|
|
changed_when: result.rc == 0
|
|
register: result
|
|
|
|
- name: Bootstrap Debian System
|
|
when: os | lower in ['debian11', 'debian12']
|
|
ansible.builtin.command: "{{ item }}"
|
|
changed_when: result.rc == 0
|
|
register: result
|
|
with_items:
|
|
- |
|
|
debootstrap --include={{ role_packages[os].base | join(',') }} {{ 'bullseye' if os == 'debian11' else 'bookworm' }} \
|
|
/mnt http://deb.debian.org/debian/
|
|
- arch-chroot /mnt apt install -y {{ role_packages[os].extra | join(' ') }}
|
|
- arch-chroot /mnt apt remove -y libcups2 libavahi-common3 libavahi-common-data
|
|
|
|
- name: Bootstrap Ubuntu System
|
|
when: os | lower in ['ubuntu', 'ubuntu-lts']
|
|
ansible.builtin.command: "{{ item }}"
|
|
changed_when: result.rc == 0
|
|
register: result
|
|
with_items:
|
|
- |
|
|
debootstrap --include={{ role_packages[os].base | join(',') }} {{ 'mantic' if os == 'ubuntu' else 'jammy' }} \
|
|
/mnt http://archive.ubuntu.com/ubuntu/
|
|
- arch-chroot /mnt sed -i '1s|$| universe|' /etc/apt/sources.list
|
|
- arch-chroot /mnt apt update -y
|
|
- arch-chroot /mnt apt install -y {{ role_packages[os].extra | join(' ') }}
|
|
|
|
- name: Bootstrap AlmaLinux 9
|
|
when: os | lower == 'almalinux'
|
|
ansible.builtin.command: "{{ item }}"
|
|
changed_when: result.rc == 0
|
|
register: result
|
|
with_items:
|
|
- dnf --releasever=9 --best --repo=alma-baseos --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y base core
|
|
- echo "nameserver 1.0.0.1" > /mnt/etc/resolv.conf
|
|
- arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.almalinux | join(' ') }}
|
|
|
|
- name: Bootstrap Fedora 40
|
|
when: os | lower == 'fedora'
|
|
ansible.builtin.command: "{{ item }}"
|
|
changed_when: result.rc == 0
|
|
register: result
|
|
with_items:
|
|
- |
|
|
dnf --releasever=40 --best --repo=fedora --repo=fedora-updates \
|
|
--installroot=/mnt --setopt=install_weak_deps=False groupinstall -y critical-path-base core
|
|
- arch-chroot /mnt dnf --releasever=40 --setopt=install_weak_deps=False install -y {{ role_packages.fedora | join(' ') }}
|
|
- arch-chroot /mnt dnf reinstall -y kernel-core
|
|
|
|
- name: Bootstrap RockyLinux 9
|
|
when: os | lower == 'rocky'
|
|
ansible.builtin.command: "{{ item }}"
|
|
changed_when: result.rc == 0
|
|
register: result
|
|
with_items:
|
|
- dnf --releasever=9 --best --repo=rocky-baseos --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y base core
|
|
- echo "nameserver 1.0.0.1" > /mnt/etc/resolv.conf
|
|
- arch-chroot /mnt dnf --releasever=9 --setopt=install_weak_deps=False install -y {{ role_packages.rocky | join(' ') }}
|
|
|
|
- name: Bootstrap RHEL System
|
|
when: os | lower in ['rhel8', 'rhel9']
|
|
ansible.builtin.command: "{{ item }}"
|
|
changed_when: result.rc == 0
|
|
register: result
|
|
with_items:
|
|
- dnf --releasever={{ '8' if os == 'rhel8' else '9' }} --installroot=/mnt --setopt=install_weak_deps=False groupinstall -y base core
|
|
- echo 'nameserver 1.0.0.1' > /mnt/etc/resolv.conf
|
|
- arch-chroot /mnt dnf --releasever={{ '8' if os == 'rhel8' else '9' }} --setopt=install_weak_deps=False install -y {{ role_packages[os] | join(' ') }}
|