d069fe3585
- 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.
86 lines
2.9 KiB
YAML
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) }}"
|