--- - 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"