2017-10-16 27 views
0

Je provision en utilisant Terraform et Chef, avec mon infrastructure sur Digital Ocean. Sur un noeud, j'ai Grafana. Ce noeud a un script qui doit savoir où sont MongoDB et Elasticsearch, car il met à jour ses tableaux de bord.Comment connaître les adresses IP des services sur les différents noeuds lors de l'approvisionnement?

Je ne sais pas quelles sont les adresses IP de MongoDB ou Elasticsearch, car elles sont sur des noeuds différents lors du provisionnement.

Comment puis-je résoudre ce problème?

Répondre

1

La réponse entièrement basée sur Chef consiste à utiliser l'API de recherche Chef. Cela permet d'interroger les nœuds en fonction des attributs, dans ce cas probablement roles:mongo ou similaire. La recherche de chef est un système relativement lent à converger, le chef étant dirigé des deux côtés dans le bon ordre, ce qui peut prendre plusieurs minutes. Des outils plus récents et dédiés comme Consul ou Eureka peuvent se reconvertir en quelques millisecondes.

+0

Je vais jeter un coup d'oeil à Consul, ça a l'air sympa! – Lechucico