1.安装jenkins
1.1.Java环境
因为Jenkins是使用Java语言编写的.所以这里需要使用到Java环境.
查看当前系统Java版本的指令: java -version
如果显示Java的版本号.说明已经有了Java环境.如果没有显示则需要安装Java,
指令如下:
sudo yum install java
2.Jenkins安装
2.1.使用命令安装:
如果想要安装最新版本的Jenkins,可以使用以下方式去安装.(友情提示:最新版本Jenkins要求JDK版本至少: JDK1.8)
1.添加Jenkins源(截止目前Jenkins最新版本为2.177):
sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
2.使用yum命令安装Jenkins:
yum install jenkins
2.2.使用命令安装:
如果想要安装历史版本的Jenkins.则需要去Jenkins网站下载自己想要的版本.下载地址如下: Jenkins下载地址
服务器环境:**CentOS环境(download选项选择: Red Hat/Fedora/CentOS).
Jenkins历史版本:jenkins-2.164.1-1.1
对应的Jenkins文件:jenkins-2.164.1-1.1.noarch.rpm
1.添加Jenkins源:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
2. 使用rpm命令安装Jenkins:
sudo rpm -ih jenkins-2.164.1-1.1.noarch.rpm
2.Jenkins相关配置
2.1 Jenkins安装目录
/var/lib/jenkins/
2.2 Jenkins配置文件
Jenkins配置文件地址: /etc/sysconfig/jenkins
这里面有3个我们比较关心的配置:
1.JENKINS_HOME: Jenkins的主目录.在Jenkins下配置的任务都会放在该目录下.
2.JENKINS_USER: Jenkins的用户.
3.JENKINS_PORT: Jenkins的端口.默认配置为8080.可根据自己的实际情况更改为想要的端口.我这里设置的是38080
3.Jenkins关闭与重启
3.1 第一次访问Jenkins
由于我Jenkins配置文件中将JENKINS_PORT设置为38080.所以这里访问Jenkins的地址以 http://localhost:38080为例.
第一次访问Jenkins时有一个临时密码需要输入.这个临时密码的存放地址会写在你登录时的浏览器页面上.根据提示找到相关文件中的临时密码.即可完成第一次登录.然后就配置admin账号了.
3.2 使用命令启动与关闭Jenkins
1.启动Jenkins命令: sudo service jenkins start
结果显示: RestartingStarting jenkins (via systemctl): [ OK ]
2.关闭Jenkins命令: sudo service jenkins stop
结果显示: Stopping jenkins (via systemctl): [ OK ]
重启Jenkins命令: sudo service jenkins restart
结果显示: Restarting jenkins (via systemctl): [ OK ]
3.3 浏览器上启动/关闭/重启/重载Jenkins
以Jenkins界面地址为 http://localhost:38080/为例:
1.启动Jenkins服务: http://localhost:38080/start
2.关闭jinkins服务: http://localhost:38080/exit
3.重启jenkins服务: http://localhost:38080/restart
4.挂载Jenkins服务(重新加载配置信息): http://localhost:38080/reload
4.Jenkins设置为中文
4.1 安装Locale plugin插件
依次点击: Manage Jenkins(系统管理) ---> Manage Plugins(插件管理) ---> Available(可用插件) ---> 搜索Locale plugin ---> 重启Jenkins
4.2 系统设置中设置语言为 zh_CN
依次点击: Manage Jenkins(系统管理) ---> Configure System(系统设置) ---> 找到Locale 并在 Default Language栏中填写zh_CN ---> 勾选下方 Ignore browser preference and force this language to all users ---> 应用并保存
5.安装插件
5.1 如何安装插件
依次点击: Manage Jenkins(系统管理) ---> Manage Plugins(插件管理) ---> Available(可用插件) ---> 搜索想要安装的插件 ---> 重启Jenkins
5.2 插件推荐
1.支持使用Github、GitLab、Gerrit等系统管理代码仓库: Git
2.通过SSH连接其他Linux机器,远程传输文件及执行Shell命令 : Publish Over SSH
3.基于矩阵的授权策略,支持全局和项目级别的配置: Matrix Authorization Strategy Plugin
4.Maven/nodejs等必要插件
6.Jenkins的证书管理
6.1 证书的含义
证书可以理解为Jenkins存放在一个位置的钥匙.以coding(码市)为例.我要去coding上拉取代码.这个证书就是提取代码的钥匙.
6.2 如何配置证书
依次点击: Credentials(凭据) ---> Stores scoped to Jenkins下的Jenkins ---> Global credentials (unrestricted)(全局凭据) ---> dd Credentials(添加凭据) ---> 根据需要去选择想要的类型和范围
7.Jenkins使用过程中踩过的坑
7.1 Jenkins没有权限删除/var/lib/下的目录文件
1.问题描述: 在任务构建过程中.想要在Execute shell 中删除/var/lib/jenkins/xxx/下的某个文件.使用rm -f xxx 给出报错.没有权限
2.解决方法: 修改jenkins的执行用户.
3.具体细节:
3.1 修改Jenkins的执行用户:
执行命令: vi /etc/sysconfig/jenkins
3.2 修改Jenkins配置文件中的JENKINS_USER,并改为权限更大用户.这里改为root:
修改 JENKINS_USER="jenkins" ===> JENKINS_USER="root".
3.3 修改目录相应权限:
sudo chown -R root /var/log/jenkins
sudo chgrp -R root /var/log/jenkins
sudo chown -R root /var/lib/jenkins
sudo chgrp -R root /var/lib/jenkins
sudo chown -R root /var/cache/jenkins
sudo chgrp -R root /var/cache/jenkins
7.2 Jenkins执行shell脚本,提示“未找到命令”
1.问题描述: 在Jenkins中执行shell脚本,提示“未找到命令,但是执行如 ls 等原生命令没有任何问题.而且在linux服务器中执行却是正常的.
2.可能的原因: 在Linux主机是通过修改 /etc/profile文件来配置环境变量,则问题可能是Jenkins在执行shell脚本时没有加载 /etc/profile 文件,因此找不到 ng命令,会提示“命令未找到”.而且Jenkins默认情况下执行shell脚本是使用非登录方式,然而登录方式不会加载 /etc/profile 文件, 在 Execute shell 中 添加如 #!/bin/sh -l 命令修改为登录方式即可解决问题.
3.解决方法: 在Execute shell中添加 #!/bin/sh -l 即可.
7.3 后续更新,敬请期待!!!
8.Jenkins可用环境变量的使用方法
8.1 变量的使用方法
1、shell $变量名
2、cmd %变量名%
3、项目填写框 ${变量名}
8.2 Jenkins可用的环境变量
BRANCH_NAME: 对于多分支项目,这将被设置为正在构建的分支的名称,例如,如果您希望从master部署到生产环境而不是从feature分支部署;如果对应某种更改请求,则该名称通常是任意的(请参阅下面的CHANGE_ID和CHANGE_TARGET);
CHANGE_ID:对于与某种更改请求相对应的多分支项目,这将被设置为更改ID,例如拉取请求编号(如果支持);其他未设置;
CHANGE_URL: 对于与某种更改请求相对应的多分支项目,这将被设置为更改URL(如果支持);其他未设置;
CHANGE_TITLE: 对于与某种更改请求相对应的多分支项目,这将被设置为更改的标题(如果支持);其他未设置;
CHANGE_AUTHOR: 对于与某种更改请求相对应的多分支项目,这将被设置为建议更改的作者的用户名(如果支持);其他未设置;
CHANGE_AUTHOR_DISPLAY_NAME: 对于与某种更改请求相对应的多分支项目,这将被设置为建议更改的作者的人名(如果支持);其他未设置;
CHANGE_AUTHOR_EMAIL: 对于与某种更改请求相对应的多分支项目,这将被设置为建议更改的作者的Email地址(如果支持);其他未设置;
CHANGE_TARGET: 对于与某种更改请求相对应的多分支项目,这将被设置为合并到的目标或者基础分支(如果支持);其他未设置;
BUILD_NUMBER: 当前构建的编号,例如“4674”等
BUILD_ID: 当前构建的版本ID,与构建的BUILD_NUMBER相同
BUILD_DISPLAY_NAME: 当前版本的显示名称,默认为“# 4674”,即BUILD_NUMBER。
JOB_NAME: 即此版本的项目名称,例如“foo”或“foo / bar”。
JOB_BASE_NAME: 此构建的项目的短名称剥离文件夹路径,例如“bar / foo”的“foo”。
BUILD_TAG: “jenkins - $ {JOB_NAME} - $ {BUILD_NUMBER}”的字符串。 JOB_NAME中的所有正斜杠(/)都用破折号( - )替换。方便地放入资源文件,jar文件等,以便于识别。
EXECUTOR_NUMBER: 唯一编号,用于标识执行此构建的当前执行程序(在同一台计算机的执行程序中)。这是您在“构建执行程序状态”中看到的数字,但数字从0开始,而不是从1开始。
NODE_NAME: 如果构建在代理上,则代理的名称;如果在主版本上运行,则为“MASTER”;
NODE_LABELS: 节点分配的空白分隔的标签列表。
WORKSPACE: 作为工作空间分配给构建的目录的绝对路径。
JENKINS_HOME: Jenkins用于存储数据的主节点上分配的目录的绝对路径。
JENKINS_URL: Jenkins的完整URL,如http:// server:port / jenkins /(注意:仅在系统配置中设置Jenkins URL时可用)
BUILD_URL: 此版本的完整URL,例如http:// server:port / jenkins / job / foo / 15 /(必须设置Jenkins URL)
JOB_URL: 该作业的完整URL,例如http:// server:port / jenkins / job / foo /(必须设置Jenkins URL)
GIT_COMMIT: 正在被检出的提交的哈希值.
GIT_PREVIOUS_COMMIT: 最后在此分支上构建的提交的哈希值(如果有.
GIT_PREVIOUS_SUCCESSFUL_COMMIT: 最后在此分支上成功构建的提交的哈希值(如果有).
GIT_BRANCH: 远程分支名称,如果有的话。
GIT_LOCAL_BRANCH: 本地分支名称,如果有的话。
GIT_URL: 远程git仓库的URL。如果有多个,将会是GIT_URL_1,GIT_URL_2等。
GIT_COMMITTER_NAME: 配置的Git提交者名称(如果有的话)。
GIT_AUTHOR_NAME: 配置的Git作者姓名(如果有的话)。
GIT_COMMITTER_EMAIL: 配置的Git提交者电子邮件(如果有的话)。
GIT_AUTHOR_EMAIL: 已配置的Git作者电子邮件(如果有)。
SVN_REVISION: 当前工作区的Subversion版本号,例如“12345”
SVN_URL: 当前工作区的Subversion版本号,例如“12345”