52 lines
1.9 KiB
YAML
52 lines
1.9 KiB
YAML
---
|
|
- name: Bootstrap ArchLinux
|
|
vars:
|
|
_config: "{{ lookup('vars', bootstrap_var_key) }}"
|
|
bootstrap_archlinux_packages: >-
|
|
{{
|
|
((_config.base | default([])) + (_config.conditional | default([])))
|
|
| reject('equalto', '')
|
|
| list
|
|
}}
|
|
block:
|
|
- name: Notify that mirror mode falls back to the public mirrorlist
|
|
when:
|
|
- system_cfg.content.source == 'mirror'
|
|
- system_cfg.content.url | length == 0
|
|
ansible.builtin.debug:
|
|
msg: >-
|
|
content.source is 'mirror' but content.url is empty: keeping the live
|
|
ISO public mirrorlist (refreshed by reflector). Set content.url to pin
|
|
a specific mirror.
|
|
|
|
- name: Point pacman at the content mirror
|
|
when: system_cfg.content.url | length > 0
|
|
ansible.builtin.copy:
|
|
dest: /etc/pacman.d/mirrorlist
|
|
content: "Server = {{ system_cfg.content.url }}/$repo/os/$arch\n"
|
|
mode: "0644"
|
|
|
|
- name: Refresh Arch keyring in the live environment
|
|
ansible.builtin.command: pacman -Sy --noconfirm archlinux-keyring
|
|
environment:
|
|
http_proxy: "{{ system_cfg.content.proxy }}"
|
|
https_proxy: "{{ system_cfg.content.proxy }}"
|
|
register: bootstrap_arch_keyring
|
|
changed_when: bootstrap_arch_keyring.rc == 0
|
|
|
|
- name: Install Arch base system
|
|
ansible.builtin.command: >-
|
|
pacstrap /mnt {{ bootstrap_archlinux_packages | join(' ') }}
|
|
environment:
|
|
http_proxy: "{{ system_cfg.content.proxy }}"
|
|
https_proxy: "{{ system_cfg.content.proxy }}"
|
|
register: bootstrap_result
|
|
changed_when: bootstrap_result.rc == 0
|
|
|
|
- name: Persist the content mirror in the installed system
|
|
when: system_cfg.content.url | length > 0
|
|
ansible.builtin.copy:
|
|
dest: /mnt/etc/pacman.d/mirrorlist
|
|
content: "Server = {{ system_cfg.content.url }}/$repo/os/$arch\n"
|
|
mode: "0644"
|