如何在 Ubuntu16.04 中用 Apache 部署 Jenkins 自动化服务器

如何在 Ubuntu16.04 中用 Apache 部署 Jenkins 自动化服务器,第1张

第一步 - 安装 Java OpenJDK 7
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
申请账户后,在浏览器中输入 >

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13490956.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-17
下一篇 2023-08-17

发表评论

登录后才能评论

评论列表(0条)

保存