zoukankan      html  css  js  c++  java
  • gitlab + jenkins 自动部署

    一。安装gitlab 和 jenkins

    直接克隆项目

    git clone git@gitee.com:GH16/devops.git

    进入项目,直接运行, 等待五分钟左右部署(显示出错也会重启继续初始化)

    ➜  ~ 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 

    浏览器输入 http://127.0.0.1:10080 先创建root用户的密码

    登陆成功后 settings->preferences->language 可设置中文,接着配置ssh密钥

     配置完ssh密钥后,创建项目

     创建成功后克隆项目

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

    进入项目,修改文件

    ➜  ~ 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 点击添加,(这一步和后面的API令牌可以二选一,或者都填,但如果仓库是私有的需要填这一步,要填有权限访问仓库的用户)

    可以选择gitlab的用户和密码,也能用ssh等,然后点击添加的左边选择刚刚添加的用户  

    点击保存,此时已经可以手动构建项目了,回到首页,项目右边的立即构建图标,此时jenkins就会把gitlab的代码同步过来。

     

     进入项目,点击工作区,就可以看到已经把gitlab的代码同步过来了,保存在该文件夹下。

     现在jenkins可以手动同步gitlab的代码到本地,接着需要gitlab有push推送操作时,主动通知jenkins,让jenkins自动执行刚才到同步操作,完成自动操作。

    回到刚刚设置源码管理的地方。 

    接着 构建触发器 ,选 Build when a change is pushed to GitLab ,里面的其他选项可以不动,Secret token 里点击Generate生成 , 然后保存 

    如果这里安装了gitlab和gitee(码云),会使第二个Secret token无效,因为两个input的ID都是secretToken

    要生成第二个的话要把第一个的input的id改了再生成,不然生成的token都是在第一个input里面。

     接着点击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

    或者在gitlab上直接修改文件,然后提交

    查看jenkins已经自动构建完成 

     进入test_jenkins项目,点击工作区

    gitlab里的代码就自动同步到这个文件夹了 

    接着就是部署web服务器的路径指到这个文件夹,或者做其他的处理。

    ctrl + c 取消 start.sh ,接着停止容器  bash stop.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) ✗ 
  • 相关阅读:
    强网杯2019 随便注
    HCTF2018 WarmUp
    GKCTF2020 部分MISC
    各类文件头及其十六进制标识
    自动发送邮件
    单一接口多种数据验证
    Yaml 文件的操作
    log 文件的操作
    xml 文件的操作
    ddt 使用操作
  • 原文地址:https://www.cnblogs.com/GH-123/p/11986465.html
Copyright © 2011-2022 走看看