美文网首页开发类_Git_Svn
持续集成GitLab+Jenkins

持续集成GitLab+Jenkins

作者: 泥人冷风 | 来源:发表于2021-01-02 20:47 被阅读0次

    1 环境准备

    No 主机名 域名 作用 IP 安装
    1 code code.local.com 代码版本管理 192.168.8.181 参考
    2 jenkins jenkins.local.com 代码编译部署 192.168.8.183 参考

    大致的目标如下:

    ① 开发人员提交代码到gitlab

    ② gitlab钩子触发jenkins执行构建,下载最新版本的代码

    2 GitLab 准备

    2.1 去掉创建账户的功能

    点击设置 把Sign-up enabled的钩去掉,就可以去掉创建账户的功能

    保存即可

    2.2 创建组,创建项目

    进去管理区域,点击New group

    点击[创建群组]即可,如下图所示:

    接下来,创建一个项目,并选择web组

    点击[新建项目]即可,如下图所示:

    接下来,创建一个用户

    点击[new user ]即可,如下图所示:

    定义初始密码

    点击[save changes]即可

    分配user1 给 web-demo

    接下来在客户端,使用IDEA IDE 克隆项目:

    使用上面创建的user1/1234qwer,登录


    注意事项:新建项目往往还没有master分支,需要确认;另外如果权限是developer也要和分支匹配才行。
    代码样例:https://gitee.com/actual-combat-study/web-demo.git

    3 配置Jenkins

    安装需要的Gitlab插件

    点击[install without restart]即可,等待安装完毕重新启动Jenkins。

    4 Jenkins主动拉取GitLab代码

    4.1 创建一个新任务

    点击创建一个新任务,输入任务名字,选择自由风格,点击确定既可

    4.2 源码Git拉取编译

    在源码管理添加源码路径,点击Add,添加认证,这里是git

    截至到此暂停一下,插入以下小片段
    如果jenkins服务器还没有安装git,可以在这块儿追加一下

    $ yum install git
    

    4.3 创建ssh key

    检查jenkins服务器ssh key,并创建ssh

    [root@jenkins ~]# useradd www
    [root@jenkins ~]# cd
    [root@jenkins ~]# passwd www
    Changing password for user www.
    New password:
    BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
    Retype new password:
    passwd: all authentication tokens updated successfully.
    [root@jenkins ~]# su www
    [www@jenkins root]$ ssh-keygen -t rsa -C "user1@local.com"
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/www/.ssh/id_rsa):
    /home/www/.ssh/id_rsa already exists.
    Overwrite (y/n)? y
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/www/.ssh/id_rsa.
    Your public key has been saved in /home/www/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:gklNqLH06nOLJ09t9x711JSOIimIFT9BqwGqOBbixvE user1@local.com
    The key's randomart image is:
    +---[RSA 2048]----+
    |   . ooo         |
    |  + ooo o       .|
    |.= =.o.+       ..|
    |* *.+o+ . .   oo |
    |+= Eoo..So ......|
    |o..  . .. ...o   |
    | .  . o . .   .  |
    |  +oo. . . .     |
    |  .*o.   .o      |
    +----[SHA256]-----+
    [www@jenkins .ssh]$ cat id_rsa
    -----BEGIN RSA PRIVATE KEY-----
    Proc-Type: 4,ENCRYPTED
    DEK-Info: AES-128-CBC,9792E02DE2571803471444D389184C1C
    
    Q3zj5PixuyBUCZc3ZZ/3zdH+0ZPpq+SO+uVx3aWsKzLeQ+IqyTI+m6XCfWQjyElf
    DNtO6HDx2d6hmrqDfA6qGvXSCOrIh3teoW2ye0NkOccxYhmevOpdRNsOv7YgI/N5
    OAPoSM0pzTLEgyY6S6fBMT/J6YLVNQhiFf2hHk+43degnYMfUhMlylxwnt2Cec7h
    Oxvq0wJj5Ia/O4VJruiUVYOzRj+s7ezhMM3p9lXUIE/RLEv7lt9P/1mtKz94MS3d
    nTBfigR6lyNDcweTycpUAlOw7A3guCiABFZOPJ4wTKnar3gi/6cfXCUvkVQCYg0K
    /EXEsI1auIg2Megkck/7mRtfqEwwI/xylIyu8AIPeHX+AzhsAjL11A+4VersbvCm
    Zpk0/BEcQcRXKRzMpfM3L7xyfTHhtPTUauUgM2+1VwbS43vUWjKTlXtxTiVVLi2i
    Ctco0Sozz7wJZ3GrsOuwV4QoDGy1sxMyw/OwOREl+3h9RblUgDQP4lVkih0WV5el
    LqxBaGGWVv7luCyrur1xXb0P/SABxb+8CBWB/odTv723hlg0cosa+ShLBETE/yRK
    wpuqXdTCEoko3OnhwHIspakrAfkINhBztWxPLzkZUvJ2Rx4J315Ggr/3freVxfne
    yh+wJDltdu7zvBiJRFINfDKNMsaCWdTkIOjAMjDU/Bnm6M73ENhxqhQk18NxXH39
    psRczallYd3FgXn7tM4sc3bcsy95x6flK1LMG5bcq8gLvyi3bvajIQrLBsBRp+8Z
    v6/e7y5EJGEqDhNfALopBFZxsp8O7uIOkqf9RC5I+Hu6BH83BjvINScPfkCZBwmU
    d06jNksUo48Z3AQESM8HNHNUD7pMGwDgbjgF4LXLvE6VAnnEouEWnuqfg+JwzoMQ
    cAQIqOmFZwo9dKXxnrXQlgIA+4cYh8GVqSyAN/u20K16pDqxuQlalVgofuBveIb+
    c9D2Z5dVzMfrays9f1AhYOnkrboCwH4QSnWSCVI9LU1+dV4u8B6SILh84xlXzi4k
    OYRHeG6cC6ZVfoo+2SuN6P15Wpl49ojvkdprYBb333a1GrVlH6kT39lhuH4SITgq
    OB5x1BkTWmfTgKSI7+IMWS0hTKLTGsrO00ZXd95Ejg8W5CX3jNvMEn0sizK3VhYF
    IZW0Irqd/XW7UIBkpJF7cFy1Vx5q2BT3Dlm2jLYlYwms6fxftAyigMlgN+FQPJA1
    4G2g1o5tkBlbM3dSw2pmx6uzSzDKPVHlseCJtEVKlYAMPCkoPWyeufTtXQNBB444
    En2Wp920XNOH2IwvZJ4Hr1DawNAQLQzo8CGe+lZoP/E2mq2wW8WYvWwsg1dgR5KY
    S3tSdy2rDosxbv+DX5lhpS3WHFFLpuka55LNURF6UoM6FZS14UAEfA2l1kwk5ls2
    PgVNMvAqL0fQb3rhI6vYvYxlN8bJ2Qk31WRaICjU5XvOoMGsodwHO1vRJ0G5aB8s
    +C2AUPJxQObm6zSu6XFdCpcyRu99DM/biU+yn8B/eoTjX5kIVYz8G5xFcKTofiou
    /ocSmK5L2+wdGoCfIhQGR2Atuh/CJzXN67L61BWBYUl6ppM6pnb3KyRSu+RRwMDl
    -----END RSA PRIVATE KEY-----
    [www@jenkins .ssh]$ cat id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPiPMUahJrgMcvJStly2IKuC+NswUnOiMZDkLVhh15gb3W0k3hZooPcmdTnIDfaWfye8CrPXdiJLVmBKhXj8RkjJtjc6ZWMQFg9lEjRAG9PcY4C/evg8Z8gPRn0187DdWnFKg9nZTxSIpJxp9cLTjV/zQ4QpmXuEoC2pMhTp2+sazB5Grcun0xj1I/aPd5iJAq6nvkQR+13OwgxcqFkuEW0fuz447PVt2lOGF9s9SawXQcO9qo+IaNiEQ/cU+bpqW7MWmqevklvDoWIgKzgUeOvGiV6j5EtS9n5PYt51Qrqgx6RML6gJvi9dgUqGOb87605WQqcqdLB0VMy2RYyBTp user1@local.com
    
    

    4.4 GitLab代码仓库添加公钥

    在GitLab代码仓库,添加4.3 产生的公钥


    注意:这里公钥和接下来的私钥要进行匹配

    4.5 Jenkins添加凭据

    紧接4.2继续把4.3的私钥制作成编译代码的凭据

    这里如果可以找到 Finished:SUCCESS

    至此Jenkins拉取GitLab仓库代码成功搭建。

    5 GitLab代码变更自动激活Jenkins编译

    5.1 Jenkins中任务的设置

    进入Job的新增或者编辑页面,找到 构建触发器 选项,选中 Build when a change is pushed to GitLab
    其他选项可以默认不改

    拷贝:http://jenkins.local.com:8080/project/auto-deploy
    Secret token:61dc89deb8bbb55dc6917958957754b7

    5.2 GitLab配置WebHook



    出现以上200信息,说明WebHook成功


    出现以上错误的时候,Admin area => Settings => Network需要配置一下:

    这样使用Git上传到GitLab,然后观察Jenkins

    参考:https://www.jianshu.com/p/63b012ee52ea
    Jenkins初始化及常见问题整理 | zhimma's blog

    相关文章

      网友评论

        本文标题:持续集成GitLab+Jenkins

        本文链接:https://www.haomeiwen.com/subject/rtujoktx.html