Files
a13labs.infra/ansible/roles/windows_containers/tasks/bootstrap_wsl.yml
T

107 lines
3.3 KiB
YAML
Raw Normal View History

---
# ── Phase 0: WSL2 prerequisite bootstrap ─────────────────────────────────
- name: Enable Microsoft-Windows-Subsystem-Linux feature
ansible.windows.win_feature:
name: Microsoft-Windows-Subsystem-Linux
state: present
include_sub_features: true
include_management_tools: true
register: __wsl_feature
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
tags:
- roles::windows_containers::wsl_bootstrap
- name: Enable Virtual Machine Platform feature
ansible.windows.win_feature:
name: VirtualMachinePlatform
state: present
include_sub_features: true
include_management_tools: true
register: __vmp_feature
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
tags:
- roles::windows_containers::wsl_bootstrap
when: ansible_facts.os_product_type == "workstation"
- name: Enable Hyper-V feature
ansible.windows.win_feature:
name: Hyper-V
state: present
include_sub_features: true
include_management_tools: true
register: __hyperv_feature
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
tags:
- roles::windows_containers::wsl_bootstrap
when: ansible_facts.os_product_type == "server"
- name: Enable Containers feature
ansible.windows.win_feature:
name: Containers
state: present
include_sub_features: true
include_management_tools: true
register: __containers_feature
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
tags:
- roles::windows_containers::wsl_bootstrap
when: ansible_facts.os_product_type == "server"
- name: Reboot if WSL features were changed
ansible.windows.win_reboot:
reboot_timeout: 600
pre_reboot_delay: 5
post_reboot_delay: 15
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
when:
- windows_containers_wsl_reboot | default(true)
- __wsl_feature.changed or __vmp_feature.changed or __hyperv_feature.changed or __containers_feature.changed
tags:
- roles::windows_containers::wsl_bootstrap
- name: Download WSL2 kernel update package
ansible.windows.win_get_url:
url: "https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi"
dest: "{{ ansible_env.TEMP | default('C:\\Windows\\Temp') }}\\wsl_update_x64.msi"
force: false
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
tags:
- roles::windows_containers::wsl_bootstrap
- name: Install WSL2 kernel update package
ansible.windows.win_shell: |
Start-Process "msiexec.exe" -ArgumentList "/i {{ ansible_env.TEMP | default('C:\\Windows\\Temp') }}\\wsl_update_x64.msi /quiet" -NoNewWindow -Wait
exit $LASTEXITCODE
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
register: __wsl_update_result
changed_when: __wsl_update_result.rc == 0
tags:
- roles::windows_containers::wsl_bootstrap
- name: Run wsl update to update WSL2 kernel
ansible.windows.win_shell: |
wsl --update
exit $LASTEXITCODE
become: true
become_method: ansible.builtin.runas
become_user: SYSTEM
register: __wsl_set_default_result
changed_when: __wsl_set_default_result.rc == 0
tags:
- roles::windows_containers::wsl_bootstrap