diff --git a/pillar.example b/pillar.example index dd408823..2c75741a 100644 --- a/pillar.example +++ b/pillar.example @@ -173,6 +173,8 @@ salt: # salt minion config: minion_config_use_TOFS: true + # schedule delayed minion restart on configuration changes + restart_via_systemd: false minion: # standalone setup diff --git a/salt/defaults.yaml b/salt/defaults.yaml index 2b84eec3..dcf2dd66 100644 --- a/salt/defaults.yaml +++ b/salt/defaults.yaml @@ -11,6 +11,7 @@ salt: use_pip: false clean_config_d_dir: true restart_via_at: false + restart_via_systemd: false parallel: true # salt.git module argument config_path: /etc/salt diff --git a/salt/minion.sls b/salt/minion.sls index 34362449..6f4d41aa 100644 --- a/salt/minion.sls +++ b/salt/minion.sls @@ -107,7 +107,7 @@ salt-minion: - file: remove-old-minion-conf-file - order: last {% endif %} - {%- if not salt_settings.restart_via_at %} + {%- if not salt_settings.restart_via_at and not salt_settings.restart_via_systemd %} cmd.run: {%- if grains['saltversioninfo'] >= [ 2016, 3 ] %} {%- if grains['kernel'] == 'Windows' %} @@ -142,7 +142,7 @@ salt-minion: - file: remove-old-minion-conf-file {%- else %} - {% if grains.os_family not in ['MacOS', 'FreeBSD'] %} + {%- if grains.os_family not in ['MacOS', 'FreeBSD'] and not salt_settings.restart_via_systemd %} {# MacOS and FreeBSD have the 'at' command; but there's no package to install #} at: pkg.installed: @@ -151,7 +151,11 @@ at: restart-salt-minion: cmd.run: + {%- if salt_settings.restart_via_systemd %} + - name: systemd-run --on-active=1m systemctl restart salt-minion + {%- else %} - name: echo salt-call --local service.restart {{ salt_settings.minion_service }} | at now + 1 minute + {%- endif %} - order: last - onchanges: {%- if salt_settings.install_packages %} diff --git a/salt/osfamilymap.yaml b/salt/osfamilymap.yaml index 2ed22ec9..00ecf9a2 100644 --- a/salt/osfamilymap.yaml +++ b/salt/osfamilymap.yaml @@ -72,6 +72,7 @@ Suse: install_from_package: git master: gitfs_provider: pygit2 + restart_via_systemd: true Gentoo: salt_master: app-admin/salt diff --git a/test/integration/default/files/_mapdata/almalinux-8.yaml b/test/integration/default/files/_mapdata/almalinux-8.yaml index 8633ac51..7eb8fee4 100644 --- a/test/integration/default/files/_mapdata/almalinux-8.yaml +++ b/test/integration/default/files/_mapdata/almalinux-8.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/almalinux-9.yaml b/test/integration/default/files/_mapdata/almalinux-9.yaml index c27ba307..2c8e23d6 100644 --- a/test/integration/default/files/_mapdata/almalinux-9.yaml +++ b/test/integration/default/files/_mapdata/almalinux-9.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/amazonlinux-2.yaml b/test/integration/default/files/_mapdata/amazonlinux-2.yaml index 175f2008..54590734 100644 --- a/test/integration/default/files/_mapdata/amazonlinux-2.yaml +++ b/test/integration/default/files/_mapdata/amazonlinux-2.yaml @@ -96,6 +96,7 @@ values: python_git: GitPython release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/amazonlinux-2023.yaml b/test/integration/default/files/_mapdata/amazonlinux-2023.yaml index d414720e..5d9dae60 100644 --- a/test/integration/default/files/_mapdata/amazonlinux-2023.yaml +++ b/test/integration/default/files/_mapdata/amazonlinux-2023.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/arch-base-latest.yaml b/test/integration/default/files/_mapdata/arch-base-latest.yaml index 798f5ffd..c35d50a2 100644 --- a/test/integration/default/files/_mapdata/arch-base-latest.yaml +++ b/test/integration/default/files/_mapdata/arch-base-latest.yaml @@ -95,6 +95,7 @@ values: python_git: python2-gitpython release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/centos-7.yaml b/test/integration/default/files/_mapdata/centos-7.yaml index 72ccc36d..29d3bebf 100644 --- a/test/integration/default/files/_mapdata/centos-7.yaml +++ b/test/integration/default/files/_mapdata/centos-7.yaml @@ -96,6 +96,7 @@ values: python_git: GitPython release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/centos-8.yaml b/test/integration/default/files/_mapdata/centos-8.yaml index 65a6b1eb..69879605 100644 --- a/test/integration/default/files/_mapdata/centos-8.yaml +++ b/test/integration/default/files/_mapdata/centos-8.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/centos-9.yaml b/test/integration/default/files/_mapdata/centos-9.yaml index acd292c3..948f62b5 100644 --- a/test/integration/default/files/_mapdata/centos-9.yaml +++ b/test/integration/default/files/_mapdata/centos-9.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/debian-10.yaml b/test/integration/default/files/_mapdata/debian-10.yaml index e3d07ce2..dcdda5a2 100644 --- a/test/integration/default/files/_mapdata/debian-10.yaml +++ b/test/integration/default/files/_mapdata/debian-10.yaml @@ -97,6 +97,7 @@ values: python_git: python-git release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/debian-11.yaml b/test/integration/default/files/_mapdata/debian-11.yaml index 4ec2914e..19ac099c 100644 --- a/test/integration/default/files/_mapdata/debian-11.yaml +++ b/test/integration/default/files/_mapdata/debian-11.yaml @@ -96,6 +96,7 @@ values: python_dulwich: python-dulwich python_git: python-git restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/debian-12.yaml b/test/integration/default/files/_mapdata/debian-12.yaml index 80e2549a..b6472832 100644 --- a/test/integration/default/files/_mapdata/debian-12.yaml +++ b/test/integration/default/files/_mapdata/debian-12.yaml @@ -96,6 +96,7 @@ values: python_dulwich: python-dulwich python_git: python-git restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/debian-9.yaml b/test/integration/default/files/_mapdata/debian-9.yaml index 9ed16160..e8b3d2cc 100644 --- a/test/integration/default/files/_mapdata/debian-9.yaml +++ b/test/integration/default/files/_mapdata/debian-9.yaml @@ -97,6 +97,7 @@ values: python_git: python-git release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/fedora-33.yaml b/test/integration/default/files/_mapdata/fedora-33.yaml index 4187c7e0..61708bf4 100644 --- a/test/integration/default/files/_mapdata/fedora-33.yaml +++ b/test/integration/default/files/_mapdata/fedora-33.yaml @@ -96,6 +96,7 @@ values: python_git: GitPython release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/fedora-34.yaml b/test/integration/default/files/_mapdata/fedora-34.yaml index bf86114e..085e14cd 100644 --- a/test/integration/default/files/_mapdata/fedora-34.yaml +++ b/test/integration/default/files/_mapdata/fedora-34.yaml @@ -96,6 +96,7 @@ values: python_git: GitPython release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/fedora-35.yaml b/test/integration/default/files/_mapdata/fedora-35.yaml index 13c0f812..19fe8124 100644 --- a/test/integration/default/files/_mapdata/fedora-35.yaml +++ b/test/integration/default/files/_mapdata/fedora-35.yaml @@ -96,6 +96,7 @@ values: python_git: GitPython release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/fedora-36.yaml b/test/integration/default/files/_mapdata/fedora-36.yaml index b006dde5..b58ed94e 100644 --- a/test/integration/default/files/_mapdata/fedora-36.yaml +++ b/test/integration/default/files/_mapdata/fedora-36.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/fedora-40.yaml b/test/integration/default/files/_mapdata/fedora-40.yaml index b006dde5..b58ed94e 100644 --- a/test/integration/default/files/_mapdata/fedora-40.yaml +++ b/test/integration/default/files/_mapdata/fedora-40.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/fedora-41.yaml b/test/integration/default/files/_mapdata/fedora-41.yaml index 6cbf60eb..0761e0ad 100644 --- a/test/integration/default/files/_mapdata/fedora-41.yaml +++ b/test/integration/default/files/_mapdata/fedora-41.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/freebsd-12.yaml b/test/integration/default/files/_mapdata/freebsd-12.yaml index c6aa88aa..e6e63413 100644 --- a/test/integration/default/files/_mapdata/freebsd-12.yaml +++ b/test/integration/default/files/_mapdata/freebsd-12.yaml @@ -93,6 +93,7 @@ values: python_git: py39-gitpython release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/freebsd-13.yaml b/test/integration/default/files/_mapdata/freebsd-13.yaml index ec8d7956..71c2322e 100644 --- a/test/integration/default/files/_mapdata/freebsd-13.yaml +++ b/test/integration/default/files/_mapdata/freebsd-13.yaml @@ -93,6 +93,7 @@ values: python_git: py39-gitpython release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/gentoo-2-sysd.yaml b/test/integration/default/files/_mapdata/gentoo-2-sysd.yaml index 008272c9..98f07184 100644 --- a/test/integration/default/files/_mapdata/gentoo-2-sysd.yaml +++ b/test/integration/default/files/_mapdata/gentoo-2-sysd.yaml @@ -93,6 +93,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/gentoo-2-sysv.yaml b/test/integration/default/files/_mapdata/gentoo-2-sysv.yaml index 008272c9..98f07184 100644 --- a/test/integration/default/files/_mapdata/gentoo-2-sysv.yaml +++ b/test/integration/default/files/_mapdata/gentoo-2-sysv.yaml @@ -93,6 +93,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/mac_os_x-10.yaml b/test/integration/default/files/_mapdata/mac_os_x-10.yaml index b8f0fa7c..cfcf4f06 100644 --- a/test/integration/default/files/_mapdata/mac_os_x-10.yaml +++ b/test/integration/default/files/_mapdata/mac_os_x-10.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/mac_os_x-11.yaml b/test/integration/default/files/_mapdata/mac_os_x-11.yaml index b8f0fa7c..cfcf4f06 100644 --- a/test/integration/default/files/_mapdata/mac_os_x-11.yaml +++ b/test/integration/default/files/_mapdata/mac_os_x-11.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/mac_os_x-12.yaml b/test/integration/default/files/_mapdata/mac_os_x-12.yaml index b8f0fa7c..cfcf4f06 100644 --- a/test/integration/default/files/_mapdata/mac_os_x-12.yaml +++ b/test/integration/default/files/_mapdata/mac_os_x-12.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/openbsd-6.yaml b/test/integration/default/files/_mapdata/openbsd-6.yaml index 56605f52..691eafad 100644 --- a/test/integration/default/files/_mapdata/openbsd-6.yaml +++ b/test/integration/default/files/_mapdata/openbsd-6.yaml @@ -92,6 +92,7 @@ values: python_git: py3-GitPython release: '3002' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/openbsd-7.yaml b/test/integration/default/files/_mapdata/openbsd-7.yaml index 4d71f3bf..c4c4d369 100644 --- a/test/integration/default/files/_mapdata/openbsd-7.yaml +++ b/test/integration/default/files/_mapdata/openbsd-7.yaml @@ -92,6 +92,7 @@ values: python_git: py3-GitPython release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/opensuse-15.yaml b/test/integration/default/files/_mapdata/opensuse-15.yaml index bf09fc6c..1dd6226b 100644 --- a/test/integration/default/files/_mapdata/opensuse-15.yaml +++ b/test/integration/default/files/_mapdata/opensuse-15.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: python-git restart_via_at: false + restart_via_systemd: true retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/opensuse-tumbleweed.yaml b/test/integration/default/files/_mapdata/opensuse-tumbleweed.yaml index f0b0ca23..3df9fe90 100644 --- a/test/integration/default/files/_mapdata/opensuse-tumbleweed.yaml +++ b/test/integration/default/files/_mapdata/opensuse-tumbleweed.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: python-git restart_via_at: false + restart_via_systemd: true retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/oraclelinux-7.yaml b/test/integration/default/files/_mapdata/oraclelinux-7.yaml index 6ae26944..ec673503 100644 --- a/test/integration/default/files/_mapdata/oraclelinux-7.yaml +++ b/test/integration/default/files/_mapdata/oraclelinux-7.yaml @@ -96,6 +96,7 @@ values: python_git: GitPython release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/oraclelinux-8.yaml b/test/integration/default/files/_mapdata/oraclelinux-8.yaml index 4ab6757e..7301c44a 100644 --- a/test/integration/default/files/_mapdata/oraclelinux-8.yaml +++ b/test/integration/default/files/_mapdata/oraclelinux-8.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/oraclelinux-9.yaml b/test/integration/default/files/_mapdata/oraclelinux-9.yaml index 426bf709..7cd86013 100644 --- a/test/integration/default/files/_mapdata/oraclelinux-9.yaml +++ b/test/integration/default/files/_mapdata/oraclelinux-9.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/rockylinux-8.yaml b/test/integration/default/files/_mapdata/rockylinux-8.yaml index f4e129e0..aba926ce 100644 --- a/test/integration/default/files/_mapdata/rockylinux-8.yaml +++ b/test/integration/default/files/_mapdata/rockylinux-8.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/rockylinux-9.yaml b/test/integration/default/files/_mapdata/rockylinux-9.yaml index 73e947d8..809ee9ae 100644 --- a/test/integration/default/files/_mapdata/rockylinux-9.yaml +++ b/test/integration/default/files/_mapdata/rockylinux-9.yaml @@ -95,6 +95,7 @@ values: python_dulwich: python-dulwich python_git: GitPython restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/ubuntu-18.yaml b/test/integration/default/files/_mapdata/ubuntu-18.yaml index 1bd67441..1bb2f742 100644 --- a/test/integration/default/files/_mapdata/ubuntu-18.yaml +++ b/test/integration/default/files/_mapdata/ubuntu-18.yaml @@ -99,6 +99,7 @@ values: python_git: python-git release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/ubuntu-20.yaml b/test/integration/default/files/_mapdata/ubuntu-20.yaml index 8f0e84e2..3c81da0d 100644 --- a/test/integration/default/files/_mapdata/ubuntu-20.yaml +++ b/test/integration/default/files/_mapdata/ubuntu-20.yaml @@ -98,6 +98,7 @@ values: python_dulwich: python-dulwich python_git: python-git restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/ubuntu-22.yaml b/test/integration/default/files/_mapdata/ubuntu-22.yaml index efcbaffb..dcc96386 100644 --- a/test/integration/default/files/_mapdata/ubuntu-22.yaml +++ b/test/integration/default/files/_mapdata/ubuntu-22.yaml @@ -98,6 +98,7 @@ values: python_dulwich: python-dulwich python_git: python-git restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/ubuntu-24.yaml b/test/integration/default/files/_mapdata/ubuntu-24.yaml index 7dcb575a..314b73cd 100644 --- a/test/integration/default/files/_mapdata/ubuntu-24.yaml +++ b/test/integration/default/files/_mapdata/ubuntu-24.yaml @@ -98,6 +98,7 @@ values: python_dulwich: python-dulwich python_git: python-git restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/windows-10.yaml b/test/integration/default/files/_mapdata/windows-10.yaml index 82b75c64..680b7418 100644 --- a/test/integration/default/files/_mapdata/windows-10.yaml +++ b/test/integration/default/files/_mapdata/windows-10.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/windows-2016-server.yaml b/test/integration/default/files/_mapdata/windows-2016-server.yaml index 87d32e60..db36f407 100644 --- a/test/integration/default/files/_mapdata/windows-2016-server.yaml +++ b/test/integration/default/files/_mapdata/windows-2016-server.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3003' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/windows-2019-server.yaml b/test/integration/default/files/_mapdata/windows-2019-server.yaml index 2f710071..82461777 100644 --- a/test/integration/default/files/_mapdata/windows-2019-server.yaml +++ b/test/integration/default/files/_mapdata/windows-2019-server.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/windows-2022-server.yaml b/test/integration/default/files/_mapdata/windows-2022-server.yaml index 44576773..4148533d 100644 --- a/test/integration/default/files/_mapdata/windows-2022-server.yaml +++ b/test/integration/default/files/_mapdata/windows-2022-server.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10 diff --git a/test/integration/default/files/_mapdata/windows-8.yaml b/test/integration/default/files/_mapdata/windows-8.yaml index 65342e95..d519aa5a 100644 --- a/test/integration/default/files/_mapdata/windows-8.yaml +++ b/test/integration/default/files/_mapdata/windows-8.yaml @@ -92,6 +92,7 @@ values: python_git: python-git release: '3004' restart_via_at: false + restart_via_systemd: false retry_options: attempts: 5 interval: 10