1.下载Jenkins.war包到目录 /home/appuser/softwares/jenkins/jenkins-v2.286.war
2.编写jenkins.sh脚本文件放入war包同目录下
脚本内容 nohup java -jar jenkins-v2.286.war --httpPort=12048 >out.log 2>&1 &
执行脚本:
sh jenkins.sh
3.浏览器上输入地址进行登录
设置防火墙 firewall-cmd --zone=public --add-port=8080/tcp --permanent #开启防火墙的某个端口 firewall-cmd --reload #重载防火墙 |
访问地址: Ip:12048
初始密码可以在 /root/.jenkins/secrets/initialAdminPassword 文件中查看
4.修改默认密码,重新登陆生效
5.用户管理
进入菜单【系统管理->管理用户】进行用户信息管理 (版本不一样可能页面设置不相同)
设置用户权限
进入菜单【系统管理->全局安全配置】,为新增用户设置【授权策略】
首先添加新增用户,然后为用户在矩阵勾选授权策略,保存或应用即可
可以对新建用户进行权限控制,一般建议配置admin用户授予全部权限,建立其他用户控制对应权限。
6.下载安装插件
7.配置Maven
在jenkins所在服务器安装maven
- 下载maven的linux版安装包
- 解压到指定目录:tar -zxvf softwares/mvn/apache-maven-3.6.0-bin.tar.gz -C app
解压后,将maven 的相关路径配置到/etc/profile文件中
export MAVEN_HOME=/usr/local/soft/maven/maven3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
配置setting.xml文件,加入nexus私库地址
<mirror>
<id>we</id>
<mirrorOf>*</mirrorOf>
<name>nexus</name>
<url>http://xxx.xx.xx.xx:2022/repository/maven-public/</url>
</mirror>
Jenkins配置使用maven
进入菜单【系统管理->全局工具配置】
8.配置Git
安装git(使用yum)root权限
yun install -y git
Jenkins配置git
进入菜单【系统管理->全局工具配置】 配置服务器上Git安装路径
9.配置JDK
下载JDK的linux版安装包
配置/etc/profile文件 vim /etc/profile 加入以下配置信息
export JAVA_HOME=/root/jdk1.8.0_281
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
10.配置ssh-server地址
进入菜单【系统管理->系统配置】(用于push over的时候使用)
11.任务编写
传递jar到目标主机
11.1.使用插件的模式
使用插件模式:publish over ssh
缺点:管控配置的远程仓库地址不再有用.必须确保jenkins传输地址为管控配置后台地址
优点:不需要打通当前机器到目标主机的ssh登录
11.1.1创建一个maven任务
如果没有找到构建maven项目的选项时,需下载插件Maven Integration plugin
由于网络问题,下载一直失败的话也可以直接使用下面链接直接下载
http://updates.jenkins-ci.org/download/plugins/maven-plugin/2.14/maven-plugin.hpi
下载完成后在高级选项进行上传
11.1.2 配置任务构建保存时间
11.1.3源码管理
配置代码来源
11.1.4配置构建的触发条件
这里勾选的Build whenever a SNAPSHOT dependency is built是:当job依赖的快照版本被build时,执行本job。
此配置可以根据具体的项目情况进行选择。
11.1.5配置mvn执行相关
11.1.6传输到配置的远程服务器
配置任务传输的相关信息
脚本内容:
!/bin/bash
APP_NAME=/home/app/ycbatch-daybat/ycbatch-daybat.jar
usage(){
echo -e "\033[1;41m 璇疯緭鍏ユ墽琛宻tartup.sh鑴氭湰鐨勮繍琛屽弬鏁?[start|stop|status|restart] \033[0m"
exit 1
}
is_exist(){
pid=$(ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}')
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
start(){
is_exist
if [ $? -eq 0 ]; then
echo -e "\033[1;42m ${APP_NAME}鏈嶅姟姝e湪杩愯锛岃繘绋嬪彿涓猴細${pid} \033[0m"
else
echo -e "\033[1;42m 寮€濮嬪惎鍔?{APP_NAME}鏈嶅姟 \033[0m"
nohup java -jar -Dfile.encoding=utf-8 -Xms128m -Xmx256m ${APP_NAME} >/dev/null 2>&1 &
fi
}
stop(){
is_exist
if [ $? -eq 0 ]; then
kill -9 $pid
echo -e "\033[1;41m ${APP_NAME}鏈嶅姟宸茬粡鍋滄杩愯锛?\033[0m"
else
echo -e "\033[1;41m ${APP_NAME}鏈嶅姟鏈湪杩愯! \033[0m"
fi
}
status(){
is_exist
if [ $? -eq 0 ]; then
echo -e "\033[1;45m ${APP_NAME}鏈嶅姟姝e湪杩愯锛岃繘绋嬪彿涓猴細${pid} \033[0m"
else
echo -e "\033[1;45m ${APP_NAME}鏈嶅姟鏈湪杩愯! \033[0m"
fi
}
restart(){
stop
sleep 5
start
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac