Eu estou tentando construir um arquivo de propriedades com propriedades obrigatórias e opcionais no Ansible com modelos.
Eu quero que cada string essencialmente estática (cada nome de propriedade opcional) apareça somente se o valor da propriedade associada existir (de uma variável Ansible)
Neste momento, meu modelo ansible é assim:
# Mandatory Properties
ManProperty1={{ ManProperty1_value }}
ManProperty2={{ ManProperty2_value }}
# Optional Properties
OptProperty1={{ OptProperty1_value }}
OptProperty2={{ OptProperty2_value }}
Mas o próprio aplicativo tem valores codificados para todas as propriedades opcionais, e eu quero apenas que uma linha "property = value" seja gravada no arquivo de propriedades a partir do modelo se a variável associada existir.
Continuando com o modelo acima, se eu definir para o ambiente X (group_vars)
ManProperty1_value = myManValue1
ManProperty2_value = myManValue2
OptProperty1_value = myOptValue1
mas não defina
OptProperty2_value
Minha saída desejada do modelo para o arquivo implantado é:
# Mandatory Properties
ManProperty1=myManValue1
ManProperty2=myManValue2
# Optional Properties
OptProperty1=myOptValue1
Deve haver uma solução melhor no Ansible para isso. O mais próximo que encontrei foi o filtro ansible, mas não consegui encontrar nada relacionado a mostrar / ocultar o texto do modelo.
Nota final: Eu tenho uma solução de backup hackish - eu tomo cada linha de property=value
e faço a variável igual a string inteira. Mas parece que está faltando completamente o ponto de um modelo com muito texto estático armazenado em variáveis.