Linux 下 Gitlab 相关配置记录
# 修改默认端口
1、修改/etc/gitlab/gitlab.rb
文件,如果有如下参数直接修改,如果没有就新增
nginx['listen_port'] = 8088
2、修改默认的gitlab nginx的web服务80端 /var/opt/gitlab/nginx/conf/gitlab-http.conf
server { ## HTTPS server
listen *:8088;
}
2
3
3、初始化并重启组件:
gitlab-ctl reconfigure
gitlab-ctl restart
2
注意
注意:如果修改完gitlab-http.conf再运行gitlab-ctl reconfigure,就会被还原,修改并不会被覆盖。
# IP地址设置(显示http地址)
1、修改gitlab.yml
文件
找到gitlab.yml
文件中的host
值为实际的域名或服务器IP地址即可(不建议直接修改gitlab.yml文件。 因为一旦被人执行 gitlab-ctl reconfigure, 会被覆盖。)
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
2、修改gitlab.rb
文件
找到external_url
替换成对应 IP 即可
vim /etc/gitlab/gitlab.rb
3.修改好之后保存
执行命令:wq保存
4.重启
执行gitlab-ctl restart
重启
# 解决头像不显示
vim /etc/gitlab/gitlab.rb
在gitlab.rb
中找到如下两行关于Gravatar Settings
的配置
# gitlab_rails['gravatar_plain_url'] = 'http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon'
# gitlab_rails['gravatar_ssl_url'] = 'https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon'
2
替换成
gitlab_rails['gravatar_plain_url'] = 'http://cdn.libravatar.org/avatar/%{hash}?s=%{size}&d=identicon'
gitlab_rails['gravatar_ssl_url'] = 'http://cdn.libravatar.org/avatar/%{hash}?s=%{size}&d=identicon'
2
重新生成配置文件并重新加载
gitlab-ctl reconfigure
gitlab-ctl restart
# 查看gitlab启动状态
ps aux|grep gitlab
2
3
4
# 配置163邮箱
打开配置文件
vim /etc/gitlab/gitlab.rb
找到以下配置并编辑
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 25 # 网易端口为25
gitlab_rails['smtp_user_name'] = "xxxxxx@qq.com"
gitlab_rails['smtp_password'] = "xxxxxxxxxx" # POP3/SMTP/IMAP服务授权密码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_display_name'] = 'xxxxxxx' # 显示名字
gitlab_rails['gitlab_email_from'] = "xxxxxx@qq.com" # 发件邮箱
user["git_user_email"] = "xxxxxx@qq.com"
# 以下配置信息为访问配置
external_url 'gitlab.xxxxx.cn' # 真实IP或域名,无须添加端口号
gitlab_rails['host'] = 'localhost' # 真实IP或域名
gitlab_rails['port'] = 8080 # 映射80端口的主机(宿主)端口
gitlab_rails['gitlab_ssh_host'] = 'localhost' # 真实IP或域名
gitlab_rails['gitlab_shell_ssh_host'] = 8082 # 映射22端口的主机(宿主)端口
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
使之生效
gitlab-ctl reconfigure
gitlab-ctl restart
2
测试
gitlab-rails console
irb(main):003:0> Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
2
# CI/CD自动部署
# 开启Page -> 8806
1、开启GitLab Pages功能
修改 gitlab.rb 的配置文件
vim /etc/gitlab/gitlab.rb
gitlab pages 的域名我们假设为 http://R7102/
你也可以根据自己的喜好来填,切记不能是 IP 地址!
##! Define to enable GitLab Pages
pages_external_url "http://R7102/"
gitlab_pages['enable'] = true
2
3
保存后,执行以下命令
# 刷新配置
gitlab-ctl reconfigure
# 重启 gitlab
gitlab-ctl restart
2
3
4
然后我们需要先启动 gitlab-runner
服务
gitlab-runner start
启动成功后我们就需要开始注册 runner 了,具体执行命令可通过下图步骤获得,需要注意的是登录的账号必须为管理者账号,否则看不到那个“设置”按钮
2、安装配置GitLab Runner 下载地址:https://packages.gitlab.com/runner/gitlab-runner (opens new window) ,或者下载并安装二进制文件:
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner
# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
# Install and run as a service (建议将--user=gitlab-runner改为--user=root)
# sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner install --user=root --working-directory=/home/gitlab-runner
sudo gitlab-runner start
2
3
4
5
6
7
8
9
10
11
12
13
注册runner的命令
# sudo gitlab-runner register --url http://gitlab.zhenglinglu.cn/ --registration-token KA4rsovXhGamZ1yCAZQK
sudo gitlab-runner register
2
彻底卸载 gitlab-runner
sudo gitlab-runner uninstall
sudo rm -rf /usr/local/bin/gitlab-runner
sudo userdel gitlab-runner
sudo rm -rf /home/gitlab-runner/
sudo rm -rf /etc/systemd/system/gitlab-runner.service
2
3
4
5
修改 gitlab-runner 权限
# 先卸载gitlab-runner
gitlab-runner uninstall
# 然后再重新安装,并且设置用户为root。
gitlab-runner install --user=root --working-directory=/home/gitlab-runner
# 重启gitlab-runner
sudo service gitlab-runner restart # gitlab-runner start
# 查看当前启动的用户角色
ps aux|grep gitlab-runner
# 可以把主目录的文件权限也改成root。
chown -R root:root gitlab-runner/
# 参考地址:https://blog.csdn.net/qq_39940674/article/details/127616784
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
gitlab-runner 常用命令
gitlab-runner stop #停止服务
gitlab-runner start #启动服务
gitlab-runner restart #重启服务
gitlab-runner list #查看各个 Runner 的状态
gitlab-runner verify #此命令检查注册的runner是否可以连接,但不验证GitLab服务是否正在使用runner。 --delete 删除
gitlab-runner register #默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner unregister #该命令使用GitLab取消已注册的runner。
gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n #使用令牌注销
gitlab-runner unregister --name test-runner #使用名称注销(同名删除第一个)
gitlab-runner unregister --all-runners #注销所有
2
3
4
5
6
7
8
9
10
11
# gitlab-ctl 命令
gitlab-ctl start #启动
gitlab-ctl stop #停止
gitlab-ctl status #状态
gitlab-ctl restart #重启
gitlab-ctl tail #查看实时log
gitlab-ctl tail gitlab-rails # 拉取/var/log/gitlab下子目录的日志
gitlab-ctl tail nginx/gitlab_error.log # 拉取某个指定的日志文件
netstat -tnlp | grep # 查看被占用端口
ps aux|grep gitlab-runner # 查看当前启动的用户角色
2
3
4
5
6
7
8
9
10
11
12
# 遇到的问题
1、Gitlab CI Failed: NPM command not foundGitlab CI 失败:未找到 NPM 命令,解决方案如下:
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
2、gitlab-runner报错:fatal: git fetch-pack: expected shallow listfatal: The remote end hung up unexpecte(centos快速使用yum更新git)
#卸载旧版本
yum remove git -y
#下载rpm包(centos 7)
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm
#安装
yum install git
#更新下git
yum update git
#查看版本
git --version
2
3
4
5
6
7
8
9
10
11
12
13
14
3、Linux:sudo,没有找到有效的 sudoers 资源
首先,这是因为用户的权限不够导致的。使用 ls -l /etc/passwd
查看所有用户及权限。只有可读权限(r),说明用户的权限不够。
因此,我们可以用以下方法修改用户权限:
su root #进入超级用户
ll /etc/sudoers #查看/etc/sudoers的权限
chmod 777 /etc/sudoers #修改/etc/sudoers文件的权限成可读可写可执行
echo 'username ALL=(ALL) ALL' >> /etc/sudoers # 'username'指用户名,给指定用户名权限
chmod 440 /etc/sudoers #退出保存/etc/sudoers文件
su username #切换用户到指定用户
2
3
4
5
6
7
8
9
10
11
最后,在执行安装或下载等各种命令时,使用 sudo 加指令就行了。
提示:sudo: gitlab-runner:找不到命令
# 修改/etc/sudoers文件;找到这一行
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
# 将要执行的命令所在的目录添加到后面,即可
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
# 验证安装信息
gitlab-runner -v
2
3
4
5
6
- 02
- Node与GLIBC_2.27不兼容解决方案08-19
- 03
- Git清空本地文件跟踪缓存08-13