Como especificar variáveis padrão para papéis importados do Ansible Galaxy?

1

Ao escrever uma função personalizada para uma apostila Ansible, é possível especificar padrões . Eu gostaria de fazer o mesmo ao usar um papel do Ansible Galaxy (o "gerenciador de pacotes" Ansible).

Por exemplo, ao usar o popular papel redis , eu gostaria de poder especificar um% padrãoredis_version, para que qualquer pessoa que importe esse papel receba o mesmo.

Sem centralizar isso, eu colocaria a versão de redis na seção de variáveis em todos os manuais ao usar a função. Isso não é ideal. Outras maneiras de pensar:

  • Crie uma nova função, coloque a variável padrão nela e torne a função do Galaxy uma dependência. (Não tenho certeza se as variáveis são passadas).
  • Coloque o padrão em ansible.cfg[defaults] .

Qual é a melhor prática?

    
por mknecht 13.10.2017 / 11:29

1 resposta

1

Figure out where to define a variable, and don’t make it complicated. Variable Precedence: Where Should I Put A Variable?

Por exemplo, group_vars ao lado do manual . Ou de inventário dinâmico. Há muito mais lugares para colocar variáveis também.

Se você quiser que o usuário só precise importar uma função, sem variáveis em sua reprodução ou inventário, considere a possibilidade de bifurcar a função e alterar o padrão. Agora você tem que manter isso, o que é uma desvantagem. Eu prefiro ter minhas variáveis em uma peça, são apenas algumas linhas.

    
por 13.10.2017 / 15:34