Limpar Diretório com Arquivo de Estado Salt

9

Como faço para limpar um diretório em um salt-minion usando um arquivo de estado? Desejo excluir todos os arquivos *.conf em /etc/supervisord/conf.d/ antes de configurar outros serviços de supervisor.

A seguinte configuração de top.sls não tem efeito:

/etc/supervisor/conf.d/*:
  file.absent

file.remove falha como indisponível.

    
por Petrus Theron 01.08.2013 / 21:51

3 respostas

6

Teve o mesmo problema que você. Isso é o que funcionou para mim.

remove-supervisord-confd:
   file.directory:
      - name: /etc/supervisord/conf.d/           
      - clean: True
    
por 16.02.2015 / 17:33
4

Não é uma resposta perfeita, mas você poderia usar file.absent no diretório e recriá-lo. Observe que isso excluirá o dir sempre que o estado for executado. Você pode ficar chique com um jinja condicional em torno do seguinte:

supervisor-conf-delete:
  file.absent:
    - name: /etc/supervisord/conf.d

supervisor-conf-create:
  file.directory:
    - name: /etc/supervisord/conf.d
    - user: root
    - group: root
    - mode: 0755
    - require:
        - file: supervisor-conf-delete
    
por 28.10.2013 / 19:48
1

Você pode usar o módulo cmd nos estados de salinidade. O seguinte código pode estar presente no seu arquivo de estado:

rm -f /etc/supervisord/conf.d/*.conf:
    cmd.run

Você também pode escrever comandos mais complicados, se desejar.

    
por 05.08.2013 / 09:25