receita de chef com dependências externas de provisionamento

2

Em todos os exemplos do Chef que eu vi o escalonamento automático funciona bem fácil - você provisiona algo como o host do banco de dados, depois os servidores da web. Você pode criar quantos servidores da Web desejar - todos eles usarão o mesmo host de banco de dados (não são necessárias alterações).

Mas e se o meu livro de receitas de aprovisionamento de receita / nó exigir alterações de configuração em alguns outros nós de back-end? Como eu posso fazer isso com o Chef? Por exemplo, tenho um refletor de rota de BGP existente (bird), provisiono um novo nó de borda de ave e, como uma dependência, tenho que gerar uma nova configuração de peer iBGP e reler o arquivo de configuração no nó do refletor de rota BGP.

Qual é a melhor prática? Devo usar chef-push-jobs para enviar alterações para os nós do refletor de rota BGP?

    
por Yuri 27.02.2017 / 20:02

1 resposta

1

O Chef realmente não tem um sistema para isso internamente. Nos traços mais amplos, o que você está falando é "descoberta de serviço", quando um serviço quer descobrir informações sobre outro serviço na rede. O Chef possui um sistema SD simples por meio da API search() , mas também há sistemas SD dedicados, como Consul, Eureka e mDNS / Autoconf.

Depois que você tiver os dados do serviço de forma que possam ser acessados, a próxima pergunta é como lidar com as atualizações que se espalham por uma rede. Chef por conta própria geralmente usa um serviço de modo daemon executando uma convergência a cada X segundos. Isso significa que se você definir X para 60, depois de 119 segundos, tudo será atualizado. Se você quiser algo mais rápido, há opções como enviar notificações de um nó para outro ou usar um sistema de orquestração central para pressionar a alteração original e lidar com as atualizações em cascata. Chef Jobs Push é teoricamente utilizável aqui, mas eu realmente não recomendo. Algo como o Consul + Consul Templates é provavelmente o que você quer para configurações de fast-churn e atualizações de SD, ou apenas permitir que o intervalo de Chef cuide disso para coisas que mudam com menos frequência.

    
por 28.02.2017 / 06:18

Tags