Problem now is that all of the jinja is rendered before any salt stanzas are run. I have:
{% if grains['manufacturer'].startswith('HP') %}
{% set KERN = salt.pkg.version('kernel') %}
{% set KERNLIST = KERN.split(',') %}
{% if KERNLIST|length > 1 %}
remove_older_kernel_versions:
cmd.run:
- name: /bin/package-cleanup -y --oldkernels --count=2
{% set KERN
= salt.pkg.version('kernel') %}
{% endif %}
{% set DEVEL
= salt.pkg.version('kernel-devel') %}
{% if grains['num_gpus'] > 1 %}
{% if KERN == DEVEL %}
print-kernel-info:
cmd.run:
- name: echo "kernel = {{ KERN }} - kernel-devel = {{ DEVEL }}"
{% else %}
{% set KERNLIST = KERN.split(',') %}
{% if DEVEL == KERNLIST[0] %}
kernel-devel2:
pkg.installed:
- name: kernel-devel
- version: {{ KERNLIST[0] }}
{% endif %}
{% endif %}
{% else %}
{% if DEVEL is defined %}
{% if DEVEL|length %}
remove-devel-kernel:
pkg.removed:
- name: kernel-devel
I want the KERN variable reset after the extra kernels are removed and the DEVEL likewise. They are all getting set before any salt stanzas are run. I'm thinking about removing the package-cleanup section to a separate salt state and then just adding some code before this section to make sure it is run before this state? Does that sound like the correct approach?