Não está funcionando provavelmente porque pkg.installed
deve ser uma lista, mesmo sem parâmetros:
pkg.installed: []
Isso deve funcionar:
{% if ubuntu %}
cron:
{% elif arch %}
cronie:
{% endif %}
pkg.installed: []
service.running:
- enable: True
Ou, de uma maneira mais inteligente:
{% set cron = salt['grains.filter_by']({
'Ubuntu': 'cron',
'Arch': 'cronie',
}, grain='os') %}
{{cron}}:
pkg.installed: []
service.running:
- enable: True
Ou talvez o nome do serviço seja diferente do nome do pacote:
{% set cron = salt['grains.filter_by']({
'Ubuntu': {
'package': 'cron',
'service': 'crond',
},
'Arch': {
'package': 'cronie',
'service': 'cronie',
},
}, grain='os') %}
{{cron['package']}}:
pkg.installed: []
service.running:
- name: {{cron['service']}}
- enable: True
grains.filter_by
está documentado em link
Para algo mais elaborado, dê uma olhada no link