GitLab安装
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
sudo echo "deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/gitlab-ce.list
sudo apt-get update
sudo apt-get install gitlab-ee
修改/etc/gitlab/gitlab.rb
文件,尤其是external_url
,可以改为局域网的域名,例如code.io
然后执行sudo gitlab-ctl reconfigure
,在执行该命令后24小时内,管理员密码会被删除,位置在/etc/gitlab/initial_root_password
,账号名为root
dns解析设置
由于bind9一直设置不好,使用的是coredns。
首先得安装docker,这一步略去
首先得停掉systemd-resolved
的服务,不然53端口会被占用
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
然后创建文件/etc/coredns/corefile
内容为:
.:53 {
hosts {
# ip host
192.168.111.22 code.io
fallthrough
}
# forward . dns-1 dns-2
forward . 114.114.114.114
log
}
# 启动容器
docker run -it -d --name dns --net=host -v /etc/coredns:/etc/coredns/ coredns/coredns:latest -conf /etc/coredns/corefile
# 设置自动重启
docker update --restart=always dns
然后把内网的路由器的dns服务器设置为当前电脑的ip,连上该路由器的电脑都能自动解析该域名到GitLab了
GitLab Runner设置
安装
# 下载
# amd64
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb"
# arm64,可以给Jetson使用
curl -LJO "https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_arm64.deb"
# 安装
sudo dpkg -i gitlab-runner_amd64.deb
# 以gitlab-runner用户安装,runner类型为shell
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
# 启动
sudo gitlab-runner start
注册 shell runner
GitLab管理员添加一个runner,然后在创建后的页面复制token,保持该页面,在runner机器上运行
sudo gitlab-runner register \
--non-interactive \
--url "https://code.io/" \
--token "$RUNNER_TOKEN" \
--executor "shell" \
--description "my runner"
等待网页发生变化提示创建成功即可使用
runner的配置文件默认在/etc/gitlab-runner/config.toml
检查
sudo gitlab-runner verify
sudo gitlab-runner health-check
sudo gitlab-runner status
磁盘休眠设置
安装hdparm
sudo apt install hdparm
执行fdisk -l
查看分区名称,然后打开/etc/hdparm.conf
/dev/sda {
spindown_time = 120
apm = 128
}
然后可以通过sudo hdparm -C /dev/sda
查看磁盘状态,如果磁盘一直没有休眠,可以用sudo lsof /dev/sda
查看访问磁盘的进程
GitLab备份
备份到磁盘的脚本
#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
gitlab-rake gitlab:backup:create BACKUP=$DATE
cp /etc/gitlab/gitlab.rb /disk0/backup/gitlab/$DATE-gitlab.rb
cp /etc/gitlab/gitlab-secrets.json /disk0/backup/gitlab/$DATE-gitlab-secrets.json
脚本中备份了secrets.json,这很重要,不然恢复后很多东西用不了
TODO: 恢复脚本
优化内存占用
GitLab占用内存过多经常导致gcc编译崩溃
目前参考 该文章的方案暂时修改了一些配置
ruby {title="/etc/gitlab/gitlab.rb"} sidekiq['concurrency'] = 15 postgresql['shared_buffers'] = '256M' postgresql['max_worker_processes'] = 8