gitlab + jenkins automatic deployment

One. Installation gitlab and jenkins

Direct cloning project

I [email protected] git clone: ​​GH16 / devops.git

Into the project, direct running, wait for five minutes or deployment (displays an error will continue to restart the initialization)

➜  ~ cd devops 
➜  devops git:(master) ls
README.en.md       docker-compose.yml jenkins            stop.sh
README.md          gitlab             start.sh
➜  devops git:(master) bash start.sh 

Enter http://127.0.0.1:10080 browser to create the root password

After the successful landing settings-> preferences-> language can be set to Chinese, then configure ssh key

 After you configure the ssh key, create a project

 Project successfully created cloned

➜  ~ git clone ssh://git@localhost:10022/root/test_gitlab.git

Into the project, modify the file

➜  ~ cd test_gitlab 
➜  test_gitlab git:(master) ls           
README.md
➜  test_gitlab git:(master) cat 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) ✗ 

 

 

 

 

 

 

Guess you like

Origin www.cnblogs.com/GH-123/p/11986465.html