如果我们不能将服务器主机名存储在此脚本中,我可以从哪里提取服务器主机名?

Where can I pull the server host name from if we can't store it in this script?

我注意到有人在 GemFire 集群上为 运行 创建了一堆脚本,他们在这些集群中拥有同一脚本的多个副本,其中脚本之间的唯一区别是服务器名称。

这是 Github 存储库的图片

脚本的样子:

#!/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 地址或服务器名称,出于此问题的目的已将其删除。

我想创建一个带有服务器名称参数的脚本。问题是:我不确定 store/retrieve 服务器 ip/host 名称的最佳位置,让脚本引用它,有什么想法吗? 缓存服务器的数量将根据环境、应用程序和集群而有所不同。

我们的开发管道应该像这样理想地工作:

  1. 用户将文件提交到 GitHub 存储库
  2. 触发 Jenkins 作业
  3. Jenkins 作业将文件复制到每个缓存服务器,使用 stop_cache.sh 脚本关闭该服务器,然后 运行 使用 start_cache.sh 脚本。缓存服务器的数量因集群而异。
  4. GemFire 缓存服务器已更新为新文件。

采用@nos

建议的方法

Right now you have them hardcoded in each file it seems. So extract them to a separate file(s), loop through entries in that file and run for host in $(cat cache_hostnames.txt) ; ./stop_cache.sh $host ; done and something similar for other kinds of services?

将服务器名称放在一个文件中,并循环遍历该文件。

可能对这个项目感兴趣:

https://github.com/Pivotal-Data-Engineering/gemfire-manager