• Jenkins持续集成


    由于Jenkins基于Java开发,所以,Jenkins的运行依赖Java JRE(java runtime environment)环境。所以,我们要想使用Jenkins,必须:

    • 机器要求
      • 256MB内存,建议大于512MB
      • 10GB的硬盘空间(用于Jenkins和docker镜像)
    • 需要安装
      • Java 8及以上版本。
      • Docker

    Java JDK的安装

    各平台安装Java JDK:https://www.cnblogs.com/Neeo/articles/11954283.html

    Jenkins下载地址

    官网:https://jenkins.io/zh/

    官网下载链接:https://jenkins.io/zh/download/

    相关软件百度云地址

    链接:https://pan.baidu.com/s/1KVGiuH5-diz8OK11C--CFA 提取码:0ek2

    for windows

     

    下载

    • 下载到本地是一个msi文件,点击它。

    • 选择安装目录,继续点击下一步。

    • 点击安装。

    • 安装完成。

    入门

    当安装完成,会自动的打开浏览器,进入解锁Jenkins页面。按照提示,去本地找密码,然后粘贴到输入框中,点击继续。

    选择推荐的插件下载即可。

    在漫长的等待过程中,可能会发生各种意外, 但请记住一点:如果发生意外,请间歇性的刷新浏览器,很可能就......好了.....好不了,喝杯咖啡考虑一下人生回来....继续刷新.....,我反正两次插件安装失败,我都是刷新解决的........

    如果遇到有的插件安装失败,就点击重试....

    创建管理员用户

    配置实例

    根据需要配置ip地址,如果你的是远程服务器的,就配个公网的ip或者绑定域名也行;本地的话,就直接localhost吧。

    访问主页:

    现在,Jenkins算是安装成功。

    for Mac

     

    --待填充

    for Linux

     

    这里我们选择安装docker版的Jenkins。

    请以管理员权限进行后续的操作

    环境是阿里云centos7

    安装docker

     

    可选的操作:查看内核版本

    目前,CentOS 仅发行版本中的内核支持 Docker。

    Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。

    Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

    uname -a 
    
    # 示例
    [root@localhost ~]# uname -a
    Linux localhost 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

    更新yum源

    [root@localhost ~]# yum update -y

    可选的操作:卸载旧版的docker

    yum remove docker  docker-common docker-selinux docker-engine

    安装依赖包

    yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的。

    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    # 示例
    [root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

    设置yum源

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    # 示例
    [root@bogon ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    已加载插件:fastestmirror
    adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
    grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
    repo saved to /etc/yum.repos.d/docker-ce.repo

    查询及安装docker

    yum list docker-ce --showduplicates | sort -r
    
    # 示例
    [root@bogon ~]# yum list docker-ce --showduplicates | sort -r
    Loading mirror speeds from cached hostfile
    Loaded plugins: fastestmirror
    docker-ce.x86_64            3:19.03.5-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:19.03.4-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:19.03.3-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:19.03.2-3.el7                     docker-ce-stable
    docker-ce.x86_64            3:19.03.1-3.el7                     docker-ce-stable

    在版本列表中,选择合适的版本下载即可。

    yum install docker-ce-17.12.1.ce -y
    
    # 示例
    [root@bogon ~]# yum install docker-ce-17.12.1.ce -y

    检查是否安装成功

    docker version
    
    # 示例
    [root@bogon ~]# docker version
    Client:
     Version:   17.12.1-ce
     API version:   1.35
     Go version:    go1.9.4
     Git commit:    7390fc6
     Built: Tue Feb 27 22:15:20 2018
     OS/Arch:   linux/amd64
    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    启动docker并加入开机启动

    systemctl start docker    # 启动
    systemctl enable docker   # 加入开机启动
    ps -ef | grep docker      # 查看docker是否启动

    扩展

    docker 常用命令 https://www.cnblogs.com/Neeo/articles/11945932.html

    安装Jenkins

     

    上面的docker环境配置好之后,我们再来配置docker版本的Jenkins。

    选择docker版本的Jenkins

    打开官网的下载页面,选择长期支持版本。

    在新的页面中,选择LTS版本的安装命令。

    也就是复制docker pull jenkins/jenkins:lts这个命令并且centos中去执行该命令。

    docker pull jenkins/jenkins:lts
    
    # 示例
    [root@bogon ~]# docker pull jenkins/jenkins:lts
    lts: Pulling from jenkins/jenkins
    9a0b0ce99936: Pull complete 
    db3b6004c61a: Pull complete 
    f8f075920295: Pull complete 
    6ef14aff1139: Pull complete 
    962785d3b7f9: Pull complete 
    631589572f9b: Pull complete 
    c55a0c6f4c7b: Pull complete 
    4e96cf3bdc20: Pull complete 
    e0b44ce6ec69: Pull complete 
    d961082c76f4: Pull complete 
    5a229d171c71: Pull complete 
    64514e4513d4: Pull complete 
    6797bb506402: Pull complete 
    b8d0a307156c: Pull complete 
    b17b306b4a0a: Pull complete 
    e47bd954be8f: Pull complete 
    b2d9d6b1cd91: Pull complete 
    fa537a81cda1: Pull complete 
    Digest: sha256:64576b8bd0a7f5c8ca275f4926224c29e7aa3f3167923644ec1243cd23d611f3
    Status: Downloaded newer image for jenkins/jenkins:lts

    PS:下载速度稍慢.......

    下载完毕后,我们来使用下面命令看一下是否下载成功。

    [root@bogon ~]# docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    jenkins/jenkins     lts                 22b8b9a84dbe        6 days ago          568MB
    [root@bogon ~]# 

    启动Jenkins

    docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts 
    
    # 示例
    [root@bogon ~]# docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins docker.io/jenkins/jenkins:lts
    9f1d7ae974968f7465f98a7fbc25fc8f59cdebae561db33db7916fc68ee0f408
    [root@bogon ~]# 

    各参数的意义:

    • -d后台运行镜像。
    • -p 80:8080将镜像的8080端口映射到服务器的80端口。
    • -p 50000:50000将镜像的50000端口映射到服务器的50000端口。
    • -v jenkins:/var/jenkins_home,其/var/jenkins_home为Jenkins的工作目录,我们将硬盘上的一个目录挂在到这个位置,方便后续更新镜像后继续使用原来的工作目录。
    • -v /etc/localtime:/etc/localtime让容器使用和服务器同样的时间设置。
    • --name jenkins给容器起一个别名。
    • docker.io/jenkins/jenkins:lts最后说的是docker拉去的是Jenkins的lts版本。

    现在,让我们使用本机的浏览器去访问虚拟机的centos的ip。

    由于咱们安装的是docker版的Jenkins,所以不能直接去这个位置去找密码(Windows版可以根据提示去上面那个位置去找密码)。那个路径不是服务器的路径,而是docker容器的路径,所以我们还需要使用docker命令去获取密码,让我们拷贝上面的那个路径。

    docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
    
    # 示例
    [root@bogon ~]# docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
    683a4afce37d44a780c287a131e9388b

    上面那个683a4afce37d44a780c287a131e9388b字符串就密码,填到之前页面的输入框中。

    注意,在输入密码后会进入新手操作阶段,下插件啥的,如果这个过程遇到失败等问题,会需要你重新输入这个密码,所以请记住它

    经过上面的种种操作,我们终于进入到了新手入门阶段,首先映入眼帘的是安装Jenkins插件,如无特殊需求,我们选择安装推荐的插件即可。

    漫长的等待......

    在漫长的等待过程中,可能会发生各种意外, 但请记住一点:如果发生意外,请间歇性的刷新浏览器,很可能就......好了.....好不了,喝杯咖啡考虑一下人生回来....继续刷新.....,我反正两次插件安装失败,我都是刷新解决的........

    如果遇到有的插件安装失败,就点击重试....

    创建管理员用户

    当上面的插件安装完毕后,会进入到创建管理员用户界面。

    各项填写完毕,选择保存并完成
    配置实例

    根据需要配置ip地址,如果你的是远程服务器的,就配个公网的ip或者绑定域名也行;本地的话,就直接localhost吧。

    现在,Jenkins算是安装成功。

    进入你的工作台。

    More

     

    如果遇到docker下载特别慢的情况。怎么办。

     

    vmware中的centos7

    • 编辑docker配置文件
    [root@bogon ~]# vi /lib/systemd/system/docker.service 
    • ExecStart值更改为阿里云。
    # ExecStart=/usr/bin/dockerd
    ExecStart=/usr/bin/dockerd --registry-mirror=https://u1qbyfsc.mir
    ror.aliyuncs.com

    这样的话,docker再去拉去镜像就会快很多。

    放开防火墙端口号

     

    vmware中的centos7

    如果是虚拟机或者远程服务器,有可能造成防火墙没有放开端口号,导致我们远程连接Jenkins失败,来看解决办法。

    firewall-cmd --list-ports   # 查看一下当前开放的端口
    
    # 如果该命令提示
    [root@bogon ~]# firewall-cmd --list-ports
    FirewallD is not running
    
    # 那么启动它
    [root@bogon ~]# systemctl start firewalld   # 启动
    [root@bogon ~]# firewall-cmd --list-ports   # 然后重新执行

    终端启动Jenkins

     

    在Windows平台下,Jenkins并没有创建什么快捷方式。而是需要通过命令行来启动。

    注意,终端必须是管理员权限的

    net start jenkins   # 开启服务
    net stop jenkins    # 停止服务

    然后浏览器访问:

    http://localhost:8080

    修改端口

     

    环境是:Windows
    可能8080这个端口容易被占用,所以我们去jenkins安装目录下找到一个叫jenkins.xml的文件,修改你想要的端口即可。

    在安装插件时报错:无法连接到Jenkins

     

    环境是:阿里云centos7

    这个问题很奇妙!我的环境是阿里云服务器,检查了Jenkins是否开启,是否可以ping通网络等等,都没啥问题。

    最后的解决办法是刷新浏览器!不能行就多试几次!!我也不知道为啥突然好了.....

    在安装插件时出现:No such plugin: cloudbees-folder

     

    环境是:Windows

    这个问题也很奇妙!但此时我的环境是win10企业版,检查了Jenkins是否开启,是否可以ping通网络等等,都没啥问题。

    最后的解决办法是刷新浏览器!不能行就多试几次!!我也不知道为啥突然好了.....貌似我还改了一下端口(然后重启了Jenkins),但这并没有啥影响吧。

    查看Jenkins进程命令ps aux |grep jenkins

    下载Jenkins镜像docker pull jenkinsci/blueocean:latest

    查看Jenkins镜像信息docker images |grep jenkins

    启动Jenkins

    docker run
    -u root
    --name s267
    --restart=always
    -d
    -p 6010:8080
    -p 50000:50000
    --env JAVA_OPTS="-Xmx512m"
    -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
    -v /etc/localtime:/etc/localtime
    -v /tmp/jenkins_home:/var/jenkins_home
    -v /var/run/docker.sock:/var/run/docker.sock
    jenkinsci/blueocean:latest

    查看最新40条日志信息docker logs -t -f --tail 40 s267

    浏览器访问

    http://192.168.1.103:6010/login?from=%2F

    # 查看密码,仅除此使用
    [root@r ~]# docker logs -t -f --tail 40 s267
    # 查看密码,推荐
    [root@r ~]# docker exec -it -u root s267 bash
    bash-4.4# cat /var/jenkins_home/secrets/initialAdminPassword
    a02074d95cd94b2891d241d350a00293

    新建item任务

     save保存

     

    点击主页

     点击manage jenkins

    点击manage plugins

     更新插件、可选插件、已安装插件、高级

     下载allure插件

     

     

     

     

     

     

     

    前台重启Jenkins:http://47.52.72.214:6010/restart

    docker重启Jenkins:docker restart s267

    卸载插件

     

     

     手动下载插件并手动上传插件

    https://updates.jenkins.io/download/plugins/allure-jenkins-plugin/

     

     点击上载

     安装完成重启

     解决插件下载慢

     管理用户

     

     全局安全配置运行用户注册

     管理用户-创建用户

     

     

     

     部署自由风格项目

     

     

     部署自由风格工作流程步骤

    1. general,项目的描述信息,和基本的一些参数

    2. 源码管理,如何管理你的代码,从哪拉取,如何配置凭据。

    3. 构建触发器,你的项目如何运行?

      1. 执行一次

      2. 轮循执行

      3. 每一周,每一天,每一个月

    4. 构建环境,选择你的项目构建环境是,如ant

    5. 构建,如何执行你的项目,如何运行你的代码

      1. 执行shell

      2. Windows 终端

      3. .....

    6. 构建后的操作,当项目构建完毕后,要做什么事情

      1. 生成相关报告

      2. 发送相关的邮件

    保存

     凭据设置

     全局凭据配置

     

     

     

     修改凭据

     配置私钥

     

     

     构建触发器轮询

    每天上午八点半执行一次

     初次构建

     立即构建

     控制台输出

     

     

     可以看到代码已经拉下来了

     查看所有的镜像

    docker images

    查看镜像的镜像基础

    cat /etc/issue

     查看新建的镜像基础信息

     进入新的容器的内部空间

    docker exec -it tmp bash

    列出所有的包apk info 

    列出包的情况信息 apk info musl

     安装vim:apk add vim

     搜索vim的源apk search vim

     删除vim:apk del vim

     更新源apk update -y

     安装python并指定版本:apk add python3=3.6.9-r2

     查看python版本python3 -V

     查看Java和git版本信息

     全局工具配置-新增JDK

    查看环境变量echo $PATH

     模糊查找git:ls /usr/bin/git*

     

     Allure Commandline

     配置执行命令

    pip3 install -i https://pypi.doubanio.com/simple -r /var/jenkins_home/workspace/at1/requirements.txt

    python3 /var/jenkins_home/workspace/at1/start.py

     解决依赖apk add gcc

     apk add build-base

     升级pip:pip3 install --upgrade pip 

    立即构建

     控制台输出

     

     配置生成allure报告的命令

    参数化构建过程-文本参数

     

     

     构建后的操作

     参数化运行

     配置邮箱-系统配置

     

     

     

     构建后操作发邮件

     

     邮箱高级操作

     

     

     项目里面配置成高级设置

     开始构建

     

     

     

     

     

     

     打包镜像

    docker commit --author zhangda --message "一个基于jenkinsci/blueocean:latest的jenkins镜像,配置好了python环境,allure插件" s267 s267_jenkins:1.0

     再save

    docker save -o s267_jenkins:1.0 s267_jenkins:1.0

    拉取镜像并启动jenkins

    docker pull wangzhangkai/jenkins:1.0

    docker run
    -u root
    --name myjenkins
    --restart=always
    -d
    -p 6010:8080
    -p 50000:50000
    --env JAVA_OPTS="-Xmx1024m"
    -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
    -v /etc/localtime:/etc/localtime
    -v /tmp/jenkins_home:/var/jenkins_home
    -v /var/run/docker.sock:/var/run/docker.sock
    wangzhangkai/jenkins:1.0

     查看所有的镜像docker images 

    docker container ls -a 查看所有运行过的镜像

    docker container ls 查看当前正在运行的镜像

     把封包的镜像导入到centos7根目录下

     重命名文件

    使用load导入到docker中

     查看镜像信息

    docker images | grep temp

    启动镜像

    docker run
    -u root
    --name myjenkins
    --restart=always
    -d
    -p 6004:8080
    -p 50000:50000
    --env JAVA_OPTS="-Xmx1024m"
    -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
    -v /etc/localtime:/etc/localtime
    -v /docker_data/jenkins_home:/var/jenkins_home
    -v /var/run/docker.sock:/var/run/docker.sock
    s267_jenkins:1.0

  • 相关阅读:
    linux command mktemp
    易经中时常会想起的句子
    判断NumLock键和CapsLock键是否被锁定
    获得虚拟键键码
    获取功能键
    捕获组合键
    模拟鼠标操作
    利用鼠标绘图
    使用鼠标拖放复制文本
    双击窗体是模拟键盘上的Tab键
  • 原文地址:https://www.cnblogs.com/zhang-da/p/12306265.html
Copyright © 2020-2023  润新知