Como fazer o leme definir configurações diferentes para cada nó?

3

Como posso fazer o leme definir uma configuração dinamicamente dependendo de qual nó está aplicando a diretiva?

Por exemplo - Gerenciando centenas de nós, cada um deve ter um arquivo 'storage_password' que contém uma senha de 32 dígitos, única para cada nó.

Criar uma tupla única de [diretiva, regra, grupo] para cada nó parece obviamente errada, e parece confusa e desnecessária.

Eu pensei em variáveis dinâmicas, no sentido de ($prefix_${variable_suffix}) , onde variable_suffix = "hostA" e há uma variável chamada prefix_hostA , que conteria a senha. O variable_suffix seria o nome do host do nó.

No entanto, não tenho certeza se isso é possível, ou até mesmo se seria a abordagem mais recomendada.

O método de dit variável parece ser um caminho, mas eu não sou Certifique-se de que ele possa ser usado em diretivas e, no momento, esteja tendo problemas para fazê-lo funcionar.

Qual a melhor forma de proceder?

Eu mencionei o caso da senha, mas há outras situações que eu preciso de um comportamento como esse também, como configurar o vpn para cada nó.

Antecedentes: A empresa está migrando do Puppet para o Rudder, e eu estou encarregado de espelhar o Rudder com as funcionalidades razoavelmente simples que eles estão usando no Puppet. Com o Puppet, a tarefa acima é bem fácil.

    
por Vinícius M 04.10.2018 / 13:54

1 resposta

4

Existem várias maneiras de fazer isso - e você está certo de que construir uma regra para cada nó não é a correta:)

Dependendo do contexto mais geral, segue uma lista de possibilidades:

Propriedades do nó

A maneira mais comum de fazer isso é usar as propriedades do nó, ou seja, propriedades que são específicas para cada nó e podem ser usuário em diretivas. A documentação está aqui: link E você é um exemplo de caso de uso no manual de primeiros passos : definição link e uso: link

Um nó pode ter "substituição local" para as propriedades do nó, ou seja, o valor da propriedade que pode ser definido no sistema de arquivos do nó, não no detalhe do nó leme (também explicado em link )

Você pode sincronizar as propriedades do nó da API de descanso externo com o plug-in de ludores "data sources" link

Variáveis do ambiente do nó

Você pode definir variáveis de coisas no nó, como conteúdo de arquivo, saída de comando, etc.

Você pode definir essa variável com técnicas de Variável (na categoria "Diversos") na biblioteca padrão. Por exemplo, o Variable from JSON file (dict) permite carregar um arquivo json como variáveis que podem ser usadas em parâmetros diretivos com a sintaxe ${variable_prefix.variable_name[json-key][json-subkey]} . Há também variable from command ou variable (string) .

Você tem os métodos genéricos correspondentes se você construir uma técnica a partir do editor de técnica: procure por métodos na categoria "Variável", por exemplo "variável de comando" que permite (suspens) criar uma variável a partir do resultado de uma comando; ou, no caso de um conteúdo de arquivo json, como você disse, "variable dict from prefix". Esses métodos também podem ser usados na diretiva.

Be careful that when you use these directives, you need to define the variable before they are used, so check your policy order: https://docs.rudder.io/reference/5.0/usage/advanced_configuration_management.html#_directives_ordering

Templating

Se você precisa de um trabalho de modelo mais envolvido, você pode usar jinja ou bigode como explicado aqui: link

Cofre

No Rudder 5.0, adicionamos um plug-in do Vault que permite obter segredo (suspens, novamente) de uma instalação do Vault: link

Recursos mais antigos

Você pode encontrar algumas informações sobre como costumava ser feito em momentos esquecidos sem: link

Mais uma coisa

Isso não está diretamente relacionado ao seu problema, mas como é o oposto, pode ser relevante. Às vezes, você deseja obter informações de inventário de nós que não estão nos dados de inventário padrão e, em seguida, usar esses dados para criar grupos. Você pode estender o inventário com "gancho de inventário de nós": link

Espero que ajude!

    
por 04.10.2018 / 15:01