gitlab+drone 安装部署
gitlab服务地址:10.0.1.2
drone服务地址:10.0.1.12
CentOS版本: 8.3
gitlab版本: gitlab-ee 13.2
drone版本:latest。。。
部署gitlab
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #### 打开防火墙访问控制 firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https systemctl reload firewalld
#### 或者关掉防火墙 # systemctl stop firewalld # systemctl disable firewalld
#### 配置gitlab的yum仓库 curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
#### 安装 yum install -y gitlab-ee
#### 修改配置文件 vi /etc/gitlab/gitlab.rb
|
主要修改external_url等配置,改为ip或者域名, 比如本例是 external_url 'http://10.0.1.2'
修改配置文件后执行进行更新:
1 2 3
| ## 如果initdb报错,执行: ## export LC_ALL=C gitlab-ctl reconfigure
|
gitlab项目目录:/var/opt/gitlab
gitlab服务名称:gitlab-runsvdir
启动、停止、重启服务:
1 2
| systemctl (start|stop|restart|status) gitlab-runsvdir gitlab-ctl (start|stop|restart|status)
|
关联drone服务
使用root账户在gitlab上关联drone服务,因此以后所有的Project和Group必须用root账号来创建!
- 在gitlab上创建认证。右上角头像EditProfile - User Settings - Applications
填写名称(name),回调地址(Redirect URI),勾选api、read_user权限

- 创建完成,复制Application ID 和Secret

- 生成drone server和agent之间使用的验证secret
1 2
| $ openssl rand -hex 16 945f80dab338fda930e1f76d4a22116d
|
部署drone:
10.0.1.12 上执行:
1 2 3 4 5 6
| yum install -y docker docker pull drone/drone:latest docker pull drone/drone-runner-docker:latest mkdir /var/lib/drone systemctl stop firewalld systemctl disable firewalld
|
注:CentOS 8 目前docker
替换为了podman
, 因此需设置开机自启 podman.socket,并立即启动:
1
| systemctl enable podman.socket --now
|
新建run_drone.sh, 填入gitlab生成的ID和Secret,以及生成的验证secret
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| docker run \ --volume=/var/lib/drone:/data \ --env=DRONE_AGENTS_ENABLED=true \ --env=DRONE_GITLAB_SERVER=http://10.0.1.2 \ --env=DRONE_GITLAB_CLIENT_ID=ed18182ff26f2a15c7b3085f6956c237a266c6ba4c06359196ee56a71774c84c \ --env=DRONE_GITLAB_CLIENT_SECRET=b1bf5dbc892161337156eae9ec75b9c8ae954c30d759be4f51c8d86c78a905c7 \ --env=DRONE_RPC_SECRET=945f80dab338fda930e1f76d4a22116d \ --env=DRONE_SERVER_HOST=10.0.1.12 \ --env=DRONE_SERVER_PROTO=http \ --env=DRONE_TLS_AUTOCERT=false \ --env=DRONE_LOGS_DEBUG=true \ --publish=80:80 \ --publish=443:443 \ --restart=always \ --detach=true \ --name=drone \ drone/drone
|
启动docker(podman):
浏览器输入:http://10.0.1.12, 进入drone页面,点击continue,进入授权界面:

注册drone,然后即可调入drone界面:

成功后在10.0.1.12上部署 docker runner:
1 2 3 4 5 6 7 8 9 10 11 12
| docker run -d \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DRONE_RPC_PROTO=http \ -e DRONE_RPC_HOST=10.0.1.12 \ -e DRONE_RPC_SECRET=945f80dab338fda930e1f76d4a22116d \ -e DRONE_RUNNER_CAPACITY=2 \ -e DRONE_RUNNER_NAME=10.0.1.12 \ -e DRONE_LOGS_DEBUG=true \ -p 3000:3000 \ --restart always \ --name agent \ drone/agent
|
使用drone
- root账户下打开上面的图标进入Admin Area - Settings - Network - Outbound requests,勾选
Allow requests to the local network from web hooks and services
,避免drone项目激活失败!


- 点击对应项目,点击“ACTIVATE REPOSITORY”按钮,激活项目,之后就可以