O pilar SaltStack inclui a mesma chave

2

Não consegui encontrar nada na documentação sobre ter vários includes sob a mesma chave, mas quando tentei, acabei com apenas as últimas chaves de inclusão na chave raiz.

Por exemplo:

/srv/pillar/top.sls

base:
  '*':
    - ports

cat /srv/pillar/ports/init.sls

include:
  - ports.frontend:
      key: ports
  - ports.backend:
      key: ports

/srv/pillar/ports/backend.sls

service1: 10000
service2: 10001

/srv/pillar/ports/frontend.sls

web1: 8000
web2: 8001

O resultado de salt '*' pillar.items desprovido de outras chaves é assim:

ports:
    ----------
    service1:
        10000
    service2:
        10001

O resultado desejado seria assim:

ports:
    web1:
        8000
    web2:
        8001
    service1:
        10000
    service2:
        10001
    
por LavaScornedOven 09.04.2014 / 14:56

1 resposta

4

Aqui está o esquema que achei que funciona para mim.

Tudo se resume a ter o arquivo intermediário K que inclui todos os sub-arquivos S 1 ... n , então quando incluo o arquivo K, eu especifico seu argumento key , tendo todos os sub-arquivos arquivos sob a chave especificada.

/srv/pillar/ports/backend.sls

service1: 10000
service2: 10001

/srv/pillar/ports/frontend.sls

web1: 8000
web2: 8001

/srv/pillar/ports/all_ports.sls

include:
  - ports.frontend
  - ports.backend

/srv/pillar/ports/init.sls

include:
  - ports.all_ports:
      key: ports

/srv/pillar/top.sls

base:
  '*':
    - ports

Isso resultará em uma chave de pilar ports com esta aparência:

ports:
  web1: 8000
  web2: 8001
  service1: 10000
  service2: 10001

UPDATE

Eu corrigi os dois pontos como sugerido por marco.

    
por 26.04.2014 / 15:23

Tags