Drone CICD
drone gitlab harbor CICD部署
drone.yml 配置
drone 构建 vue项目
本文档使用 MrDoc 发布
-
+
首页
drone gitlab harbor CICD部署
![](/media/202305/2023-05-18_122720_0351230.9679800930609771.png) 配置docker 优化 可以省略 ``` tee /etc/docker/daemon.json << EOF { "graph":"/data/docker", "oom-score-adjust": -1000, #设置守护程序的oom_score_adj(默认值为-500) "log-driver": "json-file", #容器日志的默认驱动程序(默认为“ json-file”) "log-opts": { "max-size": "100m", "max-file": "3" }, "max-concurrent-downloads": 10, #设置每个请求的最大并发下载量(默认为3) "max-concurrent-uploads": 10, #设置每次推送的最大同时上传数(默认为5) "registry-mirrors": ["https://5biptv7a.mirror.aliyuncs.com"], #镜像加速地址 "insecure-registries" : ["0.0.0.0/0"], #任意仓库能访问 "storage-driver": "overlay2", #要使用的存储驱动程序 "storage-opts": [ "overlay2.override_kernel_check=true" #存储驱动程序选项 ] } EOF ``` ## gitlab 部署 ``` docker pull gitlab/gitlab-ce #下载gitlab 稳定版本 #运行 将配置文件,数据日志等外挂方便查看修改 --hostname 宿主机IP docker run -itd \ --hostname 192.168.137.128 \ -p 8443:443 \ -p 8080:80 \ -p 1022:22 \ -v /heme/gitlab/config:/etc/gitlab \ -v /heme/gitlab/logs:/var/log/gitlab \ -v /heme/gitlab/data:/var/opt/gitlab \ -e TZ=Asia/Shanghai \ --name gitlab \ --restart always \ --privileged=true \ gitlab/gitlab-ce docker exec -it gitlab bash vi /etc/gitlab/gitlab.rb external_url = 'http://192.168.137.128:8080' gitlab_rails['gitlab_ssh_host'] = '192.168.137.128' gitlab_rails['gitlab_shell_ssh_port'] = 1022 vi /var/opt/gitlab/gitlab-rails/etc/gitlab.yml vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml production: &base # # 1. GitLab app settings # ========================== ## GitLab settings gitlab: ## Web server settings (note: host is the FQDN, do not include http://) host: 192.168.137.128 port: 8080 https: false ssh_host: 192.168.137.128 ssh_port: 1022 gitlab-ctl reconfigure #让修改后的配置生效 gitlab-ctl restart #重启gitlab exit #推出容器 ``` `gitlab 初始 root 密码` cat /etc/gitlab/initial_root_password ## 部署 Harbor ``` wget -P /home/harbor/ https://github.com/vmware/harbor/releases/download/v1.2.0/harbor-online-installer-v1.2.0.tgz cd /home/harbor/ tar zxf harbor-online-installer-v1.2.0.tgz #修改配置文件 vim /home/harbor/harbor/harbor.cfg hostname = raisehands.cn #harbor域名或IP ui_url_protocol = http #默认使用的protocol db_password = root123 #harbor数据库ROOT用户链接的密码 max_job_workers = 3 self_registration = off #不允许注册用户 customize_crt = on project_creation_restriction = adminonly #设置只有管理员可以创建项目 harbor_admin_password = Harbor12345 #admin用户登录密码Harbor12345 #执行安装脚本 /home/harbor/harbor/install.sh #Harbor 的日常运维管理是通过docker-compose来完成的,Harbor本身有多个服务进程,都放在docker容器之中运行,我们可以通过docker-compose ps命令查看 #启动Harbor docker-compose start #停止Harbor docker-comose stop #重启Harbor docker-compose restart ``` ## 部署 Drone ### 配置gitlab 配置gitlba获取 `DRONE_GITLAB_CLIENT_ID ` `DRONE_GITLAB_CLIENT_SECRET ` 登录gitlab并配置gitlab外部认证 Url为drone访问地址:http://raisehands.cn:8081/login,按自身部署drone环境修改Url。 ![](/media/202305/2023-05-18_123146_5530640.3526412790663569.png) ![](/media/202305/2023-05-18_123202_3364840.32728420277253956.png) Gitlab 10.6 版本以后为了安全,不允许向本地网络发送Webhook请求,如果想向本地网络发送Webhook请求,则需要使用管理员帐号登录. 即可进入Admin Area,在Admin Area中,在Settings标签下面,找到OutBound Request,勾选上Allow Requests To The Local Network From Hooks And Services ,保存更改即可解决问题。 ![](/media/202305/2023-05-18_123653_4786500.7773445967860154.png) ### 安装drone DRONE_GITLAB_SERVER gitlab地址 DRONE_GITLAB_CLIENT_ID 上面生成的ID DRONE_GITLAB_CLIENT_SECRET 上面生成的SECRET DRONE_SERVER_HOST 需要和 gitlab中配置的 drone的Url访问地址一致:http://raisehands.cn:8081/login ``` docker run -itd \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /home/drone:/data \ -e DRONE_LOGS_DEBUG=true \ -e DRONE_GIT_ALWAYS_AUTH=false \ -e DRONE_GITLAB_SERVER=http://raisehands.cn:8080 \ -e DRONE_GITLAB_CLIENT_ID=da0ff940fb1e9e250e3b9243ac354f38a997c1e483811cf36a828bacb12b2fd9 \ -e DRONE_GITLAB_CLIENT_SECRET=2924584c59cbcd72c8afbccc5e9e229cc9f08c7208502287f35e82bba7706d21 \ -e DRONE_RPC_SECRET=12345678 \ -e DRONE_RUNNER_CAPACITY=3 \ -e DRONE_SERVER_HOST=raisehands.cn:8081 \ -e DRONE_SERVER_PROTO=http \ -e DRONE_TLS_AUTOCERT=false \ -e DRONE_USER_CREATE=username:root,admin:true \ -p 8081:80 \ -p 9443:443 \ --restart=always \ --detach=true \ --name=drone_server \ drone/drone:2 ``` ### 启动runner ``` docker run -d \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DRONE_RPC_PROTO=http \ -e DRONE_RPC_HOST=raisehands.cn:8081 \ -e DRONE_RPC_SECRET=12345678 \ -e DRONE_RUNNER_CAPACITY=2 \ -e DRONE_RUNNER_NAME=${HOSTNAME} \ -p 3000:3000 \ --restart always \ --name runner \ drone/drone-runner-docker:1 ``` ### 测试访问 打开 控制台 drone应该已经把 gitlab 的项目 拉取过来了 ![](/media/202305/2023-05-18_124244_6031670.5179027813921516.png) ### 在项目中添加 .drone.yml 配置 在gitlab 项目中 创建.drone.yml文件,此文件作用是按文件内容将任务传送至drone应用,进行CI动作。 ``` kind: pipeline name: default steps: - name: redis image: banzaicloud/drone-kaniko settings: registry: 172.30.0.6 repo: test/redis #项目仓库地址/镜像名 #tags: v7 #标签名 dron会自动调用dockerfile 生产镜像并且推送 auto_tag: true contest: ./ #dockerfile文件所在目录 表示当前目录下 cache: false username: from_secret: docker-username password: from_secret: docker-password ``` 在gitlab 项目中 创建dockerfile 文件 会被.drone.yml调用 ``` FROM redis:latest COPY redis.conf /home/redis.conf ``` 回到drone 页面 配置 harbor账号密码,为key value类型 ![](/media/202305/2023-05-18_125646_6400440.8118557035575087.png) ![](/media/202305/2023-05-18_125834_4909560.38051796457648657.png) # 坑 * gitlab还有个坑 Gitlab 10.6 版本以后为了安全,不允许向本地网络发送Webhook请求。 导致我全部部署在同一台服务器上 drone 无法拉去 gitlab文件 解决方法: Admin area->settings->Network->OutBound Request,点击Expand 勾选上Allow requests to the local network from hooks and services ,其他勾全部去掉,保存 * 如果harbor是http,一定要修改 docker配置文件加上 “insecure-registries” : [“0.0.0.0/0”], 不然默认https 你就传不了 vim /etc/docker/daemon.json ``` { "insecure-registries":["172.30.0.6"] } ```
admin
2023年5月19日 09:55
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码