如何将电子邮件中发送的主机IP更改为新的GitLab用户到公开可见的IP,而不是本地的GitLab IP?

时间:2014-07-05 18:28:14

标签: gitlab bitnami

我已经在我的家庭办公室外面的个人专用Windows服务器(主机)上使用VMWare Workstation将Bitnami GitLab stack设置为正在运行的虚拟机实例。我的专用Windows服务器主机具有公开可见的静态IP地址。

通过在VMWare Workstation的虚拟网络编辑器中设置端口转发(使用NAT转换,而不是桥接),我已成功获得对作为guest虚拟机运行的GitLab应用程序的公共访问权限。只需输入静态IP(包括我选择的端口),我就可以从任何连接互联网的计算机访问GitLab Web界面。

我还在运行的GitLab实例中成功设置了两个Git存储库。

需要启用发送电子邮件,需要修改设置文件,这很简单(here is a link解释了如何正确设置SMTP)。

在邀请新用户之前,我想首先邀请自己(使用辅助电子邮件地址)来测试功能。

邀请用户时,会向该用户发送邀请/确认电子邮件,提供登录GitLab实例的链接。 但是,我发现邀请电子邮件中提供的网址是本地网络 IP地址(即192.168.44.129),而非公开可见的静态IP地址

我没有在GitLab Web界面中看到任何设置来更改电子邮件邀请中包含的主机IP,因此我假设我需要在某处更改配置文件中的设置。但我不知道这应该是GitLab设置,Nginx设置,RoR设置还是其他一些设置;以及设置/设置文件是什么。

我能找到的关于此的最佳链接(hereherehere)似乎并没有让我足够清晰地对如何做有效猜测

如何通过GitLab将新用户的邀请电子邮件中提供的URL(主机IP)从本地网络IP地址更改为全局可见(静态)IP地址?

1 个答案:

答案 0 :(得分:2)

两个提示为我指明了方向,一旦我解决了问题(正如我将要描述的那样),我发现了deceptively named subsection of the Bitnami GitLab stack official documentation中的详细信息。

第一个提示是在一个不太高调的答案here中找到的(与其他答案和接受的答案相比,其中一些答案有更多的赞成)。可以在gitlab.yml文件中找到GitLab帐户邀请电子邮件中使用的主机IP和端口的设置(截至今天,此文件在VM堆栈(可能还有其他)上的完整路径为{ {1}};请参阅/opt/bitnami/apps/gitlab/htdocs/config/gitlab.ymlhost设置以及其他整体有用设置。 (我对Rails世界没有经验,如果我理解正确的话,使用port设置文件显然可以解决Rails应用程序通常做的事情。)

上面的步骤 成功 - 但只有在服务器重新启动之前。不幸的是,当服务器重新启动时,.yml设置将被host中的任何内容覆盖为IP地址(ifconfig条目与您输入的内容保持一致)。

第二个提示是如何解决这个问题;我发现它hereport文件夹中有一个特殊脚本,其特定目的是 ,以重置此{(1)} init.d设置文件中的host参数。 (在我的场景中,这是多么美妙的“便利”。)只需在此文件中注释单行.yml(通过在行的前面添加exec /opt/bitnami/apps/gitlab/bnconfig --machine_hostname ...)即可解决问题。

完成上述两项更改后,问题就解决了。 GitLab邀请电子邮件成功包含服务器所需的静态IP地址(和端口),即使服务器重启也是如此。

正如我上面提到的,一旦我解决了问题,我就发现这个问题的答案已经在official Bitnami GitLab documentation中得到了解释(注意:从上面提示#1和提示#2都是隐藏在文档的同一小节中 - 一个接一个 - 它们并不突出;它们不能很好地突出;它们在第一次阅读时遇到次要细节,我认为;格式化不会引起注意我认为文件名和路径会很有帮助;而且它们所在的分段名称并不特别清楚,这将是正确的子部分,除了在我看来,回想起来。 / p>


ADDENDUM:对于发现它有用的任何人来说,使用GitLab从您自己的个人服务器上获取电子邮件需要更多详细信息 - 我在问题中只是简单地提及了这一点,因为我已经做到了。

但是为了未来访问者的完整性,我应该提一下,您需要通过修改名为#的文件在GitLab实例上正确设置SMTP(截至今天的完整路径为{{1} })。具体而言,与to be found in the official Bitnami GitLab documentation一样,您必须添加production.rb块并添加/取消注释其他一些设置,以便能够从正在运行的GitLab实例发送电子邮件。