A. 설치 gitlab와 젠킨스
직접 복제 프로젝트
I [email protected] 자식 클론 : GH16 / devops.git
5 분 배포를위한 프로젝트, 직접 실행, 대기 속으로 (표시 오류가 초기화를 다시 시작 계속)
➜ ~ CD 개발 운영팀 ➜ 개발 운영 자식 (마스터) LS README.en.md 고정 표시기 - compose.yml 젠킨스 stop.sh README.md gitlab start.sh ➜ 개발 운영 자식 (마스터) bash는 start.sh
루트 암호를 만들 수 http://127.0.0.1:10080 브라우저를 입력
성공적인 착륙 설정 -> 환경 설정 -> 언어가 중국어로 설정할 수 있습니다, 다음 구성 SSH 키 후
당신이 SSH 키를 구성한 후, 프로젝트를 생성
프로젝트가 성공적으로 복제하여 만든
➜ ~ 자식 클론 SSH : // 자식 @ 로컬 호스트 : 10022 / 루트 / test_gitlab.git
프로젝트에 파일을 수정
➜ ~ CD를 test_gitlab ➜ test_gitlab 자식 (마스터) LS README.md ➜ test_gitlab 자식 : (주) 고양이 README.md # test_gitlab ➜ test_gitlab git:(master) echo '1' > README.md ➜ test_gitlab git:(master) ✗ cat README.md 1 ➜ test_gitlab git:(master) ✗
提交测试是否成功
➜ test_gitlab git:(master) ✗ git commit -am '1' ➜ test_gitlab git:(master) git push
gitlab上查看,已经提交成功
然后浏览器输入 http://127.0.0.1:18080 ,用户 admin , 秘密 12345678 登陆(可自行更改),创建任务
选择 自由风格 项目,然后创建
接着源码选 git , Repository URL 为需要部署的项目地址,这里输入http://gitlab/root/test_gitlab.git (这里需要输入容器内部的地址)
Credentials 点击添加,可以选择gitlab的用户和密码,也能用ssh等,然后点击添加的左边选择刚刚添加的用户
接着 构建触发器 ,选 Build when a change is pushed to GitLab ,里面的其他选项可以不动,Secret token 里点击Generate生成 , 然后保存
接着点击jenkins的设置->全局设置,找到 gitlab 的设置
Connection name 链接名称随便填
Gitlab host URL 需要填gitlab的主机地址,就是访问gitlab的地址,这里输入 http://gitlab (容器里面的地址)
Credentials 同上面一样点击添加,此时类型需要选择gitlab API token
然后到gitlab,点击设置
然后访问令牌
创建一个 api 的令牌
复制这个令牌
回到 jenkins 的添加,API token 就输入上面的令牌,点击添加
接着点击添加的左边,选择刚刚创建的API,然后点击下方的 test connection, 测试连接成功,然后点击保存。
到gitlab点击管理中心,顶部最右边
接着点击系统钩子
URL里输入 jenkins 里 构建触发器的地址,即 http://jenkins:8080/project/test_jenkins
Secret Token 里输入 jenkins 里构建触发器的Secret token,即 e1135d5424f80e82ceccbb962028a11a
然后选择push events, 最后点击添加钩子
最后测试是否成功,在test_gitlab里修改文件添加
➜ test_gitlab git:(master) ls README.md ➜ test_gitlab git:(master) cat README.md 1 ➜ test_gitlab git:(master) echo '2' > README.md ➜ test_gitlab git:(master) ✗ cat README.md 2 ➜ test_gitlab git:(master) ✗ git commit -am '2' ➜ test_gitlab git:(master) git push
查看jenkins已经自动构建完成
进入test_jenkins项目,点击工作区
gitlab里的代码就自动同步到这个文件夹了
接着就是部署web服务器的路径指到这个文件夹,或者做其他的处理。
ctrl + c 取消 start.sh ,接着停止容器
^CGracefully stopping... (press Ctrl+C again to force) Killing devops_gitlab_1 ... done Killing devops_jenkins_1 ... done Killing devops_gitlab-postgresql_1 ... done Killing devops_gitlab-redis_1 ... done ➜ devops git:(master) ✗ bash stop.sh Removing devops_gitlab_1 ... done Removing devops_jenkins_1 ... done Removing devops_gitlab-postgresql_1 ... done Removing devops_gitlab-redis_1 ... done Removing network devops_default ➜ devops git:(master) ✗