zoukankan      html  css  js  c++  java
  • devops基础02--jenkins

    devops

    devops基础01--gitlab - omgasw - 博客园 (cnblogs.com)

    devops基础02--jenkins - omgasw - 博客园 (cnblogs.com)

    devops基础03--sonarqube - omgasw - 博客园 (cnblogs.com)

    devops基础04--maven - omgasw - 博客园 (cnblogs.com)

    devops基础06--maven pom.xml - omgasw - 博客园 (cnblogs.com)

    devops基础05--nexus - omgasw - 博客园 (cnblogs.com)

    $

    $

    $

    jenkins

    Jenkins

    Jenkins 用户手册

    Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件

    1.jenkins install

    1.通过rpm包安装

    Linux (jenkins.io)

    从清华大学源下载安装包

    Index of /jenkins/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

    # 先安装openjdk
    yum -y install java-11-openjdk-devel
    
    # 安装jenkins
    rpm -ivh jenkins-2.289.2-1.1.noarch.rpm
    
    # 修改启动用户
    [root@jenkins01 ~]# egrep -v '^$|#' /etc/sysconfig/jenkins 
      NKINS_HOME="/var/lib/jenkins"
    JENKINS_JAVA_CMD=""
    JENKINS_USER="jenkins"  ##可以修改成root,生产环境不建议修改
    JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
    JENKINS_PORT="8080"
    JENKINS_LISTEN_ADDRESS=""
    JENKINS_HTTPS_PORT=""
    JENKINS_HTTPS_KEYSTORE=""
    JENKINS_HTTPS_KEYSTORE_PASSWORD=""
    JENKINS_HTTPS_LISTEN_ADDRESS=""
    JENKINS_HTTP2_PORT=""
    JENKINS_HTTP2_LISTEN_ADDRESS=""
    JENKINS_DEBUG_LEVEL="5"
    JENKINS_ENABLE_ACCESS_LOG="no"
    JENKINS_HANDLER_MAX="100"
    JENKINS_HANDLER_IDLE="20"
    JENKINS_EXTRA_LIB_FOLDER=""
    JENKINS_ARGS=""
    
    # 启动
    sudo systemctl daemon-reload
    sudo systemctl restart jenkins

    2.通过web页面继续安装

    ##

    2.插件管理

    1.手动导入

    插件路径

    [root@jenkins01 ~]# ls /var/lib/jenkins/plugins/
    ace-editor                              bouncycastle-api      command-launcher         email-ext                 github.jpi        jdk-tool         lockable-resources      pam-auth                     pipeline-model-api                pipeline-stage-view      scm-api              structs                  workflow-basic-steps            workflow-scm-step
    ace-editor.jpi                          bouncycastle-api.jpi  command-launcher.jpi     email-ext.jpi             git.jpi           jdk-tool.jpi     lockable-resources.jpi  pam-auth.jpi                 pipeline-model-api.jpi            pipeline-stage-view.jpi  scm-api.jpi          structs.jpi              workflow-basic-steps.jpi        workflow-scm-step.jpi
    ant                                     branch-api            credentials              font-awesome-api          git-server        jjwt-api         mailer                  pipeline-build-step          pipeline-model-definition         plain-credentials        script-security      timestamper              workflow-cps                    workflow-step-api
    antisamy-markup-formatter               branch-api.jpi        credentials-binding      font-awesome-api.jpi      git-server.jpi    jjwt-api.jpi     mailer.jpi              pipeline-build-step.jpi      pipeline-model-definition.jpi     plain-credentials.jpi    script-security.jpi  timestamper.jpi          workflow-cps-global-lib         workflow-step-api.jpi
    antisamy-markup-formatter.jpi           build-timeout         credentials-binding.jpi  git                       gradle            jquery3-api      matrix-auth             pipeline-github-lib          pipeline-model-extensions         plugin-util-api          snakeyaml-api        token-macro              workflow-cps-global-lib.jpi     workflow-support
    ant.jpi                                 build-timeout.jpi     credentials.jpi          git-client                gradle.jpi        jquery3-api.jpi  matrix-auth.jpi         pipeline-github-lib.jpi      pipeline-model-extensions.jpi     plugin-util-api.jpi      snakeyaml-api.jpi    token-macro.jpi          workflow-cps.jpi                workflow-support.jpi
    apache-httpcomponents-client-4-api      caffeine-api          display-url-api          git-client.jpi            handlebars        jsch             matrix-project          pipeline-graph-analysis      pipeline-rest-api                 popper2-api              ssh-credentials      trilead-api              workflow-durable-task-step      ws-cleanup
    apache-httpcomponents-client-4-api.jpi  caffeine-api.jpi      display-url-api.jpi      github                    handlebars.jpi    jsch.jpi         matrix-project.jpi      pipeline-graph-analysis.jpi  pipeline-rest-api.jpi             popper2-api.jpi          ssh-credentials.jpi  trilead-api.jpi          workflow-durable-task-step.jpi  ws-cleanup.jpi
    bootstrap4-api                          checks-api            durable-task             github-api                jackson2-api      junit            momentjs                pipeline-input-step          pipeline-stage-step               popper-api               sshd                 workflow-aggregator      workflow-job
    bootstrap4-api.jpi                      checks-api.jpi        durable-task.jpi         github-api.jpi            jackson2-api.jpi  junit.jpi        momentjs.jpi            pipeline-input-step.jpi      pipeline-stage-step.jpi           popper-api.jpi           sshd.jpi             workflow-aggregator.jpi  workflow-job.jpi
    bootstrap5-api                          cloudbees-folder      echarts-api              github-branch-source      jaxb              ldap             okhttp-api              pipeline-milestone-step      pipeline-stage-tags-metadata      resource-disposer        ssh-slaves           workflow-api             workflow-multibranch
    bootstrap5-api.jpi                      cloudbees-folder.jpi  echarts-api.jpi          github-branch-source.jpi  jaxb.jpi          ldap.jpi         okhttp-api.jpi          pipeline-milestone-step.jpi  pipeline-stage-tags-metadata.jpi  resource-disposer.jpi    ssh-slaves.jpi       workflow-api.jpi         workflow-multibranch.jpi

    2.更改国内源

    ##

    3.web页面安装

    ##

    3.配置邮箱通知

    1.接收邮箱

    2.配置发送端

     3.测试发送

    3.工具配置

    ##

    4.配置分布式agent

    添加node:

    1.先在node节点安装JDK

    yum -y install java-11-openjdk-devel

    2.通过web页面配置

    此处工作目录要求与master保持一致

    master工作目录位置:

    [root@jenkins01 ~]# cd /var/lib/jenkins/
    [root@jenkins01 jenkins]# ls
    config.xml                                   jenkins.install.UpgradeWizard.state             nodeMonitors.xml          secrets
    hudson.model.UpdateCenter.xml                jenkins.model.JenkinsLocationConfiguration.xml  nodes                     updates
    hudson.plugins.git.GitTool.xml               jenkins.telemetry.Correlator.xml                plugins                   userContent
    identity.key.enc                             jobs                                            secret.key                users
    jenkins.install.InstallUtil.lastExecVersion  logs                                            secret.key.not-so-secret  workflow-libs

    node节点要手动创建:

    [root@jenkins_agent01 ~]# mkdir -p /var/lib/jenkins

    3.创建证书

    ## 节点属性暂时不做配置

    ## 节点状态

    5.对接gitlab配置密钥

    1.在jenkins节点创建密钥对

    [root@jenkins01 ~]# ssh-keygen 
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    SHA256:sQC5Nnu899Lcmteb0fSNR3RzxrAngHXxvO+2dgFYC9Q root@jenkins01
    The key's randomart image is:
    +---[RSA 2048]----+
    |    ..    .++ +. |
    |    ..    .. E * |
    |     .. .   + +.X|
    |    +  . o . o ==|
    |   . +  S     ..o|
    |    . o        *+|
    |     . . o . .o B|
    |      . o o.o .*o|
    |       . o+o  +++|
    +----[SHA256]-----+
    
    [root@jenkins01 ~]# ls /root/.ssh/
    id_rsa  id_rsa.pub

    2.将公钥填入gitlab

    [root@jenkins01 .ssh]# cat id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkIazpiMQVNZZyTr5+PmUZVEq4UOKrP1/9yoAsC9hagAQWTxZnt//Pr1usom4Re0AyUuCLboQCGSMftPfBblD/icY85EBtH0atAppKvw9xSoUh/fNw1y56KYYNArkecjFr49WCEuJ4LB8ztMeRwT7oZawJHyFlAe8fJLSjBCB4w4OEJBaLblg2qqE1jyJ25FPPhnBVGDu7wbgdaTtXiob5xZK0bOx5BhHFYBSCe7E7QD4YPbU4fLx8cjACBee+arw3HViMicBGmi1uiTTF8w5Y5ko5Gom5xSRPIxGHz1dxmHrUQ1uF3iYSCVhWPGDD+unJkERVB6fVtoU8QtyeqOXf root@jenkins01

    3.在jenkins新建自由项目

    4.配置私钥

    ## 代码管理选择git

    5.创建证书

    6.拉取code

    ## 立即构建拉取代码

    ## 查看日志输出

    build

    ## 配置构建

    1.基于shell

    ## 先做免密钥认证

    2.基于pipline

    流水线是用户定义的一个CD流水线模型 。流水线的代码定义了整个的构建过程, 他通常包括构建, 测试和交付应用程序的阶段

    流水线 (jenkins.io)

    流水线语法 (jenkins.io)

  • 相关阅读:
    Python正则表达式如何进行字符串替换实例
    Python正则表达式如何进行字符串替换实例
    Python正则表达式如何进行字符串替换实例
    Python正则表达式如何进行字符串替换实例
    得益于AI,这五个行业岗位需求将呈现显著增长趋势
    得益于AI,这五个行业岗位需求将呈现显著增长趋势
    Python实现二叉堆
    Python实现二叉堆
    ubuntu14.04安装OpenVirteX
    ubuntu下sh文件使用
  • 原文地址:https://www.cnblogs.com/omgasw/p/15075577.html
Copyright © 2011-2022 走看看