页面“Cmdb”与“Pipeline”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
=10分钟一个cmdb=
+
=Jenkins Pipeline 简介=
https://blog.csdn.net/weixin_43420337/article/details/90903285
+
Jenkins pipeline 是 Jenkins 2.0 的精髓,,是帮助 Jenkins 实现 CI 到 CD 转变的重要角色。
  
 +
简单来说,就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。
  
[https://www.jianshu.com/p/80d233588bd4 10 分钟为你搭建一个超好用的 cmdb 系统]
+
Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本,并且 Jenkins 支持从代码库直接读取脚本,从而实现了 Pipeline as Code 的理念。
  
[https://blog.csdn.net/weixin_43420337/article/details/90903285 使用django从零开始开发一个cmdb系统一]
+
[https://www.cnblogs.com/itech/p/5633948.html jenkins2 pipeline入门 ]
  
[https://www.pianshen.com/article/22298574/  一个Django项目:搭建基本自动化运维平台 ]
+
官方文档
 +
流水线可以通过以下任一方式来创建:
  
=pre=
+
    通过 Blue Ocean - 在 Blue Ocean 中设置一个流水线项目后,Blue Ocean UI 会帮你编写流水线的 Jenkinsfile 文件并提交到源代码管理系统。
[https://www.centos.bz/2014/09/code-auto-deploy-system/ 代码发布系统实现]
 
  
 +
    通过经典 UI - 你可以通过经典 UI 在 Jenkins 中直接输入基本的流水线。
  
[[Python虚拟环境virtualenv]]
+
    在源码管理系统中定义 - 你可以手动编写一个 Jenkinsfile 文件,然后提交到项目的源代码管理仓库中。[3]
=进阶=
 
  
[https://blog.51cto.com/hequan/2447140  Django之入门 CMDB系统 (一) 基础环境 原创 ]
+
使用两种方式定义流水线的语法是相同的。尽管 Jenkins 支持在经典 UI 中直接进入流水线,但通常认为最好的实践是在 Jenkinsfile 文件中定义流水线,Jenkins 之后会直接从源代码管理系统加载。
  
[https://blog.51cto.com/hequan/2447143  Django之入门 CMDB系统 (二) 前端模板 原创 ]
+
=Jenkins Pipeline 支持两种语法=
 
 
[https://blog.51cto.com/hequan/2447145  Django之入门 CMDB系统 (三) 登录注销 原创 ]
 
 
 
[https://blog.51cto.com/hequan/2447147  Django之入门 CMDB系统 (四) 增删改查 原创 ]
 
 
 
[https://blog.51cto.com/hequan/2450408  Django之入门 CMDB系统 (五) 前后端分离之前端 原创 ]
 
 
 
[https://blog.51cto.com/hequan/2450628  Django之入门 CMDB系统 (六) 前后端分离之后端 原创 ]
 
 
 
 
 
 
 
[https://www.zhihu.com/question/312613163 zhihu.怎么用python从零写出一个CMDB?]
 
 
 
[https://www.liujiangblog.com/course/django/116 实战二:Django2.2之CMDB资产管理系统]
 
 
 
[https://blog.csdn.net/weixin_43420337/article/details/90903285  使用django从零开始开发一个cmdb系统一]
 
 
 
 
 
[https://blog.csdn.net/yuezhilangniao/article/details/112673203?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-9.control  django cmdb 十分钟 10分钟 cmdb]
 
https://gitee.com/attacker/cmdb
 
 
 
=install=
 
 
<pre>
 
<pre>
#auto 不交互
 
 
#初始化脚本和导入
 
 
#init
 
 
#django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory
 
ln -s /tmp/mysql.sock  /var/lib/mysql/
 
ln -s  /data/apps/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20
 
 
 
 
yum install -y mysql-devel python-devel -y
 
 
#pip
 
mkdir -p ~/.pip
 
 
cat >>~/.pip/pip.conf<<EOF
 
[global]
 
index-url = http://mirrors.aliyun.com/pypi/simple/
 
 
[install]
 
trusted-host=mirrors.aliyun.com
 
EOF
 
 
pip install -r requirements.txt
 
 
#create database
 
mysql -uroot -p'mysql!q$EWQ23FD23'  -e "create database mycmdb";
 
mysql -uroot -p'mysql!q$EWQ23FD23'  -e 'grant all on *.* to root@"%" identified by "mysql!q$EWQ23FD23"';
 
#grant all on *.*  to root@'%' identified by 'mysql!q$EWQ23FD23';
 
# err mysql -uroot -p'mysql!q$EWQ23FD23' -e "grant all on *.*  to root@'%' identified by 'mysql!q$EWQ23FD23'";
 
 
mysql -uroot -p'mysql!q$EWQ23FD23' -e 'show databases';
 
mysql -uroot -p'mysql!q$EWQ23FD23' -e 'drop database mycmdb';
 
mysql -uroot -p'mysql!q$EWQ23FD23' -e ' create  database mycmdb';
 
 
mysql -uroot -p'mysql!q$EWQ23FD23' -e 'flush privileges';
 
 
 
#修改dj mysql 配置
 
 
##初始化数据表
 
cd mycmdb
 
python2.7 manage.py makemigrations  #创建更改的文件
 
sleep 4
 
python2.7 manage.py migrate # 2. 将生成的py文件应用到数据库
 
 
#django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint') 不过早上 一开始没这问题的
 
 
#django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint' 第二次又好了
 
 
#初始化数据库
 
#如果没有这一步 ,mysql 只有结构  没有数据的  #RROR 1022 (23000) at line 450: Can't write; duplicate key in table 'myuser'
 
mysql -uroot -p'mysql!q$EWQ23FD23' mycmdb < evatar_cmdb_dev.sql
 
  
#[root@localhost mycmdb]# mysql -uroot -p'mysql!q$EWQ23FD23' mycmdb < evatar_cmdb_dev.sql
 
#mysql: [Warning] Using a password on the command line interface can be insecure.
 
#ERROR 1022 (23000) at line 450: Can't write; duplicate key in table 'myuser'
 
  
#run
+
My-pipeline-job01 ->流水线语法    我好像没怎么用
python2.7 manage.py runserver 0.0.0.0:8888
 
  
python manage.py createsuperuser --username=evan [email protected]
+
Jenkins Pipeline 支持两种语法,一种 Declarative Pipeline(声明式),一种 ScriptedPipeline(脚本式)。
  
#强制添加用户
+
安装pipeline相关插件  全部要显示为Success  pending是不行的
http://cmdb.com/ecmdb/
 
  
  
 +
声明式的 Pipeline 限制用户使用严格的预选定义的结构,是一种声明
 +
式的编程模型,对比脚本式的 Pipeline 学习起来更加简单;
  
 +
脚本式的 Pipeline 限制比较少,结构和语法的限制由 Groovy 本身决定,是一种命令式的编程模型。
 +
所以我们学习使用声明式的方式编写 jenkinsfile。
 +
一般来说 jenkinsfile 会被放在代码库的根目录下。
  
 +
当然也可以在 Web 页面定义。
  
 +
下面是两种不同方式的 jenkinsfile 示例
 
</pre>
 
</pre>
 +
==Jenkinsfile (声明式)==
  
=一些问题=
 
2021
 
 
 
[https://blog.csdn.net/Amo_te_ama_me/article/details/100883444  django修改model结构 miaration不生效的问题总结]
 
 
[https://blog.csdn.net/sinat_33384251/article/details/109962333  Django重置migrations文件的方法步骤]
 
 
[https://blog.csdn.net/qq_38974638/article/details/105727433  MySQL 错误码: 1054 Unknown column ‘**‘ in ‘field list‘问题解决] 有可能导入的库文件不对
 
 
== old==
 
 
<pre>
 
<pre>
  
yum install -y mysql-devel python-devel -y
+
pipeline {
 
+
    agent any
pip install -r requirements.txt
+
    stages {
 
+
        stage('Build') {
 
+
            steps {
##初始化 ###初始数据库 ####创建数据库(进入数据库操作)  
+
                echo 'Building..'
create database hcmdb;
+
                }
grant all on hcmdb.* to HCmdbAdmin@'localhost' identified by 'nDrDyXd#dnoMqH2'; #(根据settings.py中设定修改)  
+
            }
####初始化数据表 *
+
            stage('Test') {
python2.7 manage.py makemigrations
+
                steps {
python2.7 manage.py migrate
+
                    echo 'Testing..'  
 
+
                }
####初始化数据
+
            }
mysql -uHCmdbAdmin -p hcmdb < init.sql
+
            stage('Deploy') {
 +
                steps {
 +
                    echo 'Deploying....'
 +
                }
 +
            }
 +
        }
 +
    }
  
##运行
+
前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{},
 +
紧接着是 agent  就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式  后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点
  
python2.7 manage.py runserver 0.0.0.0:9003
+
指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline,
##登陆
 
  
用户名: cmdbAdmin 密码: cmdbAdmin
+
stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里,
  
 +
stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个
  
 +
每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行
 
</pre>
 
</pre>
 
+
=django常用命令=
+
==Jenkinsfile(脚本式)==
 
<pre>
 
<pre>
python manage.py startapp appname
 
python manage.py runserver 0.0.0.0:8000
 
python manage.py makemigrations
 
python manage.py migrate
 
python manage.py createsuperuser
 
python manage.py changepassword
 
python manage.py clearsessions
 
  
#其他命令
+
node {
python manage.py shell     #进入django shell
+
     stage('Build') {
python manage.py dbshell  #进入django dbshell
+
        //
python manage.py check     #检查django项目完整性
+
     }
python manage.py flush     #清空数据库
+
     stage('Test') {
python manage.py compilemessages  #编译语言文件
+
        //
python manage.py makemessages      #创建语言文件
+
    }
python manage.py showmigrations    #查看生成的数据库同步脚本
+
    stage('Deploy') {
python manage.py sqlflush          #查看生成清空数据库的脚本
+
        //
python manage.py sqlmigrate        #查看数据库同步的sql语句
+
    }
python manage.py dumpdata          #导出数据
+
}
python manage.py loaddata          #导入数据
 
python manage.py diffsettings      #查看你的配置和django默认配置的不同之处
 
  
其他命令
+
在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里
 +
定义你的 stage,在 stage 里定义你的 step 即可
 
</pre>
 
</pre>
  
==note==
+
=进阶advance=
<pre>
 
  
#No module named bootstrapform
+
[https://www.jenkins.io/zh/doc/book/pipeline/getting-started/ .jenkins.io/zh/doc/book  流水线入门]
pip install django-bootstrap-form
 
  
#ImportError: No module named tastypie
+
[https://www.jenkins.io/zh/doc/book/pipeline/getting-started/ jenkins.io 流水线入门]
sudo pip install django-tastypie
 
  
 +
[https://zhuanlan.zhihu.com/p/143552791 Jenkins 声明式流水线的语法错误检查]
  
 +
[https://www.cnblogs.com/mingerlcm/p/12806076.html  Pipeline 语法生成器]
  
由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替
+
[https://www.jenkins.io/zh/doc/book/pipeline/syntax/ 流水线语法]
如下设置放置的与project同名的配置的 __init__.py文件中
 
  
import pymysql
 
pymysql.install_as_MySQLdb()
 
  
</pre>
+
Jenkins2 下载与启动
 +
jenkins2 插件安装
 +
jenkins2 hellopipeline
 +
jenkins2 pipeline介绍
 +
jenkins2 javahelloworld
 +
jenkins2 groovy入门
 +
jenkins2 pipeline入门
 +
jenkins2 pipeline高级
 +
jenkins2 Jenkinsfile
 +
jenkins2 multibranch
 +
jenkins2 Jenkinsfile和load
 +
jenkins2 groovy脚本参考
 +
jenkins2 pipeline实例
 +
jenkins2 pipeline插件的10个最佳实践
 +
jenkins2 pipeline 语法快速参考
  
==Model中的关联关系字段 (Relationship fields) ==
+
https://www.cnblogs.com/itech/category/245402.html?page=3
  
[http://www.cnblogs.com/linxiyue/p/3667418.html Model中的ForeignKey,ManyToManyField与OneToOneField]
 
  
[http://blog.csdn.net/real_ray/article/details/18042693 Django中ForeignKey参数的使用]
+
[https://www.cnblogs.com/itech/p/5646219.html  jenkins2 pipeline高级 ]
  
 +
=pipeline for example=
  
  
=修改用户和密码=
+
其实就是有点像share library
<pre>
+
流水线 -->定义
http://cmdb.com/accounts/userList/
+
<gallery>
最高权限 控制  添加你想要的权限  
+
Jul012021Z1.png
 +
</gallery>
  
改密码 
+
然后有个叫jenkinsfile
左上角 logo
 
  
 +
[https://blog.51cto.com/u_13760351/2527263  Jenkins--pipline 流水线部署Java后端项目]
  
添加用户 和密码 
+
[https://blog.51cto.com/u_13760351/2526052 本地java代码上传Gitlab仓库]
连接 mysql 复制一下别人的 密码 并设置为超级用户  并激活 然后再回去logo 改回自己想要的密码
 
  
 +
[https://blog.51cto.com/u_13760351/2382103  Jenkins自动部署发布Java代码(完整教程]
 +
==java sprint boot ==
 +
Jenkins Pipeline 部署 SpringBoot 应用
  
</pre>
+
===java===
 +
<pre>修改/etc/profile文件,添加JAVA_HOME
  
=安全事项=
+
vi /etc/profile
一定要修改最原始的那个系统管理员帐号
+
在文件的最后面,加上以下代码
 +
export JAVA_HOME=/java/jdk1.8.0_171
 +
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 +
export PATH=$JAVA_HOME/bin:$PATH
  
为什么不开通只能用qq扫码登录呢 
+
#me on  kali xps
 +
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
 +
export M2_HOME=/usr/local/maven3
 +
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
 +
</pre>
  
=参考=
+
===maven ===
==内部参考==
+
<pre>wget -c https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz
[[django文档]]
+
tar zxf apache-maven-3.8.1-bin.tar.gz
 +
mv apache-maven-3.1.1 /usr/local/maven3
  
[[ Django模版语言]]
+
vi /etc/profile然后还需要 配置环境变量。 #在适当的位置添加
  
==外部参考==
+
export M2_HOME=/usr/local/maven3
[http://www.liujiangblog.com/course/django/2 从django1.11 到cmdb]
+
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
  
[http://xiaorui.cc/2014/11/05/%E5%BC%80%E5%8F%91%E8%BF%90%E7%BB%B4%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9Fcmdb%E4%B8%80%E4%BA%9B%E8%A7%82%E7%82%B9%E6%89%AF%E6%B7%A1/ 开发运维资产管理系统cmdb一些观点扯淡 ]
+
保存退出后运行下面的命令使配置生效,或者重启服务器生效。
 +
source /etc/profile
  
[https://gitee.com/hequan2020/autoops autoops django1.11]
+
验证版本
 +
mvn -v
  
[http://www.cnblogs.com/alex3714/articles/5420433.html Python之路,Day19 - CMDB、CMDB、CMDB ]
+
出现maven版本即成功
  
[http://www.cnblogs.com/xiaozhiqi/p/5851360.html Python自动化运维之27、Django(一)]
+
阿里云源
  
[http://www.cnblogs.com/xiaozhiqi/p/5727727.html Python自动化运维之1、Python入门]
+
<mirrors>
 +
    <mirror>
 +
      <id>alimaven</id>
 +
      <name>aliyun maven</name>
 +
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 +
      <mirrorOf>central</mirrorOf>       
 +
    </mirror>
 +
</mirrors>
 +
</pre>
  
[https://imaojia.com/blog/django/soms-platform-based-on-django-saltstack/ 基于django的saltstack自动化运维平台SOMS]
+
===安装Jenkins部署SpringBoot应用===
 +
jenkins 安装过程省略
  
[http://jwh5566.blog.51cto.com/7394620/1762103 Django 开发的自动化运维平台]
+
登陆之后进入Manage Jenkins -> Global Tool Configuration 中进行配置Maven,Git,JDK
 +
可能不同环境有小许要修改
  
[http://www.tiejiang.org/18649.html 都说Djnago框架重,那就让哥用15行代码写个Django Web程序!]
+
<gallery>Jul012021j1.png</gallery>
  
[http://www.cnblogs.com/xiaozhiqi/p/5829076.html Python自动化运维之20、HTML]
+
=是Blue Ocean=
 +
https://www.jenkins.io/zh/doc/book/blueocean/
  
[http://www.cnblogs.com/xiaozhiqi/p/5830033.html Python自动化运维之21、CSS]
+
Blue Ocean 重新思考Jenkins的用户体验,从头开始设计Jenkins Pipeline, 但仍然与自由式作业兼容,Blue Ocean减少了混乱而且进一步明确了团队中每个成员 Blue Ocean 的主要特性包括:
  
[http://www.cnblogs.com/xiaozhiqi/p/5836665.html Python自动化运维之22、JavaScript]
+
    持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。
 +
    Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。
 +
    个性化 以适应团队中每个成员不同角色的需求。
 +
    在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力
 +
    本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。
  
[http://www.cnblogs.com/xiaozhiqi/p/5841037.html Python自动化运维之23、Dom]
+
简言之:简化复杂可视化,提供更个性直观的界面,可以精准定位构建失败的位置
  
[http://www.cnblogs.com/xiaozhiqi/p/5841500.html Python自动化运维之24、JQuery]
+
[https://www.cnblogs.com/hellxz/p/pipeline_maven_build.html Jenkins教程(四)安装BlueOcean与Maven构建 ]
  
[http://www.cnblogs.com/xiaozhiqi/p/5843998.html Python自动化运维之25、Ajax]
+
=see also=
 
+
[https://www.cnblogs.com/mingerlcm/p/12790884.html Jenkins Pipeline介绍]
=常见的cmdb=
 
[https://zhuanlan.zhihu.com/p/28669544 100+Stars的CMDB开源项目]
 
 
 
[https://github.com/hgz6536/opman-django  opman-django  Python3.6,Django1.11.3,MySQL5.7 自动化运维平台:CMDB]
 
 
 
[https://github.com/allegro/ralph Ralph-NG]
 
 
 
[https://github.com/guohongze/adminset adminset]
 
 
 
==国内常见的cmdb==
 
 
 
[http://www.liujiangblog.com/course/django/116  good djnago1.11  py3的CMDB之资产管理系统 ]
 
  
[https://github.com/1032231418/CMDB 应该是现在用的这个]
+
[https://www.cnblogs.com/mingerlcm/p/12727253.html jenkins从头到尾 目录]
  
[https://gitee.com/wuwenhao/saltops SaltOps]
+
[https://www.cnblogs.com/mingerlcm/p/12799362.html Jenkins Pipeline示例]
  
[https://gitee.com/hequan2020/autoops AutoOps是一款基于django]
+
[https://www.cnblogs.com/mingerlcm/p/12799493.html 使用 pipeline 实现 monitor 仓库代码的发布 ]
 
 
[http://www.liujiangblog.com/course/django/116 于Python3.6、Django1.11.7]
 
 
 
https://github.com/feixuelove1009/liujiangblog_project_2
 
 
 
[https://gitee.com/XJGZ/Alerts Alerts 运维告警平台,目前有告警实时web推送、微信报警、告警收敛等功能]
 
 
 
[https://gitee.com/joshho/lightOps lightOps]
 
 
 
[https://gitee.com/trydofor/godbart go写的基于SQL的RDBMS运维CLI]
 
 
 
[https://segmentfault.com/a/1190000018477767 调研的六个开源DevOps平台]
 
 
 
=see also=
 
  
[https://www.lagou.com/lgeduarticle/53992.html Mac安装MySQL-python的血泪史]
+
[https://www.cnblogs.com/itech/p/12747748.html Jenkins pipeline jenkinsfile的两种写作方式声明式和脚本式 ]
  
[https://blog.csdn.net/u013228145/article/details/100707503 python2.7 安装MYSQL-python 报错:ERROR: Command errored out with exit status 1:]
+
[https://objcoding.com/2019/02/16/docker-jenkins-pipeline/ 基于Jenkins Pipeline自动化部署知道个过程而已]
  
=其它linux  php 视频教程=
 
[http://www.icoolxue.com/album/show/305 Redhat Linux服务器集群视频教程]
 
  
[http://www.icoolxue.com/album/show/274 后盾网千元级Linux视频教程第一期]
+
[https://www.jianshu.com/p/bcd42b4f9885 Jenkins + Pipeline 自动化部署项目]
  
[http://www.icoolxue.com/album/show/298 2014燕十八PHP高性能架构班视频教程之Redis]
+
[https://www.jianshu.com/p/daf32c908ff9 Jenkins + Pipeline 构建流水线发布]
  
[[category:ops]] [[category:django]]
+
[https://www.cnblogs.com/itech/p/12747740.html  Jenkins pipeline之声明式的jenkinsfile ]
 +
[[category:ops]] [[category:devops]]

2021年7月1日 (四) 08:28的版本

Jenkins Pipeline 简介

Jenkins pipeline 是 Jenkins 2.0 的精髓,,是帮助 Jenkins 实现 CI 到 CD 转变的重要角色。

简单来说,就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。

Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本,并且 Jenkins 支持从代码库直接读取脚本,从而实现了 Pipeline as Code 的理念。

jenkins2 pipeline入门

官方文档 流水线可以通过以下任一方式来创建:

   通过 Blue Ocean - 在 Blue Ocean 中设置一个流水线项目后,Blue Ocean UI 会帮你编写流水线的 Jenkinsfile 文件并提交到源代码管理系统。
   通过经典 UI - 你可以通过经典 UI 在 Jenkins 中直接输入基本的流水线。
   在源码管理系统中定义 - 你可以手动编写一个 Jenkinsfile 文件,然后提交到项目的源代码管理仓库中。[3]

使用两种方式定义流水线的语法是相同的。尽管 Jenkins 支持在经典 UI 中直接进入流水线,但通常认为最好的实践是在 Jenkinsfile 文件中定义流水线,Jenkins 之后会直接从源代码管理系统加载。

Jenkins Pipeline 支持两种语法



My-pipeline-job01 ->流水线语法    我好像没怎么用 

Jenkins Pipeline 支持两种语法,一种 Declarative Pipeline(声明式),一种 ScriptedPipeline(脚本式)。

安装pipeline相关插件  全部要显示为Success  pending是不行的


声明式的 Pipeline 限制用户使用严格的预选定义的结构,是一种声明
式的编程模型,对比脚本式的 Pipeline 学习起来更加简单;

脚本式的 Pipeline 限制比较少,结构和语法的限制由 Groovy 本身决定,是一种命令式的编程模型。
所以我们学习使用声明式的方式编写 jenkinsfile。
一般来说 jenkinsfile 会被放在代码库的根目录下。

当然也可以在 Web 页面定义。

下面是两种不同方式的 jenkinsfile 示例

Jenkinsfile (声明式)


pipeline { 
    agent any
    stages { 
        stage('Build') { 
            steps { 
                echo 'Building..' 
                } 
            } 
            stage('Test') { 
                steps { 
                    echo 'Testing..' 
                } 
            } 
            stage('Deploy') { 
                steps { 
                    echo 'Deploying....' 
                } 
            } 
        }
    }

前面我们说过,声明式的Pipeline有严格的预定义格式结构,有固定的格式,外层必须是pipeline{},
紧接着是 agent  就是节点node ,agent也是固定的,pipeline紧跟着进来 一定是agent 参考上面的格式  后面的any是任何节点还是其中一个节点,指定某一个节点是自己指定,通过标签自己来指定节点

指示 Jenkins 分配一个执行器和工作空间来执行下面的 Pipeline,

 stages和steps是申明式Jenkinsfile必须的,stages是一个个阶段,所有的stage必须要定义在stages里,

stages(‘’) 括号里面是名称,这个阶段是什么名称,stages这个名称不能重复,同一个stage名称只能有一个

每一个stage下的 step 要定义在一个 steps 里,stages里面包含了step,具体的执行步骤都写在step里面 ,一行一个,可以写多行

Jenkinsfile(脚本式)


node { 
    stage('Build') { 
        // 
    } 
    stage('Test') { 
        // 
    } 
    stage('Deploy') { 
        // 
    } 
}

在脚本式 jenkinsfile 里,你可以定义一个 node 或者多个 node 块,然后在 node 块里
定义你的 stage,在 stage 里定义你的 step 即可

进阶advance

.jenkins.io/zh/doc/book 流水线入门

jenkins.io 流水线入门

Jenkins 声明式流水线的语法错误检查

Pipeline 语法生成器

流水线语法


Jenkins2 下载与启动 jenkins2 插件安装 jenkins2 hellopipeline jenkins2 pipeline介绍 jenkins2 javahelloworld jenkins2 groovy入门 jenkins2 pipeline入门 jenkins2 pipeline高级 jenkins2 Jenkinsfile jenkins2 multibranch jenkins2 Jenkinsfile和load jenkins2 groovy脚本参考 jenkins2 pipeline实例 jenkins2 pipeline插件的10个最佳实践 jenkins2 pipeline 语法快速参考

https://www.cnblogs.com/itech/category/245402.html?page=3


jenkins2 pipeline高级

pipeline for example

其实就是有点像share library 流水线 -->定义

然后有个叫jenkinsfile

Jenkins--pipline 流水线部署Java后端项目

本地java代码上传Gitlab仓库

Jenkins自动部署发布Java代码(完整教程

java sprint boot

Jenkins Pipeline 部署 SpringBoot 应用

java

修改/etc/profile文件,添加JAVA_HOME

vi /etc/profile
在文件的最后面,加上以下代码
export JAVA_HOME=/java/jdk1.8.0_171
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

#me on  kali xps 
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export M2_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

maven

wget -c https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.tar.gz 
tar zxf apache-maven-3.8.1-bin.tar.gz 
mv apache-maven-3.1.1 /usr/local/maven3 

vi /etc/profile然后还需要 配置环境变量。 #在适当的位置添加

export M2_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

保存退出后运行下面的命令使配置生效,或者重启服务器生效。
source /etc/profile

验证版本
mvn -v

出现maven版本即成功

阿里云源

<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
</mirrors>

安装Jenkins部署SpringBoot应用

jenkins 安装过程省略

登陆之后进入Manage Jenkins -> Global Tool Configuration 中进行配置Maven,Git,JDK 可能不同环境有小许要修改

是Blue Ocean

https://www.jenkins.io/zh/doc/book/blueocean/

Blue Ocean 重新思考Jenkins的用户体验,从头开始设计Jenkins Pipeline, 但仍然与自由式作业兼容,Blue Ocean减少了混乱而且进一步明确了团队中每个成员 Blue Ocean 的主要特性包括:

   持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。
   Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。
   个性化 以适应团队中每个成员不同角色的需求。
   在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力
   本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。

简言之:简化复杂可视化,提供更个性直观的界面,可以精准定位构建失败的位置

Jenkins教程(四)安装BlueOcean与Maven构建

see also

Jenkins Pipeline介绍

jenkins从头到尾 目录

Jenkins Pipeline示例

使用 pipeline 实现 monitor 仓库代码的发布

Jenkins pipeline jenkinsfile的两种写作方式声明式和脚本式

基于Jenkins Pipeline自动化部署知道个过程而已


Jenkins + Pipeline 自动化部署项目

Jenkins + Pipeline 构建流水线发布

Jenkins pipeline之声明式的jenkinsfile