Files
a13labs.infra/ansible/tasks/windows_containers.yml
alexandre.pires d069fe3585 feat(cert-checker): add Kubernetes resources for certificate checking functionality
- Implemented a new module for cert-checker with Kubernetes resources including ServiceAccount, Role, RoleBinding, ConfigMap, and CronJob.
- Added Python script to check certificate expiry and restart deployments if necessary.
- Configured environment variables for deployment name, namespace, and service details.
- Included requirements for the Python environment.

feat(devolo-exporter): introduce Devolo exporter for Prometheus metrics

- Created a new module for Devolo exporter with Kubernetes resources including ServiceAccount, ConfigMap, Deployment, and Service.
- Developed Python scripts to scrape metrics from Devolo devices and expose them to Prometheus.
- Configured environment variables for Devolo device IP, model, and ports.
- Added requirements for the Python environment.
2025-10-13 22:35:35 +02:00

86 lines
2.9 KiB
YAML

# Variables you can override:
# enable_hyperv: true|false (default false)
# install_docker: true|false (default true)
- name: Ensure Windows Containers feature is installed
ansible.windows.win_feature:
name: Containers
state: present
include_management_tools: yes
register: containers_feature
- name: Ensure Hyper-V (optional, needed for some isolation modes)
ansible.windows.win_feature:
name: Hyper-V
state: present
include_management_tools: yes
register: hyperv_feature
when: enable_hyperv | default(false)
- name: Reboot if required after feature installation
ansible.windows.win_reboot:
msg: "Rebooting after enabling Containers/Hyper-V features"
pre_reboot_delay: 15
when: containers_feature.reboot_required or
(enable_hyperv | default(false) and hyperv_feature.reboot_required | default(false))
- name: Ensure NuGet provider is available (for PowerShell packages)
ansible.windows.win_powershell:
script: |
if (-not (Get-PackageProvider -Name NuGet -ErrorAction SilentlyContinue)) {
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Write-Output "installed"
} else {
Write-Output "present"
}
register: nuget_provider
changed_when: "'installed' in nuget_provider.stdout"
- name: Ensure DockerMsftProvider module (package provider) is installed
ansible.windows.win_psmodule:
name: DockerMsftProvider
state: present
when: install_docker | default(true)
- name: Install/Update Docker (Mirantis / Microsoft packaged) runtime
ansible.windows.win_powershell:
script: |
$pkg = Get-Package -Name docker -ErrorAction SilentlyContinue
if (-not $pkg) {
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
Write-Output "installed"
} else {
Write-Output "present"
}
register: docker_pkg
changed_when: "'installed' in docker_pkg.stdout"
when: install_docker | default(true)
- name: Ensure Docker service is enabled and running
ansible.windows.win_service:
name: docker
start_mode: auto
state: started
when: install_docker | default(true)
- name: (Optional) Pull a test Windows base image
ansible.windows.win_powershell:
script: |
docker image inspect mcr.microsoft.com/windows/nanoserver:ltsc2022 2>$null
if ($LASTEXITCODE -ne 0) {
docker pull mcr.microsoft.com/windows/nanoserver:ltsc2022
Write-Output "pulled"
} else {
Write-Output "present"
}
register: base_image
changed_when: "'pulled' in base_image.stdout"
when: install_docker | default(true)
- name: Debug summary
ansible.builtin.debug:
msg:
containers_feature_changed: "{{ containers_feature.changed }}"
hyperv_feature_changed: "{{ (hyperv_feature.changed if (enable_hyperv | default(false)) else false) | default(false) }}"
docker_installed_changed: "{{ (docker_pkg.changed if (install_docker | default(true)) else false) | default(false) }}"