arch: begin bootstrapping role

This commit is contained in:
transcaffeine 2020-11-09 17:06:28 +01:00
parent 6da033757e
commit 66a0a9774f
Signed by: transcaffeine
GPG Key ID: 03624C433676E465
4 changed files with 79 additions and 0 deletions

12
roles/arch/README.md Normal file
View File

@ -0,0 +1,12 @@
# ArchLinux role
Bootstraps an arch linux install to a given device. The whole block device is wiped in the process!
## Requirements:
`pacman -Syu parted cryptsetup wipefs lsblk blkid`
Collections:
- `community.general`
- `community.crypto`

View File

@ -0,0 +1,13 @@
---
arch_device: ~
arch_hostname: cookie
arch_part_label_base: "{{ arch_hostname }}"
arch_part_efi_size: "512MiB"
arch_part_root_size: "95%"
arch_lvm_name: "{{ arch_part_label_base }}"
arch_luks_device: "{{ arch_device }}2"
arch_luks_passphrase: "super_secure!"
arch_luks_container_name: "{{ arch_hostname }}"

View File

@ -0,0 +1,46 @@
---
- name: Warn user that the blockdevice will be wiped
debug:
msg: "Warning! Continueing will wipe {{ arch_device }}!"
- name: Give user the ability to abort
pause:
prompt: "You can safely abort now if you want, or continue and wipe {{ arch_device }}"
- name: Create empty GPT
community.general.parted:
device: "{{ arch_device }}"
label: gpt
name: "{{ arch_part_label_base }}"
- name: Create EFI system partition
community.general.parted:
device: "{{ arch_device }}"
state: present
part_end: "{{ arch_part_efi_size }}"
number: 1
name: "{{ arch_part_label_base }}-efi"
- name: Create partition for luks
community.general.parted:
device: "{{ arch_device }}"
state: present
part_end: "{{ arch_part_root_size }}"
number: 2
name: "{{ arch_part_label_base }}-main"
- name: Create luks device on main partition
community.crypto.luks_device:
device: "{{ arch_luks_device }}"
passphrase: "{{ arch_luks_passphrase }}"
state: present
- name: Open luks device
community.crypto.luks_device:
device: "{{ arch_luks_device }}"
passphrase: "{{ arch_luks_passphrase ]]"
state: "opened"
name: "{{ arch_luks_container_name }}"

View File

@ -0,0 +1,8 @@
---
- name: Format disks
import_tasks: filesystems.yml
- name: pacstrap
- name: Bootloader