Jenkins 创建一个 job , 用于单独执行脚本

这篇具有很好参考价值的文章主要介绍了Jenkins 创建一个 job , 用于单独执行脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.首先,在Jenkins中创建一个新的job

2.之后,会进入配置页面,在配置页面进行配置。

 2.1.找到【Build Steps】,下拉菜单中选择「シェルの実行」 (执行Shell)

2.2.之后,会出现シェルスクリプト (Shell Script) 的 Area,在这里录入你想执行的 脚本

3.运行,并查看Log

・设置脚本

・运行

・查看Log

相关疑问

1.再容器内部执行ps 命令 ,为什么还能看到 其他容器 的信息

2.在容器内部,能否查看容器被启动时,使用的命令

其它

1.其它版本的图片

2.pipelene流水线

3.自由风格 Job

4.Job一览画面

5.首页的显示

6.系统管理

7.插件管理

8.重新启动Jenkins

9.一些警告

10.Jenkins凭证相关

11.Jenkins凭证相关代码【Pipeline】

12.Jenkins整体流程【Pipeline】

13.Jenkins参数使用【Pipeline】


1.首先,在Jenkins中创建一个新的job

在Jenkins主页上,单击“新建项目”按钮。
输入项目名称,
并 选择【自由风格项目】。 (フリースタイル・プロジェクトのビルド)

 jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

====文章来源地址https://www.toymoban.com/news/detail-653731.html

2.之后,会进入配置页面,在配置页面进行配置。

====

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

 2.1.找到【Build Steps】,下拉菜单中选择「シェルの実行」 (执行Shell)

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

 =====

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

====

2.2.之后,会出现シェルスクリプト (Shell Script) 的 Area,在这里录入你想执行的 脚本

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

 ---

  比如

   docker ps
   uname
   id
   ls -l ~/.ssh/
   curl -m 5 yourTestServer
   ssh -v -i ~/.ssh/id_rsa_XXXServerUse yourTestUserName@yourTestServer

 ===

保存之后,你刚才创建的工程,会出现在这里

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

 ==

3.运行,并查看Log

・设置脚本

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

----

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

docker ps
uname
uname -a
id
#ls -l ~/.ssh/
ls -l ~/

---

・运行

---

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

・查看Log

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

 ---

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

---

相关疑问

1.再容器内部执行ps 命令 ,为什么还能看到 其他容器 的信息

(在单位的环境中,在我自己的Jenkins上,执行 docker ps 命令,还能看到其他的容器信息)

在容器内部执行 ps 命令时,默认情况下,只会显示该容器内的进程信息,而无法看到其他容器的信息。但是有一些特殊情况下,你可能会看到其他容器的信息。

  1. 如果你在宿主机上使用 docker exec 命令来进入一个正在运行的容器,并在该容器内部执行 ps 命令,你会看到其他容器的信息。这是因为 docker exec 命令实际上是在宿主机上运行的,并会通过 Docker daemon 来访问容器的进程空间。

  2. 如果多个容器之间共享了相同的 pid 命名空间,那么在其中一个容器内部执行 ps 命令时,会看到所有共享同一命名空间的容器的进程信息。这种情况通常是通过 Docker Compose 或 Kubernetes 等工具来管理多个容器的情况下出现的。

总而言之,一般情况下容器内部只能看到自己的进程信息,如果你能看到其他容器的信息,可能是因为你处于特殊的操作环境下,或者多个容器共享了相同的命名空间。

====

Docker daemon(也称为Docker引擎)是Docker的核心组件之一。它是一个在宿主机上运行的后台进程,负责管理和运行Docker容器。Docker daemon监听从Docker客户端发送的API请求,并根据这些请求来创建、启动、停止、删除等容器操作。

===

Docker daemon还负责管理Docker镜像的生命周期,包括从Docker仓库拉取镜像、构建镜像、推送镜像到仓库等。它还提供了网络和存储驱动程序,使容器可以与其他容器或主机进行通信,并能够通过Docker卷来持久化数据。

==

综上所述,Docker daemon是在后台运行的守护进程,用于管理和操作Docker容器和镜像。它是Docker的核心引擎,负责处理所有与Docker相关的操作,并提供Docker API供客户端使用。

2.在容器内部,能否查看容器被启动时,使用的命令

在容器内部,默认情况下是无法查看容器被启动时使用的命令的。它不会暴露容器启动时使用的命令。但是,你可以通过一些技巧来获取这些信息。

一种方法是查看容器的日志。使用docker logs命令可以查看容器的标准输出和标准错误输出。可以使用docker logs <container_id>命令来查看容器的日志输出,以便了解容器启动时使用的命令。

另一种方法是通过进入容器的方式来查看。使用docker exec -it <container_id> bash命令可以进入正在运行的容器的Shell环境,然后你可以查看容器内的文件系统中的一些相关信息,例如 /proc/cmdline 文件来获取启动命令。但是这种方法只适用于容器在运行时的情况。

需要注意的是,这些方法都是在容器内部获取容器启动时使用的命令的方式,而不是在宿主机上获取。

===

其它

1.其它版本的图片

=====
草稿草稿草稿_sun0322的博客-CSDN博客

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

2.Pipeline流水线

xxxx

2.pipelene流水线

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

通常,我们会选择【参数化构建过程(ビルドのパラメータ化)】,指定各种参数,

  比如,发布的环境,发布的branch等等

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

======

同时,参数也分好的中,上面选择的是【字符参数】

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

======

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

【TODO1】需要调查一下,为什么无法使用。
想定可以在这里填写Git的URL

 

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

Specify where to obtain a source code repository containing your Groovy script. It will be checked out somewhere on the Jenkins master and used to load your Pipeline script. (If you wish to use other files from the same repository during your Pipeline, you will need to check them out separately on some slave; this checkout cannot be reused.)

【TODO1:回答】

    当前的 SCM 下面 显示的是【无】,

     应该可以在这里选择【Git】或【Subversion】

      比如选择【Git】之后,会出现配置リポジトリ的区域,可以输入「リポジトリURL」

但是,下拉菜单中,还是什么也看不到【TODO2:为什么什么都看不到】

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

【TODO2:回答】

   解决方法,安装【GitHub插件】

安装后,问题解决,可以选择 【Git】

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

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

3.自由风格 Job

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

4.Job一览画面

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

5.首页的显示

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

====

6.系统管理

上面选择【系统管理】就,进入下面的页面

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

=====

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

=====

7.插件管理

=====

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

8.重新启动Jenkins

URL/restart

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

9.一些警告

jenkins创建job,工具软件,# 敏捷开发 DevOps,jenkins,运维

===

10.Jenkins凭证相关

Jenkins Pipeline 流水线 - withCredentials 使用 - VipSoft - 博客园 (cnblogs.com)

11.Jenkins凭证相关代码【Pipeline】

=======

「Jenkins Pipeline」- 凭证的处理 @20210425 - 研究林纳斯写的 - 博客园 (cnblogs.com)

在【run_register_jar_to_github_tags】中,可以用使用变量${GITHUB_API_TOKEN}


stage('Register To Github Tags') {

    steps {

                withCredentials([usernamePassword(credentialsId: 'yourGitHubWebAPIToken', :variable: 'GITHUB_API_TOKEN')]) {
                         sh './jenkins/run_register_jar_to_github_tags.sh'
             }

     }

}

绿色部分是自己定义的一个变量,后面的shell中,可以使用这个变量!

比如,调用github的webAPI

【run_register_jar_to_github_tags.sh】中的代码如下

curl  -k -s -H "Authorization:token" ${GITHUB_API_TOKEN} -H"Content-Type:application/jar" --data-binary @xxxxx.jar " ${UPLOAD_URL}?name=xxxxx.jar

更多 pipeline相关代码

pipeline {
    agent any
 
    stages {  
        stage('withCredentials 使用凭证') { 
            steps {
                withCredentials([usernamePassword(credentialsId: 'DockerServer', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
                  // available as an env variable, but will be masked if you try to print it out any which way
                  // note: single quotes prevent Groovy interpolation; expansion is by Bourne Shell, which is what you want
                  bat 'echo ${USERNAME}' //Linux 下 sh 'echo $USERNAME',TODO Windows 上怎么写,

                  // also available as a Groovy variable
                  echo USERNAME

                 // or inside double quotes for string interpolation
                  echo "username is $USERNAME"
                }  
                echo 'Credentials SUCCESS'
            }
        }

        //指定 Docker 服务器节点。用于编译、上传镜像,指定K8S节点,用于升级程序
        stage('指定节点中使用凭证') { 
            agent { label 'DockerAgent' }
            steps {  
                withCredentials([usernamePassword(credentialsId: 'DockerServer', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {                 
                    sh 'docker --version' 
                    sh "echo 'docker login -u ${USERNAME} -p ${PASSWORD} image_url'"
                }  
                echo 'Credentials SUCCESS'
            }
        }
    }
}

====

12.Jenkins整体流程【Pipeline】

史上最全 Jenkins Pipeline流水线详解 - 知乎 (zhihu.com)

pipeline {

    agent any

     // 写在顶层环境变量,可以让所有stage下的step共享这些变量  // 里面键值对

    environment {
        appName = 'XXXX'
        appVersion = '1.0.0'
    }

    parameters {
      gitParameter(name: 'MY_BRANCH', defaultValue: '', description 'GitHub branch', type: 'BRANCH')
      
      choice(name: 'ENV', choices: ['IT', 'ST1', 'ST2', 'ST3'], description 'リリース環境')
      
      booleanParam(name: 'FLAGXXX', defaultValue: false, description: '布尔值参数' )
      
    }

    stages {

          stage('xxxxxStep001'){.....}
          stage('xxxxxStep002'){.....}
          .....

    }
    
    
    // Post 一般用于流水线结束后的进一步处理,比如错误通知等。
    // Post 可以针对流水线不同的结果做出不同的处理,就像开发程序的错误处理,比如 Java 语言的 try catch。

    post {
    
       always {
                  // pipeline清理工作区方法  使用cleanWs 或   deleteDir()
                   cleanWs(  cleanWhenAborted: true, cleanWhenFailure: true, cleanWhenNotBuilt: true, cleanWhenSuccess: true,  cleanWhenUnstable: true, cleanupMatrixParent: true, disableDeferredWipeout: true, # 这个选项是关闭延时删除,立即删除。deleteDirs: true)
              }
    
    
    }
    
}

13.Jenkins参数使用【Pipeline】

史上最全 Jenkins Pipeline流水线详解 - 知乎 (zhihu.com)

...
parameters {
  gitParameter(name: 'MY_BRANCH', defaultValue: '', description 'GitHub branch', type: 'BRANCH')
  
  choice(name: 'ENV', choices: ['IT', 'ST1', 'ST2', 'ST3'], description 'リリース環境')
  
  booleanParam(name: 'FLAGXXX', defaultValue: false, description: '布尔值参数' )
  
}
...
stage('step0001') {
    when {
        anyOf{
            expresion{ param.ENV == 'ST1' }
            expresion{ param.ENV == 'ST2' }
            expresion{ param.ENV == 'ST3' }
        }
    
    } steps {
         sh './jenkins/xxx.sh' 
    }
 
}
...

====

到了这里,关于Jenkins 创建一个 job , 用于单独执行脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Jenkins的Python脚本执行详解!另附完整安装教程

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客 文章浏览阅读2k次,点赞85次,收藏11次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测

    2024年02月02日
    浏览(30)
  • 解决Jenkins执行Python脚本不能实时输出打印信息的问题

    在使用Jenkins的 shell command 来执行python脚本时,总是会等脚本执行完毕,最后一次性才把脚本中的 print 语句给打印出来; 在 print 语句后加上 sys.stdout.flush() , 就可以达到实时输出的目的了。

    2024年02月10日
    浏览(28)
  • Jenkins 执行远程shell脚本部署jar文件问题起不来

    如图:最开始的时候没有加: source /etc/profile 这一行, run.sh里面的java -jar xxxx.jar 一直执行不来。 一开始以为是Jenkins执行退出后会kill一切它启动的进程,所以加了在run.sh里面加了export BUILD_ID=dontKillMe,还是不行。后来考虑是环境变量问题,加上source /etc/profile就好了,同时最

    2024年02月07日
    浏览(37)
  • Jenkins执行shell脚本报错:docker: command not found

    搭建完Jenkins之后,着手开始创建构建服务的任务,点击构建,但是一直构建失败,控制台日志一直报错 截图 尝试了了很多解决办法,比如在shell脚本前加上两行代码 但对于我的情况还是不起作用。 最后才发现,是我的Jenkins没有配置全局的PATH环境变量,配置方法如下 1、首

    2024年02月13日
    浏览(34)
  • Jenkins部署ssh连接远程主机执行脚本找不到环境变量的问题

    最近在Jenkins部署远程执行其他服务器上的编译脚本时遇到报找不到编译器的问题,耗时两天尝试了排序比较靠前的一些方法,但都没能解决问题,所以决定记录下,希望能帮助到大家。 执行命令:ssh root@远程主机 /studio/test.sh 编译报错: /bin/sh: 1: aarch64-linux-gnu-gcc: not found 注

    2024年02月15日
    浏览(37)
  • Linux安装ossutil工具且在Jenkins中执行shell脚本下载文件

    测试中遇到想通过Jenkins下载OSS桶上的文件,要先在linux上安装ossutil工具,记录安装过程如下: 一、下载安装ossutil,使用命令 1.下载:wget https://gosspublic.alicdn.com/ossutil/1.7.13/ossutil64 2.一定要赋权限:chmod 755 ossutil64,不然会提示权限不足 3.配置文件: ./ossutil64 config 输入accessK

    2024年01月19日
    浏览(32)
  • 十八、Jenkins(centos7)执行接口自动化测试脚本,飞书推送测试结果消息

    https://gitee.com/HP_mojin/pytest_allure_request_20220811 创建虚拟环境:https://blog.csdn.net/qq_42846555/article/details/131579627

    2024年02月13日
    浏览(42)
  • 解决Jenkins执行git脚本时报错:No such device or address问题

    问题现象: Jenkins执行BeanShell脚本时,报错:jenkins fatal: could not read Username for \\\'http://112.11.120.1\\\': No such device or address  解决方案: 解决服务器拉取git仓库的代码权限,使用高级子模块克隆功能。 执行结果:虽然也报错,但整体脚本执行通过

    2024年02月01日
    浏览(30)
  • Docker快速创建一个单机版的Jenkins实例

     目录 一、创建 Jenkins 实例 二、Pipeline 项目 三、总结 谈到 CI/CD,那便少不了这里面的佼佼者 Jenkins,正如 Jenkins 官网说的一样:“Build great things at any scale”,构建伟大,无所不能! 话不多说, 该篇文章将会带你使用 Docker 快速创建一个单机版的 Jenkins 实例以及创建一个简单

    2024年02月05日
    浏览(31)
  • jenkins工具系列 —— 删除Jenkins JOB后清理workspace

    Jenkins使用过程中,占用空间最大的两个位置: 1 、workspace: 工作空间,可以随便删除,删除后再次构建时间可能会比较长,因为要重新获取一些资源。 2 、job: 存放的是项目的配置、构建结果、日志等。不建议手动删除,手动删除的后果往往需要重新部署。 选择给项目配置

    2024年02月07日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包