Sal top.sls não atualiza em 'saltervererver.update' com gitfs

5

Eu tenho um único servo de sal ligado ao mestre de sal. Recentemente, renomei um .sls grande de 'webserver.sls' para 'jetty.sls'. Eu uso um backend do gitfs com pygit2 e ssh. Eu só habilitei o backend do gitfs. /etc/salt/master :

fileserver_backend:
#  - roots
  - git

gitfs_provider: pygit2
gitfs_remotes:
  - [email protected]:Groomblecom/[repo].git:
    - pubkey: /root/salt-credentials/id_rsa.pub
    - privkey: /root/salt-credentials/id_rsa

No entanto, sempre que executo salt-run fileserver.update && salt '*' state.highstate , recebo um erro:

Data failed to compile:
----------
    No matching sls found for 'webserver' in env 'base'

A execução de salt '*' state.show_sls jetty fornece resultados esperados (longos), consistente com o que eu vejo no repositório bitbucket. A execução de salt '*' state.show_top fornece o seguinte:

----------
    base:
        - common
        - ingress
        - webserver

Isso é inconsistente com o top.sls no repositório bitbucket:

base:
  '*':
    - common
  '*ingress*':
    - ingress
    - jetty
    - nginx

A execução de salt-run fileserver.update ou rm -rf /var/cache/salt/* && service salt-master restart não afeta os resultados.

Gostaria de saber se há um bug conhecido (e solução alternativa) para esse comportamento, se existe uma maneira de forçar um cache real a ser desfeito ou se cometi um erro de configuração.

    
por Groomblecom 27.11.2016 / 20:12

2 respostas

2

A razão para o erro é que o salt considera todas as ramificações e, em seguida, mescla todas as ramificações (!) para compilar o top.sls final. Eu tinha um branch antigo que era um casal commit behind master, e então ainda referenciava webserver.sls. A solução é bem simples: basta adicionar o seguinte a /etc/salt/master :

gitfs_env_whitelist:
  - master

Ou, se o seu ramo principal não for o principal, substitua o mestre pelo nome do seu ramo.

    
por 29.11.2016 / 03:03
1

O motivo é que o salt mescla todas as ramificações para compilar o top.sl final. Consegui corrigi-lo adicionando isso a /etc/salt/master :

gitfs_env_whitelist:
  - base

Como Salt mapeia a ramificação master para o ambiente base (graças a gitfs_base ), o env correto para a lista de permissões é base , não master .

    
por 14.01.2017 / 20:57