SaltStack: Execute 'systemctl - daemon-reload do sistema' se o arquivo de serviço foi alterado

1

Implementamos e alteramos os arquivos de serviço do sistema via SaltStack.

Por exemplo, se o arquivo /etc/systemd/system/superfoo.service for alterado, o systemd emite este aviso:

Warning: Unit file of superfoo.service changed on disk, 
         'systemctl --system daemon-reload' recommended.

Como automatizar isso com pilha de sal?

    
por guettli 06.02.2018 / 09:56

2 respostas

2

Eu gostaria de fornecer uma solução mais completa, embora @MaksaSila tenha respondido primeiro.

Você só precisa de um cmd.run que manipule a alteração de arquivo. Estou usando uma abordagem semelhante:

# sample.sls

systemd-reload:
  cmd.run:
   - name: systemctl --system daemon-reload
   - onchanges:  
     - file: superbar.service

superbar.service:
  file.managed:
    - name: /etc/systemd/system/superbar.service

superfoo.service:
  file.managed:
    - name: /etc/systemd/system/superfoo.service
    - onchanges_in:
       - cmd: systemd-reload

A última abordagem permitirá que você divida a parte systemd e a parte de serviço em diferentes arquivos SLS (não se esqueça de incluir systemd para cada arquivo sls que você fizer onchanges_in in).

Veja a esta página de manual para obter mais detalhes sobre as relações e dependências do estado.

    
por 27.02.2018 / 22:38
0

Eu sugeriria depois de copiar esse arquivo para executar isso em seu estado:

update-systemd:
  cmd.run:
    - name: systemctl --system daemon-reload
    
por 27.02.2018 / 20:55