1. jdk环境
下载安装包
https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
安装
sudo rpm -ivh jdk-11.0.7_linux-x64_bin.rpm
配置Java可选路径
因为Jenkins默认的java可选路径不包含我们部署的jdk路径,所以这里要配置一下,不然Jenkins服务会启动失败
#修改jenkins启动脚本
sudo vi /etc/init.d/jenkins
#修改candidates增加java可选路径:/usr/java/jdk1.8.0_181/bin/java
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.8.0_181/bin/java
"
2. 安装jenkins
a. 命令安装
- yum源导入
#添加Yum源
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
#导入密钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
- 安装
sudo yum install -y jenkins
b. 下载包安装
下载安装包
https://pkg.jenkins.io/redhat-stable/
安装
sudo rpm -ivh jenkins-2.235.1-1.1.noarch.rpm
3. 开放端口
Jenkins站点的默认监听端口是8080
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
4、启动Jenkins并设置Jenkins开机启动
#重载服务(由于前面修改了Jenkins启动脚本)
sudo systemctl daemon-reload
#启动Jenkins服务
sudo systemctl start jenkins
#将Jenkins服务设置为开机启动
#由于Jenkins不是Native Service,所以需要用chkconfig命令而不是systemctl命令
sudo /sbin/chkconfig jenkins on
5. 登陆web管理端初始化jenkins
默认地址: ip:端口:8080
错误解决
如果遇到
AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"
错误, 是由于openjdk
的问题, 用官方的jdk
可解决, 或者安装对应的插件# CentOS 7 yum install fontconfig # Ubuntu9以上 apt-get install ttf-dejavu # CentOS 6 yum install dejavu-sans-fonts
重启jenkins
服务sudo systemctl restart jenkins
初始化密码查看
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
进去之后就是按需安装插件然后下一步下一步即可
缺失依赖插件
可以到这里按照需要下载对应的插件并手动安装
缺什么就下什么, 然后传到jenkins
--> http://jenkins:8080/pluginManager/advanced
--> 上传插件
安装完需要重启, 可以勾选在该页面
http://jenkins:8080/updateCenter/
勾选安装完成后重启Jenkins(空闲时)
6. 配置jenkins
进入如下的目录配置jenkins的基础环境
Manage Jenkins
-->GlobalTool Configuration
a. jdk
jenkins
需要构建项目, 就需要有jdk
的环境这个
jdk
版本主要看你构建项目所用的jdk
版本
最好自己下载jdk
包然后安装, 使用命令(如yum
)什么的装完不知道跑哪里去了, 特别是有本机多个版本的jdk
的情况
可能会用到的几个命令
// 当前java命令用的jdk版本
java -version
// 找到java命令位置
which java
// java 命令软连接
ls -lrt /usr/bin/java
// 例如: 我在我服务器上就是通过这样来找到最终的java11的安装目录的
[developer@dev-tool-server ~]$ java --version
java 11.0.7 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)
[developer@dev-tool-server ~]$ which java
/usr/bin/java
[developer@dev-tool-server ~]$ ls -lrt /usr/bin/java
lrwxrwxrwx. 1 root root 22 7月 1 18:55 /usr/bin/java -> /etc/alternatives/java
[developer@dev-tool-server ~]$ ls -lrt /etc/alternatives/java
lrwxrwxrwx. 1 root root 29 7月 1 18:55 /etc/alternatives/java -> /usr/java/jdk-11.0.7/bin/java
配置如图所示
b. maven
如果项目使用
Ant
或者Gradle
构建就配置对应的
配置如图所示
c. git
通过git
获取代码仓库的源代码
配置如图所示
d. 好用的插件
- Publish Over SSH 通过ssh将应用发布到远程服务器(
jenkins
和应用服务器
不是一台机器) - Maven Integration plugin
maven
项目构建插件
7. 配置一个自动构建项目
a. 新建Item
b. 选择项目类型
c. 配置git仓库
需要添加
Credentials
账号认证
d. 构建脚本
e. 配置远程发布
需要先配置好远程服务器的信息
添加服务器
填写服务器信息
注意: 我这里
hostname
在路由层配置了解析, 这里填目标IP
- name: 自定义服务器名称
- hostname: 服务器请求地址
- user password authentication, or use a different key: 如果服务器需要密码将这个打钩, 并输入密码
- passphrase/Password: 服务器密码
设置远程操作
设置完成参考
这里注意一下
source files
的路径填写
source files 需要传的文件
Remove Prefix 忽略前缀(不忽略着会把前缀目录也带到目标服务器)
Remote directory 目标地址(这里会接上
SSH Server
中配置的根地址)Exec command 就是文件上传完成后再目标服务器上执行的语句
邮件提醒(可选)
如果不需要提醒可以不管