zoukankan      html  css  js  c++  java
  • docker 部署jenkins

    ===============================================

     2020/11/25_第2次修改                       ccb_warlock

     

    更新说明:

    2020/11/25:

    1.增加了离线安装jenkins插件的操作步骤;

    ===============================================

    上周准备给团队内部培训docker的内容,配合讲解应用构建了基于jenkins的持续发布的方案,这里我将部署、配置拆成了2块,首先记录部署。

     


    一、部署docker

    docker参考:https://www.cnblogs.com/straycats/p/10680502.html

    swarm参考:https://www.cnblogs.com/straycats/p/8978135.html

     


    二、部署jenkins容器

    2.1 创建目录

    mkdir -p /opt/compose/jenkins
    mkdir -p /opt/vol/jenkins/jenkins_home

    2.2 创建网络

    # 本地用的network

    docker network create 
      --driver=bridge 
      --subnet=172.11.0.0/16 
      --ip-range=172.11.0.0/16 
      --gateway=172.11.0.1 
      --attachable 
      local-net

    # swarm用的network

    docker network create 
      --driver=overlay 
      --subnet=172.12.0.0/16 
      --ip-range=172.12.0.0/16 
      --gateway=172.12.0.1 
      --attachable 
      swarm-net

    2.3 创建容器

    目前docker hub上维护的项目是 jenkins/jenkins ,jenkins已经弃用。

    2.3.1 run方式

    docker run -d 
      --name jenkins 
      -v /opt/vol/jenkins/jenkins_home:/var/jenkins_home 
      -p 8080:8080 
      --network local-net 
      --cpus 2 
      --memory 2G 
      --restart on-failure 
      jenkins/jenkins:2.266

    PS.如果需要移除该容器,可以使用命令

    docker stop jenkins
    docker rm jenkins

    2.3.2 compose方式

    # 编辑docker-compose.yml

    vi /opt/compose/jenkins/docker-compose.yml

    将下面的内容添加到docker-compose.yml内。

    version: '2'
    services:
    
      redis:
        image: jenkins/jenkins:2.266
        volumes:
          - /opt/vol/jenkins/jenkins_home:/var/jenkins_home
        ports:
          - 8080:8080
        networks:
          - local-net
    
    networks:
      local-net:
        external: true

    # 创建容器

    cd /opt/compose/jenkins
    docker-compose up -d

    PS.如果需要移除该compose文件创建的所有容器,可以使用命令

    cd /opt/compose/jenkins
    docker-compose down

    2.3.3 stack方式

    # 编辑jenkins-stack.yml

    vi /opt/compose/jenkins/jenkins-stack.yml

    将下面的内容添加到jenkins-stack.yml内。

    version: '3.7'
    services:
    
      jenkins:
        image: jenkins/jenkins:2.266
        volumes:
          - /opt/vol/jenkins/jenkins_home:/var/jenkins_home
        deploy:
          replicas: 1
          restart_policy:
            condition: on-failure # any
          resources:
            limits:
              cpus: "2"
              memory: 2048M
          update_config:
            parallelism: 1
            delay: 5s
            max_failure_ratio: 0.1
            order: start-first
        ports:
          - 8080:8080
        networks:
          - swarm-net
    
    networks:
      swarm-net:
        external: true

    # 创建栈

    cd /opt/compose/jenkins
    docker stack deploy -c jenkins-stack.yml jenkins-stack

    三、初始化jenkins

    3.1 验证

    在创建新的容器之后,需要到容器的目录“/var/jenkins_home/secrets/initialAdminPassword”(这里配置的宿主机目录“/opt/vol/jenkins/jenkins_home/secrets/initialAdminPassword”)内获取初始的登录密码。

    填入初始密码,点击“继续”。

    3.2 安装插件

    3.2.1 在线安装

    这里选择“安装推荐的插件”(如果你知道自己需要什么,可以选择自定义安装插件)

    接着等待插件安装完成。

    3.2.2 离线安装(在线安装成功,则跳过该步骤)

    部署教程是前段时间整理的,当时通过在线安装插件的功能是正常的。但是上周我搭建环境时发现安装插件时提示

    java.io.IOException: Downloaded file /var/jenkins_home/plugins/trilead-api.jpi.tmp does not match expected SHA-256, expected 'aRsCZA5PqYAxMhX6G+AXjA7yZArlzU0+MCEUEo1oVd8=', actual '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
    at hudson.model.UpdateCenter.throwVerificationFailure(UpdateCenter.java:2019)
    at hudson.model.UpdateCenter.verifyChecksums(UpdateCenter.java:2054)
    at hudson.model.UpdateCenter$InstallationJob.replace(UpdateCenter.java:2233)
    at hudson.model.UpdateCenter$UpdateCenterConfiguration.install(UpdateCenter.java:1343)
    at hudson.model.UpdateCenter$DownloadJob._run(UpdateCenter.java:1872)
    at hudson.model.UpdateCenter$InstallationJob._run(UpdateCenter.java:2147)
    at hudson.model.UpdateCenter$DownloadJob.run(UpdateCenter.java:1843)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at hudson.remoting.AtmostOneThreadExecutor$Worker.run(AtmostOneThreadExecutor.java:118)
    at java.lang.Thread.run(Thread.java:748)

    查了半天找不到相关的资料,怀疑是jenkins官方的问题,估计短期内就会修复,于是我找了下资料,发现还可以下载插件包后离线安装。无奈官网的插件完全无法下载,再查了一圈后,发现国内还是有jenkins的国内镜像站,我就是到清华的镜像站上下载的离线包,然后一个个手工安装。

    清华镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/plugins/

    登录jenkins后,在“系统配置”-“插件管理”-"高级"-"上传插件"这上传离线包安装。

    3.3 创建管理员

    填写创建的用户名/密码等信息(这里填写了admin/admin)

    3.4 修改实例配置的URL

    Jenkins URL默认为“http://localhost:8080”,直接点击“保存并完成”

    这样部署过程就完成了。

     

    3.5 访问jenkins

    浏览器访问 http://localhost:8080

     

     

  • 相关阅读:
    mysql导入sql文件
    35. Search Insert Position(python)
    21. Merge Two Sorted Lists (python)
    20.Valid Parentheses (python)
    1.the sum (python)
    Zabbix4.0--客户端的安装与添加监控(windows跟linux)
    Linux系统优化04-Centos关闭selinux与防火墙
    SQL SERVER(使用SSMS)备份数据库文件
    SQL Server Management Studio (SSMS)单独安装,仅安装连接工具
    linux ``与"" ''区别
  • 原文地址:https://www.cnblogs.com/straycats/p/14033405.html
Copyright © 2011-2022 走看看