pipline中使用ansible
实验架构:
192.168.0.96    gitlab
192.168.0.97    jenkins、ansible
192.168.0.98    harbor、docker集群
说明:下面代码编译镜像那一步的代码必须靠左,目的是不要有空格,否则报错,deploy那一步也必须是那种格式,否则报错
安装完jenkins后首先生成pipeline可以用的git链接地址
pipeline {
    agent any
    stages {
        stage('git checkout'){
            steps {
                echo 'git clone'
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'c32a3a24-2c9d-4c8d-b456-9d6d0badf3a2', url: 'http://192.168.0.96:8081/zihao/test.git']]])
            }
        }
        stage('maven build'){
            steps {
                echo 'maven build'
                    sh '''
                export JAVA_HOME=/usr/local/jdk1.8.0_171/
                     /usr/local/apache-maven-3.5.4/bin/mvn clean package -Dmaven.test.skip=true
                '''
            }
        }
        stage('docker build and push images'){
            steps {
echo 'docker build and push images'
sh '''
REPOSITORY=192.168.0.98:5000/library/solo/solo:${Tag}
cat >Dockerfile<<EOF
FROM 192.168.0.98:5000/library/tomcat-85:latest
RUN rm -rf /usr/local/tomcat/webapps/ROOT/
COPY target/*.war /usr/local/tomcat/webapps/ROOT.war
WORKDIR /usr/local/tomcat
EXPOSE 8080
CMD ["./bin/catalina.sh", "run"]
EOF
docker build -t $REPOSITORY .
docker login -u admin -p Harbor12345 192.168.0.98:5000
docker push $REPOSITORY
'''
            }
            }
        stage('deploy'){
            steps {
echo 'deploy'
sh '''
REPOSITORY=192.168.0.98:5000/library/solo/solo:${Tag}
ansible webservers -m shell -a "docker container run -d --name blog-solo-2 -v /opt:/opt -p 89:8080 $REPOSITORY"
'''
            }
            }
    }
}
说明:远程执行命令前提需要安装ssh agent插件,
现在ssh agent的认证,已不支持明文用户密码,而只能用加密方式实现。
所以先在jenknis和docker集群之间实现ssh免密码rsa证书登陆。
私钥放jenkins,公钥放在docker集群,然后,将私钥拿出来,写入到jenkins凭据
参照:https://blog.csdn.net/weixin_34067980/article/details/86444168
脚本参照:
https://blog.csdn.net/jackyzhousales/article/details/81713004
https://blog.csdn.net/a1010256340/article/details/83989059
生成pipeline可以用的git链接地址参照:
https://www.cnblogs.com/FRESHMANS/p/8184874.html
 
pipline中使用ansible的更多相关文章
- ansible笔记(1)在centos中安装ansible
		ansible笔记():ansible的基本概念 一些基础概念 ansible是什么? 它是一个"配置管理工具",它是一个"自动化运维工具",如果你没有使用过任 ... 
- jenkins在pipline中运行后台命令
		需求 在jenkin中启动java程序或者python程序的时候,希望程序在后台执行,并在jenkins构建完成之后继续执行.在工作中有两个地方我碰到了这种需求 在shell script输入框中pi ... 
- win10的pycharm中安装ansible模块过程
		前面的安装报错信息 ansible模块安装报错:Could not install packages due to an OSError: [Errno 2] No such file or dire ... 
- pipline中执行shell脚本推送镜像并且部署
		实验架构: 192.168.0.96 gitlab 192.168.0.97 jenkins 192.168.0.98 harbor.docker集群 说明:下面代码编译镜像那一步的代码必须靠左,目的 ... 
- 部署etcd中使用ansible进行变量初始化
		ansible-playbook 要进行默认变量的生产,可以依靠jinja 的模板渲染功能 看几个官方给出的例子 调用setup 中的变量 例如 setup 中的变量层级为 ansible_eth0_ ... 
- pipline中替换tag变量
		实验架构: 192.168.0.96 gitlab 192.168.0.97 jenkins 192.168.0.98 harbor.docker集群 说明:下面代码编译镜像那一步的代码必须靠左,目的 ... 
- 在 CentOS 7 中安装并使用自动化工具 Ansible
		Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具.它用Python写成,类似于Chef和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端.它使用SSH来和节点进 ... 
- ansible中的playbook详解
		首先简单说明一下playbook,playbook是什么呢?根本上说playbook和shell脚本没有任何的区别,playbook就像shell一样,也是把一堆的命令组合起来,然后加入对应条件判断等 ... 
- 【Scrapy(二)】Scrapy 中的 Pipline,Item,Shell组件
		Pipline: 1.爬虫项目与爬虫的区别与关联: 一个爬虫项目可以包含多个爬虫,如下图中爬虫项目firstspider 包含多个爬虫itcst 和爬虫itcast1 2.多个爬虫是公用一套Pipli ... 
随机推荐
- 国赛 strange_int
			参考文章地址https://www.52pojie.cn/thread-936377-1-1.html https://qrzbing.cn/2019/04/27/CISCN2019-strange- ... 
- 微信小程序 图片加载失败处理方法
			微信小程序 官方文档对image 媒体组件加载失败 没有太多的解释,使用中出现了几个小问题,今天抽空记录一下 WXML: <image class="userinfo-avatar&q ... 
- Problem 4 dp
			$des$ 小 $Y$ 十分喜爱光学相关的问题, 一天他正在研究折射.他在平面上放置了 $n$ 个折射装置, 希望利用这些装置画出美丽的折线.折线将从某个装置出发, 并且在经过一处装置时可以转向, 若 ... 
- 41、Hive数据源复杂综合案例
			一.Hive数据源案例 1.概述 Spark SQL支持对Hive中存储的数据进行读写.操作Hive中的数据时,必须创建HiveContext,而不是SQLContext.HiveContext继承自 ... 
- 16、job触发流程原理剖析与源码分析
			一.以Wordcount为例来分析 1.Wordcount val lines = sc.textFile() val words = lines.flatMap(line => line.sp ... 
- Assignment5: 使用Visual Studio 进行可编码的UI测试
			一.实验目的: 使用Visual Studio 可编码的UI测试功能创作自动化测试 二.实验原理:黑盒测试 三.实验需求:win8 app.Visual Studio Ultimate 2012/20 ... 
- HTML中各标签对应的英文意思
			HTML中各标签对应的英文意思 一.总结 一句话总结: 结合标签的英语全称,可以更加方便的知道标签的意思 二.HTML中标签对应的英文(方便理解记忆)(转自) 转自:HTML中标签对应的英文(方便理解 ... 
- 北漂IT男返乡2年的三线楼市观察(宜昌夷陵篇)-原创
			一直想写点什么,这段时间总算有空,好嘞,正好有兴致来写一写楼市相关的文章以饕读者和粉丝朋友. 宜昌?说宜昌您可能不知道,但是说三峡大坝您就知道了 最近这两年,因为小宝的降临,我多半时间待在老家宜昌陪伴 ... 
- ueditor百度编辑器上传图片出现后端未配置好,不能正常加载插件
- 分库分表 or NewSQL数据库?终于看懂应该怎么选!【转】
			最近与同行科技交流,经常被问到分库分表与分布式数据库如何选择,网上也有很多关于中间件+传统关系数据库(分库分表)与NewSQL分布式数据库的文章,但有些观点与判断是我觉得是偏激的,脱离环境去评价方案好 ... 
