* Add conditional snapshotter for PXE-booted systems **Added:** - PXE Boot Check - Introduced tasks to check if the system is PXE-booted by analyzing `/proc/cmdline` in `roles/k3s_agent/tasks/main.yml`. - Conditional Snapshotter in Template - Added logic in `k3s.service.j2` template to conditionally set `--snapshotter native` for PXE-booted systems. **Changed:** - `k3s.service.j2` Template Update - Modified the `ExecStart` line to include a conditional check for `is_pxe_booted` fact, dynamically setting the `--snapshotter` option for NFS-mounted systems. - `main.yml` Task Modification - Added tasks to set `is_pxe_booted` fact based on the presence of `root=/dev/nfs` in the system's boot command line. This update allows k3s agents on PXE-booted systems to use the native snapshotter when running on NFS, addressing compatibility issues with OverlayFS. * Introduce idiomatic practices for affected areas from previous commits **Added:** - Structured HTTP Proxy Configuration Block - Added a structured block in `http_proxy.yml` for managing HTTP proxy settings, aligning with Ansible's recommended practices. This includes creating directories and deploying configuration files in a clear, modular fashion. - Conditional Execution for Proxy Setup - Implemented conditional execution for the proxy setup in `http_proxy.yml`, utilizing `proxy_env` to adhere to Ansible's best practices for conditional tasks. - Improved PXE-Boot System Check Block - Introduced a more structured approach in `main.yml` for checking PXE-booted systems, enhancing readability and maintainability. **Changed:** - Adopted Ansible Builtin Modules - Transitioned existing tasks to use `ansible.builtin` modules, ensuring compatibility and future-proofing the role. - Refined Task Grouping - Reorganized tasks into logical blocks, improving the overall structure and readability, and showcasing Ansible's capabilities for efficient task management. - Updated K3s Service Configuration - Modified the K3s service configuration task in `main.yml` for a more streamlined approach using Ansible's template module, reflecting community-driven best practices. **Removed:** - Streamlined Task Definitions - Optimized task definitions to reduce redundancy, focusing on clarity and adherence to the evolving Ansible community standards. * Added missing checks causing failures for agents
37 lines
944 B
YAML
37 lines
944 B
YAML
---
|
|
- name: Check for PXE-booted system
|
|
block:
|
|
- name: Check if system is PXE-booted
|
|
ansible.builtin.command:
|
|
cmd: cat /proc/cmdline
|
|
register: boot_cmdline
|
|
changed_when: false
|
|
check_mode: false
|
|
|
|
- name: Set fact for PXE-booted system
|
|
ansible.builtin.set_fact:
|
|
is_pxe_booted: "{{ 'root=/dev/nfs' in boot_cmdline.stdout }}"
|
|
when: boot_cmdline.stdout is defined
|
|
|
|
- name: Include http_proxy configuration tasks
|
|
ansible.builtin.include_tasks: http_proxy.yml
|
|
|
|
- name: Deploy K3s http_proxy conf
|
|
include_tasks: http_proxy.yml
|
|
when: proxy_env is defined
|
|
|
|
- name: Configure the k3s service
|
|
ansible.builtin.template:
|
|
src: "k3s.service.j2"
|
|
dest: "{{ systemd_dir }}/k3s-node.service"
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
|
|
- name: Manage k3s service
|
|
ansible.builtin.systemd:
|
|
name: k3s-node
|
|
daemon_reload: true
|
|
state: restarted
|
|
enabled: true
|