J'ai remarqué que quelqu'un créait un tas de scripts pour fonctionner sur des clusters GemFire, où ils ont plusieurs copies du même script où la seule différence entre les scripts est le nom du serveur.Où puis-je retirer le nom d'hôte du serveur si nous ne pouvons pas le stocker dans ce script?
Voici une image du repo Github
Qu'est-ce que le script ressemble:
#!/bin/bash
source /sys_data/gemfire/scripts/gf-common.env
#----------------------------------------------------------
# Start the servers
#----------------------------------------------------------
(ssh -n <SERVER_HOST_NAME_HERE> ". ${GF_INST_HOME}/scripts/gfsh-server.sh gf_cache1 start")
SERVER_HOST_NAME_HERE
= le nom d'adresse IP ou serveur que le script a été conçu pour, retiré pour les besoins de ces questions.
Je voudrais créer un script avec un paramètre pour le nom du serveur. Le problème est: Je ne suis pas sûr exactement où le meilleur emplacement serait de stocker/récupérer le nom d'hôte/l'hôte du serveur, et laisser le script le référencer, des idées? Le nombre de serveurs de cache varie en fonction de l'environnement, de l'application et du cluster.
Notre pipeline de développement devrait fonctionner comme ceci idéalement:
- Les utilisateurs commettent un fichier à GitHub repo
- Déclencheurs Jenkins emploi
- fichier copies d'emploi Jenkins à chaque serveur de cache, arrête ce serveur en utilisant la
stop_cache.sh
, puis exécute le scriptstart_cache.sh
. Le nombre de serveurs de cache peut varier d'un cluster à l'autre. - Les serveurs cache GemFire sont mis à jour avec un nouveau fichier.
Dns serait une solution classique pour ce problème. Vous demandez essentiellement comment faire pour la découverte de service. – raam86
Maintenant, vous les avez codé en dur dans chaque fichier, il semble. Donc, les extraire dans un ou plusieurs fichiers séparés, faire une boucle sur les entrées de ce fichier et exécuter 'for host in $ (cat cache_hostnames.txt); ./stop_cache.sh $ host; fait »et quelque chose de similaire pour d'autres types de services? – nos