即使在版本 6.2.0.0 中,也没有任何适当的程序可以使用静态 IP 或 FQDN。我正在使用自己的绑定服务器,并为我的 bitnami gitlab 服务器本地 IP 提供完整的反向记录。(因为我在 vpn 中和 vpc 中)这个解决方案应该在任何环境中工作。这个解决方案并不像所有文本所表明的那样先进。我只是想确保我对这个问题提供了足够的背景。
显然,init.d 脚本“/etc/init.d/bitnami”首先从“/opt/bitnami/scripts/init/functions”加载需要/使用的 bash 函数。然后 init.d (bitnami) 脚本执行位于此文件夹中的“/opt/bitnami/var/init/pre-start/”脚本(按文件名的排序顺序执行,即 010、020、030 等)。然后执行“/opt/bitnami/ctlscript.sh start”。这启动了大多数(如果不是全部)bitnami gitlab 运行所需的东西。
如果“/opt/bitnami/ctlscript.sh”脚本返回0($?==0),表示成功!init.d (bitnami) 脚本再次按排序顺序执行位于此目录中的“/opt/bitnami/var/init/post-start/”脚本。在 post-start 目录中包含脚本“020_update_ip”。
长话短说(让您远离所有功能信息)bitnami 做了很多冗余的东西(功能)来决定使用什么作为“主机地址”。它总共使用了四个函数,具有不同的返回值。它还会查询 bitnami 自己的服务器以找出您的公共 IP。我的服务器位于 VPC 内部,具有弹性 IP 和本地 IP 的 FQDN。他们的系统几乎总是决定为我的弹性 IP 使用反向公共 PTR DNS 名称。总是会穿,他们肯定喜欢使用您的 AMZ 公共 dns。
我整理了所有疯狂的非功能检测逻辑(对您的环境做出疯狂的假设,并将以下逻辑添加到“/opt/bitnami/var/init/post-start/020_update_ip”。我添加了一个额外的 elif 条件,以看看你是否在你的环境中声明了 $GITLABHOST。如果是,则使用该值作为 PUBLIC_IP。因此,当脚本运行 updateip|bnconfig 时,它将使用 $GITLABHOST 提供的值。
“/opt/bitnami/var/init/post-start/020_update_ip” >
if [ "x$1" != "x" ]; then
PUBLIC_IP=$1
elif [ -n $GITLABHOST ]; then
PUBLIC_IP=$GITLABHOST
else
PUBLIC_IP=`get_server_domain`
fi
然后我将以下内容添加到“/opt/bitnami/scripts/setenv.sh”中
##### SET STATIC HOST ADDRESS IP|FQDN #####
GITLABHOST="server.domain.com"
export GITLABHOST
我在这里添加了这个,以便它完全集成到 Bitnami Gitlab 6.2 中,而不用担心它的存在。因为它是在启动后脚本之前由“/opt/bitnami/ctlscript.sh”(。“$INSTALLDIR/scripts/setenv.sh”)加载的。其他人可能想把它放在其他地方。确保您提供有效的主机/IP 地址 :)