2017-06-21 20 views
0

我注意到有人創建了一堆在GemFire集羣上運行的腳本,他們在這裏有多個相同腳本的副本,其中腳本之間的唯一區別是服務器名稱。如果我們無法將其存儲在此腳本中,我可以從哪裏獲取服務器主機名?

這裏是Github上回購

screen shot of our GitHub repo for scripts

的腳本如下的圖片,如:

#!/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 = IP地址或服務器名稱,該腳本設計,去掉爲這個問題的目的。

我想用服務器名稱的參數創建一個腳本。問題是:我不確定最佳位置將存儲/檢索服務器IP /主機名稱,並讓腳本引用它,有什麼想法?緩存服務器的數量將因環境,應用程序和羣集而異。

我們的發展管道應該像這樣的理想:

  1. 用戶提交一個文件到GitHub庫
  2. 觸發器詹金斯工作
  3. 詹金斯的工作拷貝文件到每個緩存服務器,採用關閉該服務器stop_cache.sh腳本,然後運行start_cache.sh腳本。緩存服務器的數量因集羣而異。
  4. GemFire緩存服務器更新爲新文件。
+0

的dns將是這個問題的經典解決方案。你基本上在問如何服務發現。 – raam86

+0

現在,你可以將它們硬編碼到每個文件中。因此,將它們解壓縮到一個單獨的文件中,循環訪問該文件中的條目,然後在$(cat cache_hostnames.txt)中運行'for host。 ./stop_cache.sh $ host;完成「和類似的其他類型的服務? – nos

回答

0

眼下與建議的方法過去了@nos

你有他們在,似乎每個文件的硬編碼。因此,將它們提取到單獨的文件中,循環訪問該文件中的條目並在$(cat cache_hostnames.txt)中爲主機運行; ./stop_cache.sh $ host;爲其他類型的服務做了些什麼?

將服務器名稱放在一個文件中,並遍歷該文件。

相關問題