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.