本来不打算在公司搭建这个,我之前一直使用的是码云企业版。公司最近要搞私有云。所以有些东西都需要自己去弄。这里记录下自己搭建gitlab的步骤和流程。

1.搭建之间需要安装环境,我的机器比较干净好多都需要装

安装gitlab依赖环境, 如果提示没有权限的 可以使用 sudo ,或者直接切换到 root目录下:su 切换

sudo yum -y install policycoreutils openssh-server openssh-clients postfix

2. 我这边添加了一个邮件服务功能 所以需要开启这个东东

systemctl enable postfix && systemctl start postfix --如果不需要可以开启

3.下载gitlab安装包,并进行安装

centos7 系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7

我直接使用wget 命令,如果提示weget不存在什么的额,需要 执行:sudo yum install wget

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm
进行rpm安装
rpm -i gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm

4.修改gitlab配置文件中的访问地址信息:

vim  /etc/gitlab/gitlab.rb

修改: external_url 地址为 自己的ip和端口号,修改完成后保存退出!
标题

5.重置gitlab配置,并且重启gitlab

## 重置配置
gitlab-ctl reconfigure
## 重启服务
gitlab-ctl restart

6.访问gitlab页面,我这变是用ip:port方式的。所以需要开放端口号 (也可以使用域名代替)

### 我这边使用的9999 端口 进行开放
firewall-cmd --zone=public --add-port=9999/tcp --permanent
####  配置立即生效
firewall-cmd --reload

7. 登录  ,第一次登录有的说是不要密码,我自己试的是不行,所以需要修改 管理账号的面

具体步骤:

   

修改超级管理员 root 的密码:

1. 进入到gitlib bin 目录下: 
  [root@yulang yulang]# cd /opt/gitlab/bin/
2. 执行初始化密码命令:
   [root@yulang bin]# sudo gitlab-rails console production
3、查找 第一个用户 
 irb(main):001:0>  u=User.where(id:1).first    ## 执行完后 会看到你的root管理员账号的信息
4. 修改密码:
  irb(main):002:0> u.password='12345678'
   => "12345678"
5.确认修改密码:
   irb(main):003:0> u.password_confirmation='12345678'
  => "12345678"
6.保存修改:
  irb(main):004:0> u.save!
  => true
7.退出操作:
  irb(main):005:0> exit

在此 使用 root/12345678 账号进行登录 即可。记录每天的点点滴滴。

 

设置gitlab的邮件功能:

需要 在 vim  /etc/gitlab/gitlab.rb

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com" ## 此处要改成你的smtp地址
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "yulang1992514@163.com"   ## 此处要改成你的邮箱
gitlab_rails['smtp_password'] = "##############"   ## 此处要改成你的邮箱密码
gitlab_rails['smtp_domain'] = "163.com"       ## smtp地址域名
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'yulang1992514@163.com' ## 发件邮箱




添加完后 从新加载配置
gitlab-ctl reconfigure

 如果出现这种错误 可以先忽略 直接执行下一步操作:官方有类似错误的方案(https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/966)
[root@yulang bin]# vim /etc/gitlab/gitlab.rb 
[root@yulang bin]# gitlab-ctl reconfigure
Starting Chef Client, version 12.4.1
resolving cookbooks for run list: ["gitlab"]
Synchronizing Cookbooks:
  - package
  - runit
  - gitlab
Compiling Cookbooks...
Recipe: gitlab::default
  * directory[/etc/gitlab] action create (up to date)
  
  ================================================================================
  Recipe Compile Error in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb
  ================================================================================
  
  NoMethodError
  -------------
  undefined method `[]=' for nil:NilClass
  
  Cookbook Trace:
  ---------------
    /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb:35:in `from_file'
  
  Relevant File Content:
  ----------------------
  /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/default.rb:
  
   28:    group "root"
   29:    mode "0775"
   30:    action :nothing
   31:  end.run_action(:create)
   32:  
   33:  Gitlab[:node] = node
   34:  if File.exists?("/etc/gitlab/gitlab.rb")
   35>>   Gitlab.from_file("/etc/gitlab/gitlab.rb")
   36:  end
   37:  node.consume_attributes(Gitlab.generate_config(node['fqdn']))
   38:  
   39:  if File.exists?("/var/opt/gitlab/bootstrapped")
   40:  	node.set['gitlab']['bootstrap']['enable'] = false
   41:  end
   42:  
   43:  directory "/var/opt/gitlab" do
   44:    owner "root"
  
  
  Running handlers:
[2021-04-16T22:13:26+08:00] ERROR: Running exception handlers
  Running handlers complete
[2021-04-16T22:13:26+08:00] ERROR: Exception handlers complete
  Chef Client failed. 0 resources updated in 16.151877663 seconds
[2021-04-16T22:13:26+08:00] FATAL: Stacktrace dumped to /opt/gitlab/embedded/cookbooks/cache/chef-stacktrace.out
[2021-04-16T22:13:26+08:00] ERROR: undefined method `[]=' for nil:NilClass
[2021-04-16T22:13:28+08:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
[root@yulang bin]# gitlab-ctl restart



## 重启服务
gitlab-ctl restart



# 进入 gitlab-rails console 控制台f发送测试邮件:
 gitlab-rails console 
 Notify.test_email('******.com', 'test', 'yulang hello!').deliver

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐