gitlab-ctl reconfigure fails bec
微软将会在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文件的问题,使用模板文件重新进行配置即可。