代码持续集成jenkins之fabric模块更多功能
一、关于fabric fabric是一个Python的库,同时它也是一个命令行工具。使用fabric提供的命令行工具,可以很方便地执行应用部署和系统管理等操作。fabric依赖于paramiko进行ssh交互,fabric的设计思路是通过几个API接口来完成所有的部署,因此fabric对系统管理操作进行了简单的封装,比如执行命令,上传文件,并行操作和异常处理等。二、fabric执行任务步骤 fabric执行任务的步骤如下:1.创建任务列表,这些任务就是fab命令行参数指定的任务,fab会保持这些任务的顺序2....[>>…]
git代码提交自动触发jenkins构建的实现
要实现git代码提交自动触发jenkins构建,首先下载必须的插件,进入系统设置->插件管理,搜索以下两个插件:GitHub插件:以支持jenkins从gitlab系统中提取项目代码。GitLabHookPlugin:接收gitlab代码有变更后向jenkins发送一个post请求以触发构建。第一步:登录gitLab生成PersonalAccessTokens在gitlab的usersettings->AccessTokens中createpersonalaccesstoken。即生成一个替代你的gitlab登录账号的token。第二步:配置jenkins中的凭据,以让jenkins能连接gitlab.在jenkins->凭据->系统->全局凭据中增加...[>>…]
Jenkins的触发远程构建的应用
Jenkins的构建触发器有多种,有触发远程构建、其他工程构建后触发、定时构建、GitHubhooktriggerforGITScmpolling、轮询SCM。其中定时构建可以像Linux上的定时任务那样指定运行时间频率,其他工程构建后触发可以将两个job进行绑定,比如测试环境JOB构建完成自动进行线上环境构建。GitHubhooktriggerforGITScmpolling和轮询SCM是两个相对应的方式,GitHubhooktriggerforGITScmpolling是只要github上有提交就触发jenkins构建,轮询SCM则是jenkins轮询github发现有变化则进行构建。 &...[>>…]
Jenkins发布脚本及逻辑的优化-隐藏发布脚本保护服务器的账号数据
之前使用做项目自动部署,我的发布脚本是放在代码里面的,但因为代码里包含了服务器的登录账号以及所有操作过程,一下子就全部暴露出来了,觉得很不好,于是在想进行怎样的优化,后来想想完全可以在jenkins服务器上做这些事情,而和代码可以完全解耦开来。 我的Jenkins是使用docker部署在服务器容器中,经过自己的思考测试,我最后将发布脚本存放在jenkins容器里某个路径下,然后写一些简单的shell脚本命令放在容器的/usr/bin/命令中,在jenkins执行发布构建的shell...[>>…]
docker已启动容器如何修改端口等启动配置
docker在创建容器的时候可以自定义指定端口,也可以通过多个-p选项添加多个端口映射,但如果已经创建容器(特别是已经在容器中执行一些命令安装了一些业务中需要的环境),这时想保留容器已有配置和环境的前提下又想修改端口映射就需要使用其它的办法了。 由于已经对原有镜像进行了修改,如果此时删除容器再修改端口启动镜像容器就需要重新安装已经执行的环境安装工作,挺麻烦,特别是你根本没有记录都执行了一些什么命令来完善环境,此时又需要重新来一遍。此时还有几...[>>…]
docker中启动jenkins容器的时区问题用邮件发送
1.docker容器中的时间区问题 在docker中启动了jenkins容器,页面正常之后发现任务发布时间全都是国际时区时间,之前在这篇文章里有提到过:http://www.04007.cn/article/707.html可以通过-v挂载本地时区进入容器中。docker-v/etc/timezone:/etc/timezone-v/etc/localtime:/etc/localtime 也可以有更简单的方法,可以直接修改容器中的/etc/timezone配置,包括直接dockercp外部/etc/timezone文件替代容器中对应文件,或者直接在容器中修改时区配置。标准时间值是Etc/UTC...[>>…]
docker下安装jenkins出现Found invalid crumb问题
使用docker安装的jenkins,然后将jenkins.war包更新到了最新版(2.265)解决了docker中版本过老的提示问题,但在使用最新版的时候,开始还都挺好的,但突然执行任务保存时发现保存不了,从个人判断是JS执行问题,甚至浏览器中还有报JS跨域错误:TheCross-Origin-Opener-Policyheaderhasbeenignored,becausetheoriginwasuntrustworthy.Itwasdefinedeitherinthefinalresponseoraredirect.PleasedelivertheresponseusingtheHTTPSprotocol.Youcanalsousethe'localhost'origininstead.查看容器中的...[>>…]
使用docker安装jenkins代码持续发布:Jenkins from v2.60.3 to v2.164.3 or later
之前搭建过多次jenkins平台,不过还没有使用docker搭建过,但相信这一定是一个更方便办法。因为我爱docker。在docker中搜索jenkins,可以看到已经有官方的镜像包了。热度非常高。使用dockerpull拉取镜像安装过程记录如下: root@med-1:/#dockersearchjenkins NAMEDESCRIPTION jenkinsOfficialJenkinsDockerimage4959 jenkins/jenkinsTheleadingopensourceautomationserver2275 ... root@med-1:/#dockerpulljenkins Usingdefaulttag:latest Status:Downloadednewerimageforjenkins:latest dock...[>>…]
在docker容器中执行apt install安装报错(13: Permission denied)
在UBUNTU服务器中启动了一些docker容器,但容器中缺少很多命令,比如vim就没有,于是执行aptinstallvim,但报错E:Couldnotopenlockfile/var/lib/dpkg/lock-frontend-open(13:Permissiondenied) etherpad@52ab2c3f5da8:/opt/etherpad-lite$apt-getupdate Readingpackagelists...Done E:Listdirectory/var/lib/apt/lists/partialismissing.-Acquire(13:Permissiondenied). 很明显是用户权限问题,于是加入有万金油之称的privileged选项,使用--privileged=true参数配...[>>…]
Docker命令-docker exec的参数详解
dockerexec实现在运行的docker容器中执行命令,命令执行后会进入容器的默认工作目录,如果在Dockerfile中指定了工作目录,则会进入此目录,如果命令中指定了工作目录-w选项值,则会进入-w目录。方法:$dockerexec[options]containercommand[arg...] user@u04007:/$dockerexec--help Usage:dockerexec[OPTIONS]CONTAINERCOMMAND[ARG...] Runacommandinarunningcontainer Options: -d,--detachDetachedmode:runcommandinthebackground --detach-keysstringOverridethekeysequencefordetachinga...[>>…]