feat(dnf): Add role from histalek-de/infrastructure
This was taken from https://git.histalek.de/histalek-de/infrastructure/ <3
This commit is contained in:
parent
0152abb7df
commit
1b66ab22e5
5 changed files with 140 additions and 0 deletions
5
playbooks/dnf.yml
Normal file
5
playbooks/dnf.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
- name: Setup dnf.
|
||||||
|
hosts: dnf
|
||||||
|
roles:
|
||||||
|
- role: dnf
|
||||||
|
become: true
|
31
roles/dnf/defaults/main.yml
Normal file
31
roles/dnf/defaults/main.yml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
dnf_install_epel: false
|
||||||
|
|
||||||
|
# For more information refer to https://github.com/rpm-software-management/dnf/blob/master/doc/automatic.rst
|
||||||
|
|
||||||
|
# [commands]
|
||||||
|
dnf_install_updates: true
|
||||||
|
dnf_download_updates: true
|
||||||
|
# one of 'security', 'all',
|
||||||
|
dnf_upgrade_type: security
|
||||||
|
dnf_random_sleep: 300
|
||||||
|
dnf_network_online_timeout: 60
|
||||||
|
|
||||||
|
# [emitters]
|
||||||
|
dnf_emit_via: stdio
|
||||||
|
dnf_system_name: "{{ ansible_nodename }}"
|
||||||
|
|
||||||
|
# [command]
|
||||||
|
dnf_command_format: cat
|
||||||
|
dnf_stdin_format: "{body}"
|
||||||
|
|
||||||
|
# [command_email]
|
||||||
|
dnf_email_command_format: mail -Ssendwait -s {subject} -r {email_from} {email_to}
|
||||||
|
dnf_email_stdin_format: "{body}"
|
||||||
|
|
||||||
|
# [email]
|
||||||
|
dnf_email_from: root
|
||||||
|
dnf_email_to: root
|
||||||
|
dnf_email_host: localhost
|
||||||
|
|
||||||
|
# [base]
|
||||||
|
dnf_base_overrides: {}
|
27
roles/dnf/meta/main.yml
Normal file
27
roles/dnf/meta/main.yml
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
galaxy_info:
|
||||||
|
author: histalek
|
||||||
|
description: Configure automatic updates with dnf.
|
||||||
|
|
||||||
|
issue_tracker_url: https://git.histalek.de/histalek-de/infrastructure/-/issues
|
||||||
|
|
||||||
|
license: GPL-3.0-only
|
||||||
|
|
||||||
|
min_ansible_version: "2.10"
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- name: Fedora
|
||||||
|
versions:
|
||||||
|
- "32"
|
||||||
|
- "33"
|
||||||
|
- "34"
|
||||||
|
- "35"
|
||||||
|
- "36"
|
||||||
|
- name: EL
|
||||||
|
versions:
|
||||||
|
- "9"
|
||||||
|
|
||||||
|
standalone: true
|
||||||
|
|
||||||
|
galaxy_tags: []
|
||||||
|
|
||||||
|
dependencies: []
|
35
roles/dnf/tasks/main.yml
Normal file
35
roles/dnf/tasks/main.yml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
- name: Install EPEL repository
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name: epel-release
|
||||||
|
state: present
|
||||||
|
when: dnf_install_epel
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install dnf-plugin-tracer.
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name: dnf-plugin-tracer
|
||||||
|
state: present
|
||||||
|
when: ansible_facts['distribution'] == "Fedora"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install dnf-automatic
|
||||||
|
ansible.builtin.dnf:
|
||||||
|
name: dnf-automatic
|
||||||
|
state: present
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Deploy automatic.conf
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: automatic.conf.j2
|
||||||
|
dest: /etc/dnf/automatic.conf
|
||||||
|
mode: '0700'
|
||||||
|
owner: 'root'
|
||||||
|
group: 'root'
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Start and enable systemd timer for dnf-automatic
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: dnf-automatic.timer
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
become: true
|
42
roles/dnf/templates/automatic.conf.j2
Normal file
42
roles/dnf/templates/automatic.conf.j2
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
{{ ansible_managed | comment }}
|
||||||
|
|
||||||
|
# Ref: https://github.com/rpm-software-management/dnf/blob/master/doc/automatic.rst
|
||||||
|
|
||||||
|
[commands]
|
||||||
|
|
||||||
|
apply_updates = {{ dnf_install_updates }}
|
||||||
|
download_updates = {{ dnf_download_updates }}
|
||||||
|
network_online_timeout = {{ dnf_network_online_timeout }}
|
||||||
|
random_sleep = {{ dnf_random_sleep }}
|
||||||
|
upgrade_type = {{ dnf_upgrade_type }}
|
||||||
|
|
||||||
|
[emitters]
|
||||||
|
|
||||||
|
emit_via = {{ dnf_emit_via }}
|
||||||
|
system_name = {{ dnf_system_name }}
|
||||||
|
|
||||||
|
[command]
|
||||||
|
|
||||||
|
command_format = {{ dnf_command_format }}
|
||||||
|
stdin_format = {{ dnf_stdin_format }}
|
||||||
|
|
||||||
|
[command_email]
|
||||||
|
|
||||||
|
command_format = {{ dnf_email_command_format }}
|
||||||
|
email_from = {{ dnf_email_from }}
|
||||||
|
email_to = {{ dnf_email_to }}
|
||||||
|
stdin_format = {{ dnf_email_stdin_format }}
|
||||||
|
|
||||||
|
[email]
|
||||||
|
|
||||||
|
email_from = {{ dnf_email_from }}
|
||||||
|
email_host = {{ dnf_email_host }}
|
||||||
|
email_to = {{ dnf_email_to }}
|
||||||
|
|
||||||
|
[base]
|
||||||
|
|
||||||
|
{% if dnf_base_overrides is mapping %}
|
||||||
|
{% for key, value in dnf_base_overrides.items() %}
|
||||||
|
{{ key }}={{ value }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
Loading…
Add table
Reference in a new issue