Jenkins 基于 Java,因此我们需要在服务器上安装 Java OpenJDK 7。在这里,我们会从一个 PPA 仓库安装 Java 7,首先我们需要添加这个仓库。
默认情况下,Ubuntu 1604 没有安装用于管理 PPA 仓库的 python-software-properties 软件包,因此我们首先需要安装这个软件。使用 apt 命令安装 python-software-properties。
apt-get install python-software-properties
下一步,添加 Java PPA 仓库到服务器中。
add-apt-repository ppa:openjdk-r/ppa
用 apt 命令更新 Ubuntu 仓库并安装 Java OpenJDK。
apt-get update
apt-get install openjdk-7-jdk
输入下面的命令验证安装:
java -version
你会看到安装到服务器上的 Java 版本。
第二步 - 安装 Jenkins
Jenkins 给软件安装包提供了一个 Ubuntu 仓库,我们会从这个仓库中安装 Jenkins。
用下面的命令添加 Jenkins 密钥和仓库到系统中。
wget -q -O - > 在jenkins部署脚本自动发布的时候,在系统设置中,会用到jenkins插件ssh-plugin所带的“ssh sites”模块,但是如果目标服务器的openssh是70版本的话,jenkins会不识别openssh70的算法,导致jenkins一直会报“can not connect!”的错误。(如下图)
我也是煞费苦心,研究了好多天才,查了无数的文档,才得以解决。
首先,连接不上的原因,是因为openssh70更新了新的算法,老版本不识别新版本的算法。
其次,也有部分原因是jenkins插件的升级,相关插件及版本,如下图。
最后,保证以上插件版本都没问题的情况下,修改目标服务器上面的/etc/ssh/sshd_config文件:
1将 PasswordAuthentication 参数的值修改为yes,如果是注释掉的,把注释去掉。
2在文件最下方添加:
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc
MACs hmac-md5,hmac-sha1,umac-64@opensshcom,hmac-ripemd160,hmac-sha1-96,hmac-md5-96
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libsshorg
Ps:Ciphers 指定SSH-2允许使用的加密算法。
MACs 指定允许在SSH-2中使用哪些消息摘要算法来进行数据校验。
Kexalgorithms 指定可用的密钥(密钥交换)算法。
以上就是所有的步骤了。现在,再去jenkins里看下是不是好了。呵呵哒。
为此,楼主可是高兴了半天。如果想把MAC系统上的jenkins移动到LINUX系统中,具体的 *** 作方法有以下这几点,可以参考一下:
1、 jenkins的安装
jenkins安装有多种方式,一种是你直接下载,安装运行,这种方式依赖于它内置的Jetty web服务器。另一种是使用Tomcat或者Glassfish 应用服务器来运行。jenkins运行需要的系统环境推荐最低是:Java 8 (either JRE or JDK),256MB 空闲内存,1GB以上的磁盘空间。
1) 直接去官网下载
下载完成以后是一个后缀为pkg的文件,打开该文件就可以安装了。当然你也可以使用命令行的方式来安装。
例如Mac下:
安装最新的release版本:
brew install jenkins
或者安装LTS 版本
brew install jenkins-lts
2、 使用Tomcat作为运行服务器进行安装
在Tomcat上安装Jenkins,你可以将jenkinswar文件拷贝到$TOMCAT_HOME/webapps 目录下。
jenkins的配置。jenkins在安装时,需要勾选一些要安装的插件。当然这些插件也可以在安装完jinkins以后根据需要再安装。
1> General
General配置图
在这里在“参数化构建过程”项中,添加一些参数,来进行参数化构建。
例如:图中的Choice类型的BranchName,用于代码分支的选择,可以决定打那个分支上的代码。
2> 源代码管理
源代码管理]![这里写描述
由于使用的是Git工具来管理源代码,所以在这里安装的Git的插件。如果你没有看到下面的这一项,请检查你是否安装了Git的管理的插件。
这里配置上了代码仓库的地址。还有指定的分支的名字。分支名这里使用了上面配置的参数,用户在打包的时候可以选择分支。
注意:下面的数字10和33的值的设定在第一次拉取代码的时候是比较有用的,如果你的代码仓库比较大,提交次数比较多,那么设定该值,能够提高代码拉取的成功率。
3> 构建触发器
你可以根据情况构建触发器,例如什么时候触发打包,在这里我们使用手动build,所以没有配置。你可以根据情况来配置。
4> 构建环境
对于打包苹果的应用而言, 这里要指定你的证书文件。
5> 构建
这里的Target对应项目的Target。
在这里还可以指定打包后的输出文件的名字和目录。名字一般指定项目名和版本的组合。这样测试容易看出是哪个版本的包。
在这里需要指定访问keychain的路径和密码。
你也可以指定构建的shell命令,来帮你做一些事。例如生成一个用于下载plist配置文件。
6> 构建后的 *** 作
当构建完成以后,你可以指定存档的文件,这里一般过滤ipa和dSYM文件。
这些配置完成以后,就完成了一个job项,之后就可以进行build编译了。如果没有问题,那么就可以进行打包了。如果有问题,你可以在该job下的Console Output中查看所报的错误,然后做相应的更改修正。
你也可以在jenkins的“用户”设置下做一些用户权限的控制。例如分配给他们的打包权限是:job还是view权限等。
所以,以上就是把MAC系统上的JENKINS移动到LINUX系统的具体 *** 作方法,希望可以帮到你1 切换成root用户
2 生成公钥 这里注意会生成两份密钥 pub为公 另一个为私
3 查看公钥
4 把公钥放入git
5 检验权限
6 打开复制私钥
7 进入Jenkins 添加凭据,类型 SSH Username with private key
在下方密钥区域 粘贴 私钥
8 在工程下面的密钥区域选择刚生成的
执行中如果出现权限不足 或者路径不对
1 路径不对 可以查看本地路径是否存在脚本 如果路径配制成环境变量 前面需要加$ 如$SHELLPATH 直接输入路径则不需要加任何符号 如 /media/shell/sh
2 出现权限错误 你需要让jenkins使用root用户 *** 作如下 以下用ubuntu举例
文件中
JENKINS_USER=$NAME
JENKINS_GROUP=$NAME
改称
JENKINS_USER=root
JENKINS_GROUP=root
修改目录权限
cd /var/lib/chown -R root:root /jenkins
重启jenkins 不同版本重启方式不同 自行百度
systemctl restart jenkins
编译服务器mount到jenkins本机 利用了NFS
更新系统软件包
安装NFSServer
清除目录所有权限限制
先打开 exports 里面定义了NFS服务器访问权限
设置访问权限
/mnt/nfs_share 是共享目录路径
rw 设置可以读写
sync 需要先将更改写入磁盘 然后才能应用更改
no_root_squash / no_subtree_check 消除子树检查
1) 全子网可访问
2) 单独网络可访问
中间ip换成本机ip 如19216801
打开 然后查看状态
在Ubuntu和Debian上安装NFS客户端:
在CentOS和Fedora上安装NFS客户端:
ip改成本机IP即可
或者直接修改配置文件
1) 在NFS服务器的共享文件夹中创建个文件
2) 在NFS客户端中查看文件是否存在
ip换成本机ip
查看路径是否正确即可
把缺少的依赖库先编译一遍本文主要记录Jenkins+Rancher+k8s自动化部署相关配置说明,不涉及rancher和jenkins安装部署,包含java server项目、WAR项目、前端VUE项目部署配置介绍。
服务器环境信息:
需要在安装jenkins服务上部署下面相应的软件,请注意软件版本,如已经安装相关软件,可跳过此章节。
需要安装rancher-cli,并且使用jenkins用户预先登录rancher平台:命令参考:
--token:这个用户的token建议设置为永不过期,在rancher管理端 -> api&key > 添加。
建议安装阿里镜像,提高编译速度:
jenkins启动用户需要添加到docker组中:
项目主要是java和vue开发的,所以需要安装Maven Integration plugin插件。
spring boot或者spring cloud自带容器,以及其它服务类型的java后端应用部署。
1、填写项目名称,选择"构建一个maven项目"
点击下面"OK"按钮
2、填写项目描述信息
3、输入项目地址,并选择用户凭证
本文通过condingnet作为代码管理平台,点击"Add"添加自己账号凭证(输入codingnet平台登陆账号密码即可)。
4、配置maven编译脚本
5、编写rancher部署脚本
Dockerfile参数说明:FROM:选择基础镜像包,该项目是用java语言开发需要jdk18所以选择openjdk:8ADD:将bRule-deploy-100targz文件解压并上传到镜像的brule目录EXPOSE:容器内部启动2002端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签ENTRYPOINT:容器启动时执行的命令,执行多条命令使用&&拼接,命令行中带&需要加上转移符\&,使用tail -fn监听应用日志,以便容器日志查看。
用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的 *** 作系统镜像。
参数说明:19216810021:5000:为本地docker镜像服务器地址brule:latest:应用名称,根据自身项目名称修改
利用上面创建好的 *** 作系统镜像启动一个vmware虚拟机,创建k8s容器。
参数说明: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:85-jre8-slimADD:将operationwar文件解压并上传到镜像的/usr/local/tomcat/webapps/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签
这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。
用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的 *** 作系统镜像。
参数说明:19216810021:5000:为本地docker镜像服务器地址operation:latest:应用名称,根据自身项目名称修改
利用上面创建好的 *** 作系统镜像启动一个vmware虚拟机,创建k8s容器。
参数说明:operation:应用名称,根据自身项目名称修改image:刚才创建的docker镜像containerPort:容器启动端口,多个端口使用多行containerPort标签声明,端口限制在30000-32000
前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。
参数说明:operation:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问
将上面配置好的shell脚本复制到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。
基于webpack构建的VUE项目部署,前面 *** 作都一致,只是shell部署脚本稍有不同,这里主要详细说明rancher部署脚本。
Dockerfile参数说明:FROM:选择基础镜像包,前端统一使用tomcat容器部署,tomcat:85-jre8-slimCOPY:将/dist目录上传到镜像的/usr/local/tomcat/webapps/fastquery/目录EXPOSE:容器内部启动8080端口,根据自身项目填写指定端口,多个端口填写多行EXPOSE标签
这里不需要配置ENTRYPOINT标签,因为tomcat镜像包中已经有了。
用于创建docker镜像,就好比创建一个已经安装并且配置好了应用程序的 *** 作系统镜像。
参数说明:19216810021:5000:为本地docker镜像服务器地址operation:latest:应用名称,根据自身项目名称修改
利用上面创建好的 *** 作系统镜像启动一个vmware虚拟机,创建k8s容器。
前面vmware虚拟机创建好后,怎么能让别人访问?这个时候就需要创建一个网络服务,用于打通路由器与vmware本地虚拟机的网络。
参数说明:shutcm-fastquery-web:应用名称,根据自身项目名称修改port:容器启动端口nodePort:对外提供服务端口,外部机器访问
将上面配置好的shell脚本复制到Post Steps -> 执行shell文本域中,并点击"保存" -> "立即构建"即可部署。1 、 系统 参数
(1)构建服务器访问路径:
(2)JDK版本(根据各产品的具体要求选择):
1) jdk170_60
(3)Maven版本(根据各产品的具体要求选择):
1) apache-maven-323
2) apache-maven-322
3) apache-maven-321
4) apache-maven-cif
(4)Jenkins信息:
1) Jenkins version 1609 可升级
2) $Jenkins_home: home/ciserver/jenkins
3)Jenkins工作目录:/app/Jenkins/
2 、 授权 策略
(1)Configure Global Security中的授权策略,采用Role_Based_Strategy方式;
(2)根据人员的角色和职责建立Global roles;
(3)根据不同的产品系统及其开发阶段,建立project_roles;
(4)为jenkins账户建立global role和project role的授权矩阵,即用户访问权限矩阵;
(5)用户界面是基于他拥有的权限和任务所属的阶段和所归属的视图(View)进行显示;
Jenkins构件任务命名规范参考32章节,jenkins账户管理参考第4章节。
3、构建管理
3 1 构建 命名 规范
用户登录后,界面所能执行的 *** 作的基于以下2点,缺一不可:
(1)用户所拥有的权限;
(2)根据命名规则过滤后的任务视图和任务;
请务必按照下面的命名规范进行任务的创建和修改。
3 11 任务视图 命名
任务视图命名格式:
产品/系统名称(缩写)_阶段,阶段缩如(DEV、ST、UAT、PRD),如下图红线标注所示:
图3-1 任务视图命名示例
3 1 2 任务 命名
任务的命名格式:
系统任务:阶段缩写_产品/系统(缩写);
子系统和模块任务:阶段缩写_产品/系统缩写_子系统/模块缩写
3 2 参数化构建
321 构建 参数列表
321 常 用 的参数 配置
3 3 分布式构建
考虑到构建效率和后续构建任务的扩张;通过配置jenkins Master-slave架构进行分布式构建;
DEV阶段的构建在slave进行。
3 31 slave节点 配置
3 32 slave节点任务 配置
(1)DEV阶段的构建,在20610jenkins服务器上建立slave节点,将各产品部的构建任务分配到对应的节点去运行(包括工作空间,本地仓库,编译运行环境);
在DEV阶段的任务配置中,勾选“Retrict where this project can be run”, Label Expression填写各slave标签名。
4 、 jenkins账户 管理
(1)jenkins账户统一由组织级管理员建立和维护,jenkins账户命名格式为:姓名全拼;用户可登陆后修改;
(2)jenkins账户按照用户类别分为,admin,系统管理员,构建人员,guest;
1) Admin负责整个jenkins服务器的管理;
2)系统管理员的具有其负责的产品库的4个阶段所有任务的创建,配置权限;
3)构建人员为产品开发人员,根据需要开放四个阶段的构建任务的执行和配置权限;
4)guest账户仅供有查看需求的员工使用;
5)普通用户账户权限申请和权限变更,由系统管理员或分支管理员向组织级CM申请。
5、J enkins基本 *** 作
51 登录jenkins
申请账户后,在浏览器中输入 >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)