Ansible on Fedora 44 Automation Complete Guide
By Luca Berton · Published 2024-01-01 · Category: installation
Automate Fedora 44 workstations and servers with Ansible: dnf5, SELinux, firewalld, Podman 5, Cockpit, systemd-soft-reboot, Wayland.
Fedora 44 is the upstream proving ground for RHEL 11 and ships approximately every six months. It carries kernel 6.14, dnf5 as the default package manager, Python 3.13, OpenSSH 9.9, systemd 256 with soft-reboot, and Podman 5. Support is ~13 months from GA. This is the master Ansible guide for Fedora 44 workstations and lab servers.
Fedora 44 release facts
| Item | Value | |---|---| | GA | 2026-04-21 | | EOL | ~2027-05 | | Default kernel | 6.14 | | Default Python | 3.13 | | Default package manager | dnf5 | | systemd | 256 (soft-reboot) | | Container engine | Podman 5 |
See also: Ansible on Fedora 45 Automation Complete Guide
Ansible-core compatibility
Use ansible-core 2.20 with ansible_python_interpreter=/usr/bin/python3.
Inventory
[fedora44]
fedora-lab-01.example.com
fedora-lab-02.example.com
[fedora44:vars]
ansible_user=fedora
ansible_python_interpreter=/usr/bin/python3
See also: Ansible on Fedora 46 Automation Complete Guide
Baseline playbook (dnf5 via ansible.builtin.dnf5)
- name: Fedora 44 baseline
hosts: fedora44
become: true
tasks:
- name: Update packages
ansible.builtin.dnf5:
name: "*"
state: latest
update_cache: true
- name: Install baseline tools
ansible.builtin.dnf5:
name:
- vim-enhanced
- chrony
- firewalld
- policycoreutils-python-utils
- podman
- cockpit
state: present
- name: Enable services
ansible.builtin.service:
name: "{{ item }}"
enabled: true
state: started
loop: [chronyd, firewalld, cockpit.socket]
- name: SELinux enforcing
ansible.posix.selinux: { policy: targeted, state: enforcing }
systemd-soft-reboot patching
Soft-reboot reloads userspace without rebooting the kernel — drastically reduces downtime for non-kernel updates:
- name: Patch and soft-reboot
hosts: fedora44
become: true
tasks:
- name: Apply updates
ansible.builtin.dnf5: { name: "*", state: latest }
- name: Soft reboot
ansible.builtin.command: systemctl soft-reboot
async: 30
poll: 0
ignore_errors: true
- name: Wait for connectivity
ansible.builtin.wait_for_connection:
delay: 10
timeout: 120
See also: Ansible on AlmaLinux 9 Automation Complete Guide
Cockpit web console
- name: Provision Cockpit
hosts: fedora44
become: true
tasks:
- name: Install Cockpit modules
ansible.builtin.dnf5:
name: [cockpit, cockpit-podman, cockpit-storaged, cockpit-machines]
state: present
- name: Enable Cockpit
ansible.builtin.service: { name: cockpit.socket, enabled: true, state: started }
- name: Open firewalld
ansible.posix.firewalld: { service: cockpit, permanent: true, state: enabled, immediate: true }
Podman 5 + Quadlet
- name: Run nginx Quadlet on Fedora 44
hosts: fedora44
become: true
tasks:
- name: Drop quadlet unit
ansible.builtin.copy:
dest: /etc/containers/systemd/nginx.container
mode: "0644"
content: |
[Container]
Image=docker.io/library/nginx:alpine
PublishPort=8080:80
[Install]
WantedBy=default.target
- ansible.builtin.systemd: { daemon_reload: true }
- ansible.builtin.systemd: { name: nginx, enabled: true, state: started }
Best practices
• Useansible.builtin.dnf5 (Fedora 41+); the legacy dnf shim still works but emits deprecation warnings.
• Prefer soft-reboot for userspace updates and full reboot only for kernel changes.
• Use Cockpit for one-off troubleshooting; everything else stays in playbooks.
• Treat Fedora as upstream RHEL — playbook patterns refined here will land on RHEL 11.
Conclusion
Fedora 44 lets you preview the next generation of enterprise Linux. With ansible-core 2.20 and the new dnf5 module plus systemd soft-reboot, you can apply nearly all updates with sub-minute service interruption.
Category: installation