1. 首页 > 经验 >

jenkins使用 jenkins使用djgon

jenkins上使用shell脚本nohup部署jar服务到remote

linux下搭建zookeeper集群遇到的坑

先贴一下,我的jenkins里核心配置

jenkins使用 jenkins使用djgonjenkins使用 jenkins使用djgon


remove_jar.sh脚本:

start_jar.sh脚本内容:

remove_jar.sh 和 start_jar.sh 在jenkins上,需要将这两个shell在0.0.0.0(不能暴露)的远端去执行

没错,客官您一眼就看出来了,觉得简单的不值一提吧,先别着急,对搜这个问题的小菜鸡来说这里面也是大有文章,听我一一道来。

1、个问题:ps -ef|grep xxx.jar查到多余的pid

现象:在0.0.0.0上行 ps -ef | grep alk-wxapi-test.jar | grep -v grep | awk '{print $2}' 只能查到一个pid,但是把这句话放到shell脚本里,在本地使用命令上远端执行,就会找到3个pid,而且kill 时提示失败的错误。

现在已经知道原因了,但是当时确实是个问题。

已经解决不方便复现了,因此就描述一下就行了。

原因:shell里的这个命令也是通过bash在远程执行的,所以找到的别的 无关紧要 的pid其实是bash,因此在grep是除了排除grep本身( grep -v grep )外替换系统默认更新源。把系统更新源替换为 163 的,后面的软件安装速度会比较快一些。还要排除bash( grep -v bash )

命令是:

2、远程执行脚本,里面有nohup ja -jar,发生错误: nohup: failed to run command ‘ja’: No such file or directory

这是因为nohup时ja环境变量没有读到,处理方式就是在nohup执行前加入

3、其他思路

4、第二条说jdk的路径因为每个服务企业都不一样,所以需要手动传改,这一点已经在脚本上做了修改,启动脚本上携带的个参数就是jdk的安装路径

这两个也都是比较好的思路,以后肯定有机会体验的,本篇到此。

ps -ef |grep -v 在shell sh 脚本中貌似无效?

nohup: cannot run command异常解决

Zookeeper not starting, nohup error

iOS-Jenkins-TestFlight自动打包流程

Sahi

一、准备一台mac电脑

二、安装jenkins

打开终端运行:

brew install Jenkins

如果没有安rew,请前往 brew 根据提示安装。

至少需要安装ja1.8 ,如果没有安装会有提示, ja

ja安装完毕,链接 launchd 配置文件

jenkins

打开Safari输入:

就能看到jenkins已经运行起来了,如果你更换了端口就是你后来设置的端口。

接下来打开Jenkins后会让去一个填写password的页面如下图,存储password的地方就是上那行红色字体目录下,使用终端 cat + 红色字体路径就看到了

然后将我们得到的password输入到“Administrator password“中,即可进入如下界面,接着安装一些建议的插件(左边的),请等待,并全部安装成功在进行下一步。

安装完成之后,输入账户密码,登陆。开始jenkins

二、cocoapod环境安装

项目中一般会使用cocoapod管理第三方库。这个时候如果使用jenkins自动打包,就需要安装好cocoapod环境

三、jenkins使用

1、安装插件

Keychains and Provisioning Profiles Mament

Xcode integration

在系统管理-> 插件管理中搜索插件

配置Keychains and Provisioning Profil在容器中创建目录 /var/svn/re(mkdir -pes Mament

请先配置好p12和Provisioning Profiles文件

需要上传login.keychain文件,该文件获取方法,在终端中输入

cd ~/Library/Keychains

将login.keychain文件upload之后,会出现下图的界面,根据需要将证书添加进去即可,但是由于macOS10.12以及以后的系统里面没有login.keychain文件,只有login.keychain-db,可以出来删除-db,upload就好了。(上传keychain,路径用自己改名后的那个)

然后添加Provisioning Profiles,上传方法和上传login.keychain一样,去选择Provisioning Profiles文件,然后upload,然后结果如下图,蓝色框内的是固定格式的/Users/用户名/Library/MobileDev/Provisioning Profiles

配置好之后保存即可

3.开始配置任务

创建一个任务,自由风格的任务

General

创建一个自由风格的任务,然后在选择丢弃旧的构建,至于天数和保持的个数,按照自己的需求来就好

源码管理

接下来是源码管理,在Reitory URL里面添加你的git地址,我这里添加的是的,如果你的项目是使用的ssh的,那么就将git开头的地址填写上,然后点击Add添加你的git帐号,如果你的事ssh的,将ssh的密匙填写上,具体的自己百度一下就好咯,我就不多写了,结果如图

构建触发器

接下来是构建触发器,也就是什么时候触发自动打包我这里填写的是H 20 这个意思就是H小时然后,后面跟着数字,在后面就是日月年, 代表的我认为是每次都触发,也就是每天每月每年,但是Jenkins的时间不是的,一般都是在随机在半点,也就是设置20点,大概会在20:30分左右会触发,如果需要两个时间,那么格式可以这样H 20,22 结果如图

构建环境

在构建环境里面勾选Keychains and Code Signing Identities和Mobile Provisioning Profiles,Keychains and Code Signing Identities是打包需要的证书,Mobile Provisioning Profiles是打包需要的配置文件,都是可以自己选择的,我的如图

构建环境次Code Signing Identity和PP文件可能有些不一样。应用,保存一下就可以了。

添加脚本

执行cocoapod脚本必须要在个

执行打包并且上传到TestFlight脚本

请参考 exportOptionsPlist

把exportOptionsPlist添加到Plist同一层并push到git

问题的解决。

证书不能使用自动管理,需要手动。

jenkins:Send files or execute commands over SSH使用方式【原创】

回Jenkins 介绍页首

以下总结的是,jenkins安装的(A)和应用(B)不在同一个物理机上,然后A的jenkins的workspace有3个分支dev、test、prod的工程,需要单独将prod分支工程传给B的作方式。

玩转Jenkins - 使用Jenkins给Git自动打Tag

依赖插件

GIT Publish配置er

在 构建后作 中选择 Git Publisher

具体的内容安装上图填写,其中 tag to push中的镜像构建好之后,接下来准备 Jenkins 容器。Docker Hub 上已有的 Jenkins 镜像,直接用命令“docker pull$build可以根据实际情况替换成其他变量,比如时间戳

create new tag 一定要勾选,一定要勾选,一定要勾选 重要的事情说三遍

以上完成后,在下次执行任务的时候就能自动在Git上打Tag了

Jenkins 内存优化问题

的时候,会弹出一个如下图所示的对话框。用户勾选了“Do no show this message again”并点击 Continue

解决主机启动jenkins后导致内存占用较大

修改配置文件

增加一行配置

重启jenkins:

:默认8080

这样启动方式,在关闭控制台或者ssh断开链接后 jenkins也就自动关闭了

在Linux下,可以使用以下方式启动:

启动后 会生成一个nohup.out输出,需要的话,可以实时查看jenkins日志

限制jenkins 启动占用内存:

解决:在jenkins -sle配置中,总是出现内存溢出问题。

使用nohup运行->结束后台运行:

方式一:

方关于exportOptionsPlist式二:

如何利用jenkins让远程的运行robot framework

jenkins通常使用端口8080。但是,如果你有其他的Web服务启动时,你可能会发现,已经采取了此端口启动。您可以通过使用指定一个不同的端口--Port = $ HTTP_PORT,其中$ HTTP_PORT是你想要jenkins上运行的端口。其他命令行参数包括:

远程安装jenkins和和jenkins的RF插件。

安装Python,RF及相关测试Lib库。

jenkins配置代码库。

构建选择Execute shell,使用pybot或pybot.bat命令执行用例。

网上的相关资源

hudson.model.Hudson.ConfigureUpdateCenter:anonymous应该很多啊。随便贴2个URL

jenkins集群使用k8s部署,pipeline中文乱码的问题解决记录

我们使用的是Jenkinsfile,存放在git中,而不是分散在各个项目中,好处是便于管理和维护。

见下图:

在jenkinsfile文件中写添加 init.sh 文件入中文,还有在获取构建人姓名的时候,出现中文乱码问题。

先读取当前构建人的姓名(一般为中文汉字),然后调用后端Http接口启动jenkins发送消息通知响应的人群。

这里的变量buildUser如果包含中文,会出现乱码问题。。。

这里容易有个误区,以为在Jenkins全局配置里设置了字符集为utf-8就能解决该问题。

其实上述的设置是针对节点,而非sle节点。而我们的pipeline是运行于sle节点上。我们得在节点设置中,对pod template增加环境变量才是正确的方式。

解决乱码需要做好两步:

如何使用docker+jenkins实现自动化集成

Docker 介绍

Docker

号称是下一代的虚拟机,它在启动和创建速度、性能、移植性等方面均优于传统虚拟机。Docker 是 PaaS 提供商 dotCloud

开源的一个基于 LXC 的高级容器引擎。它能够让开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux

机器上,也可以实现虚拟化。目前,通过 Boot2Docker 已能使 Docker 运行在 Windows 和 OS X 中。Docker

容器完全使用沙箱机制,相互之间没有任何接口。Docker 几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,

他们不依赖于任何语言、框架或系统。

Docker 在其网站上明确地提到的 Docker 的典型应用场景如下:

对应$ ja -jar jenkins.war用进行自动打包和部署

创建轻量、私有的 PAAS 环境

自动化测试和持续整合与部署

部署和扩展 Web 应用、数据库和后端服务

在自动化测试领域,Docker 大有取代传统虚拟机技术的趋势,原因如下:

自动化测试依赖的是测试所需要的应用,而并非整个作系统。因此,传统的虚拟机技术存在资源浪费。

Docker 构建于 LXC 之上。借助 LXC 轻量级的特性,相比于目前的虚拟机技术,Docker 启动更快、资源占用更小。

Docker 比虚拟机轻量、灵活,便于管理。

Docker 标准化的构建方法 (Dockerfile) 和良好的 REST API,使得自动测试和持续集成/部署能够很好的集成进来。

Sahi 是一个开源的 Web UI 自动化测试框架。尽管它的知名度不及 Selenium,用户群也不及 Selenium 庞大,但它确有它独特的魅力,例如:

基于上下文的页面元素识别机制。

良好的浏览器支持。

的跨浏览器录制回放调试工具 Sahi Controller。

这些特性都大大地加快了自动化测试脚本的开发速度,并降低了维护成本。

通过一个用 Ja 编写的,将用户的脚本转换为 JaScript 后注入往返的 HTTP

请求及响应中,从而驱动浏览器。编程语言方面,除 Sahi 脚本(其本质是一个 JaScript 库)以外,还支持 Ja 和

Ruby。Sahi 有开源和收费两个版本。虽然收费版本提供了很多开源版本不具备的高级特性,不过开源版本已经能够满足大部分的功能要求。点此查看开源版本与收费版本的异。点此查看Sahi 与其他 Web 自动化测试框架的对比。

Jenkins

是一种开源的基于 Ja 开发的持续集成工具,前身称作 Hudson。Jenkins

提供了用于持续重复工作的软件平台。它支持丰富的插件,用户可以按照需求进行选择安装和配置,以实现生成执行状态表格,自动部署、更新自动化测试包等

高级功能。本文将要介绍 Jenkins 的 Docker 插件,它能够动态地创建 Docker 容器作为 Jenkins Sle

节点,并在执行任务后,自动关闭容器。另外,它还支持一些额外功能,比如当构建任务成功完成后自动将容器保存为镜像、自动将镜像上传到资源库等。

实例演示

该实例演示如何制作一个运行 Sahi 的镜像以及如何在 Jenkins 上配置 Docker 插件以运行 Sahi 测试脚本。

准备 Docker 镜像

本实例需要准备三个镜像:一个运行 Jenkins,一个运行 Subversion,另外一个运行 Sahi。

首先,制作运行 Sahi 的镜像。Docker Hub 是一个用于分享 Docker 镜像的资源库。目前,该资源库还没有运行 Sahi 的镜像,所以必须自己创建 Dockerfile 来构建镜像。下图是用来制作 Sahi 镜像的目录。

图 1. 制作 Sahi 镜像的目录

下图是 Dockerfile 的文件内容。

图 2. Dockerfile文件内容

整个过程大体分为八个步骤:

指定基础镜像

我们使用的是 evarga/jenkins-sle。该镜像基于 Ubuntu,安装了 SSH 服务,并创建了用户 Jenkins。

Sahi):Firefox, Unzip 以及 Xvfb。删除 Open JDK 是为了后面安装 Oracle Ja 做准备。Firefox

不用多说,因为该镜像用于 Web UI 自动化测试,所以安装了版本的 Firefox。安装 Unzip 是因为后面安装 Sahi

需要用到它。Xvfb(X virtual framebuffer)是一个 X11

种运行方式为 headless。

安装 Oracle Ja 8。理论上 Sahi 应当也支持 Open JDK,所以安装 Oracle Ja 不是必须的。

安装 Sahi。上传了 zip 文件后,用 Unzip 解压,Sahi 是基于 Ja 的,所以解压后即已安装好 Sahi。之后,替换了几个文件,它们的作用如下:

Userdata.properties

userdata.properties 中有个属性叫

proxy_alert.disabled,默认值为 false。用户次启动 Sahi Dashboard

按钮之后,Sahi 修改该属性值为 true。之后就不会在跳出这个对话框了。由于用 headless 的方式运行 Sahi

无法点击该对话框,所以必须事先用一个已将该属性设置为 true 的文件替换 Sahi 默认的 userdata.properties。

图 3. Sahi 问题对话框

sahi_example_com

这是一个证书文件。用户次在 Sahi Dashboard

中打开 Firefox 时的页面如下图所示。用户需要点击 SSL Mar 链接手动接受 SSL 证书。此时,文件

sahi_example_com 被生成到 userdata/certs 目录下。之后,就不需要再进行该作利用上面创建好的作系统镜像启动一个vmware虚拟机,创建k8s容器。了。所以,的

sahi_example_com 目的也是为了自动完成这步需要在图形界面下才能完成的作。

图 4. Sahi 启动页

图 5. SSLMar 的非信任连接页面

browser_types.xml

替换该文件是为了使 Sahi 以 headless

的方式工作。在该文件中,事先添加了一个名字为 firefox-xvfb 的浏览器配置信息。之后,测试脚本就可以指向该浏览器运行。具体配置 Sahi 和 Xvfb 的步骤参考。

init.sh 文件用于启动 Xvfb 和 Sahi。其内容如下。

图 6. init.sh 文件内容

“sleep 5”是因为 Sahi 启动需要一点时间,若立即运行测试脚本会导致失败。

最终运行的容器是作为 Jenkins Sle 节点用

Jenkins 用户运行,因此将整个/usr/local 目录及子目录的所有人修改为 Jenkins,并给 Shell

文件添加执行权限。Jenkins 用户是在基础镜像 evarga/jenkins-sle 中创建的,所以在这个 Dockerfile

里没有创建 Jenkins 用户的语句。

指定默认执行的命令

CMD ["/usr/in/sshd","-D"] – 该语句令镜像默认启动 SSH 服务。事实上,这条语句也可以不添加,因为 evarga/jenkins-sle 的 Dockerfile 中已包含该语句。

一切就绪之后,在该目录中执行“docker build -t shenrui/sahi –rm=true”。命令成功执行后,通过“docker

images”应当可以查看到名为“shenrui/sahi”的镜像。该镜像已经上传到 Docker Hub,有需要的读者可以自行拉取。

jenkins”拉取。在 Docker 主机上,创建一个目录(例如,/data/jenkins_home),并修改权限(chmod

777)以便 Jenkins 容器能读写该目录,然后用命令“docker run -d -t --name myjenkins -p

8080:8080 -v /data/jenkins_home:/var/jenkins_home jenkins”启动。此时,打开

://:8080 应当可以看到 Jenkins 的管理页面。

同样地,直接拉取 Docker Hub 的 Subversion

的镜像(docker pull boiko/subversion)。不过,还需要做进一步的配置。步骤如下:

用命令“docker run -i -t boiko/subversion /bin/bash”以交互的方式启动 Subversion 容器。

/var/svn/re),并基于该目录创建 Subversion 资源库(svnadmin create

/var/svn/re)。

在资源库目录下的 svnserve.conf

文件中删除“password-db = passwd”前面的注释符 #,并在 passwd 文件中添加一行“shenrui =

password”。

用命令“docker commit mysvn”把上面所做的修改保存下来创建一个新镜像 mysvn。

,用命令“docker run -t -d -p

3690:3690 --name mysvn mysvn svnserve -d --foreground -r

/var/svn/re”启动 mysvn 容器。启动时,添加容器到主机的端口映射“-p 3690:3690”以便之后直接通过主机 IP

提交测试脚本。

至此,Docker 上有两个正在运行的容器(docker ps),名字分别是 myjenkins 和 mysvn。

怎样使用 jenkins 设置一个appscan持续交付框架

简安装必要的软件(不包括 Or修改权限acle Ja 和介

在持续交付流程中设置框架很重要。框架决定了 DevOps 的效率以及在持续交付流程中可以完成哪些工作。

本文提供了有关 Jenkins 的信息并演示了如何:

使用 Jenkins 设置持续交付框架。

将此方面的知识应用到持续交付框架中。

使用 Jenkins 实现持续交付框架。

目标受众

本文的预期受众是从事持续交付或持续自动测试工作的软件工程师。要想按照本文中的步骤进行作,您应该理解:

脚本开发。

软件开发流程。

Jenkins+Rancher自动化部署

显示的实现。它不是将图形在屏幕上显示出来,而是在内存中运行所有的图形作。对客户端来说,除了无法看到真正的图形显示,没有其他分别。一般称这

本文主要记录Jenkins+Rancher+k8s自动化部署相关配置说明,不涉及rancher和jenkins安装部署,包含ja server项目、WAR项目、前端VUE项目部署配置介绍。

环境信息:

需要在安装jenkins服务上部署下面相应的软件,请注意软件版本,如已经安装相关软件,可跳过此章节。

需要安装rancher-cli,并且使用jenkins用户预先登录rancher平台:命令参考:

--token:这个用户的token建议设置为过期,在rancher管理端 -> api&key > 添加。

建议安装阿里镜像,提高编译速度:

jenkins启动用户需要添加到docker组中:

项目主要是ja和vue开发的,所以需要安装Men Integration plugin插件。

spring boot或者spring cloud自带容器,以及其它服务类型的ja后端应用部署。

1、填写项目名称,选择"构建一个men项目"

点击下面"OK"按钮

2、填写项目描述信息

3、输入项目地址,并选择用户凭证

本文通过conding作为代码管理平台,点击"Add"添加自己账号凭证(输入coding平台登陆账号密码即可)。

4、配置men编译脚本

5、编写rancher部署脚本

Dockerfile参数说明:FROM:选择基础镜像包,该项目是用ja语言开发需要jdk1.8所以选择openjdk:8ADD:将bRule-deploy-1.0.0.tar.gz文件解压并上传到镜像的brule目录EXPOSE:容器内部启动2002端口,根据自身项目填写指定端口隐式页面加载响应等待机制。,多个端口填写多行EXPOSE标签ENTRYPOINT:容器启动时执行的命令,执行多条命令使用&&拼接,命令行中带&需要加上转移符\&,使用tail -fn应用日志,以便容器日志查看。

用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的作系统镜像。

参数说明:192.168.100.21:5000:为本地docker镜像地址brule:latest:应用名称,根据自身项目名称修改

参数说明:brule:应用名称,根据自身项目名称修改,应用名称规范?(.?)image:刚才创建的docker镜像containerPort:容器启动端口,多个端口使用多行containerPort标签声明,端口限制在【30000-32000】

前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。

参数说明:brule:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问

将上面配置好的shell脚本到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。

1、进入刚才创建好的jenkins任务,点击立即构建

2、点击左下角构建任务,选择"Console Output",查看构建日志

3、登录rancher管理平台,查看构建好的应用

基于J2EE项目的war包部署,前面作都一致,只是shell部署脚本稍有不同,这里主要详细说明rancher部署脚本。

Dockerfile参数说明:FROM:选择基础镜像包,war统一使用tomcat容器部署,tomcat:8.5-jre8-slimADD:将operation.war文件解压并上传到镜像的/usr/local/tomcat/webapps/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签

这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。

用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的作系统镜像。

参数说明:192.168.100.21:5000:为本地docker镜像地址operation:latest:应用名称,根据自身项目名称修改

参数说明:operation:应用名称,根据自身项目名称修改image:刚才创建的docker镜像containerPort:容器启动端口,多个端口使用多行containerPort标签声明,端口限制在【30000-32000】

前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。

参数说明:operation:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问

将上面配置好的shell脚本到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。

基于webpack构建的VUE项目部署,前面作都一致,只是shell部署脚本稍有不同,这里主要详细说明rancher部署脚本。

Dockerfile参数说明:FROM:选择基础镜像包,前端统一使用tomcat容器部署,tomcat:8.5-jre8-slimCOPY:将/dist目录上传到镜像的/usr/local/tomcat/webapps/fastquery/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签

这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。

用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的作系统镜像。

参数说明:192.168.100.21:5000:为本地docker镜像地址operation:latest:应用名称,根据自身项目名称修改

前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。

参数说明:shutcm-fastquery-web:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问

将上面配置好的shell脚本到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 12345678@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息