gitlab-ctl reconfigure fails because of uninitialized constant #Class:Gitlab::Settings

        微软将会在3月份的系统安全补丁中强制启用ldap签名和通道绑定安全特性,公司的gitlab使用的是AD域登录,需要更改端口配置,使用ssl加密。在端口配置完成后,reconfigure失败,报错内容如下。

NameError

uninitialized constant #Class:Gitlab::Settings

Cookbook Trace:

/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/config.rb:21:in from_file' /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb:26:infrom_file’

Relevant File Content:

/opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/config.rb:

14: # See the License for the specific language governing permissions and

15: # limitations under the License.

18: Gitlab[:node] = node

20: if File.exists?(’/etc/gitlab/gitlab.rb’)

21>> Gitlab.from_file(’/etc/gitlab/gitlab.rb’)

22: end

24: node.consume_attributes(Gitlab.generate_config(node[‘fqdn’]))

Platform:

x86_64-linux

        看报错信息,它显示的是config.rb 和default.rb这两个文件的某个参数是未初始化常量。开始以为是显示的Gitlab.rom_file这个变量没有定义。或者是和定义的大小写有误。在多次修改之后,均未对结果产生改变。但是发现了一个问题,无论怎样改变这两个文件的内容,gitlab-ctl reconfigure之后,这两个文件都会恢复初始的内容,因此觉得问题可能不在这里,应该是和修改gitlab.rb文件有关。

        确认了问题点之后开始排查gitlab.rb文件的语法问题,没有找到。然后gitlab官网下载了gitlab.rb的模板文件:https://gitlab.com/gitlab-org/omnibus-gitlab/raw/master/files/gitlab-config-template/gitlab.rb.template。将目前文件备份,使用这个模板文件作为gitlab.rb,执行gitlab-ctl reconfig,执行成功。说明问题是之前的gitlab.rb文件有出错问题。

        仔细检查了之前的文件,但是未找到问题点。只好对模板文件进行配置,配置上目前环境的信息,执行gitlab-ctl reconfigure,成功。测试环境可用。

        总结下来,这个报错是因为修改gitlab.rb配置文件的时候误操作将配置文件修改错误导致reconfigure失败,但是报错的信息会误导你去看另外两个配置文件的内容修改。如果找不到gitlab.rb文件的问题,使用模板文件重新进行配置即可。

你可能感兴趣的:(gitlab-ctl reconfigure fails because of uninitialized constant #Class:Gitlab::Settings)