1.如何学习
这里推荐一下:jenkins中文社区
2.let's 实操一下:按照说明完成安装
1.下载 Jenkins.
2.打开终端进入到下载目录.
nohup java -jar jenkins.war --httpPort=8085 > ./consoleMsg.log 2>&1 &
建议加上参数:nohup java -Dhudson.util.ProcessTree.disable=true -jar jenkins.war --httpPort=8085 > ./consoleMsg.log 2>&1 & nohup 后台静默启动,不在控制台输出日志
上面的2 和 1 的意思如下:
0 标准输入(一般是键盘)
1 标准输出(一般是显示屏,是用户终端控制台)
2 标准错误(错误信息输出)
3.查看项目运行日志:
tailf consoleMsg.log 打印日志,并且持续跟踪日志
4.打开浏览器进入链接 http://localhost:8085
注意:这里一定要跳过插件安装,因为默认为国外镜像,我们要选择设置国内镜像
5.进入到系统里面
密码位置:/root/.jenkins/secrets/initialAdminPassword
获取密码:vi /root/.jenkins/secrets/initialAdminPassword
b7f14a99a8e045ca8dcfa44ec2a06fe3
3.下载插件和配置环境变量
1.安装常用插件:
Locale:Jenkins本地语言化插件;
Git Parameter:此插件后面可能会用到,主要是配合Git插件使用的一些参数设置;
Maven Integration:此插件为JAVA项目提供maven编译的环境;
AnsiColor:此插件是让我们是conlsoe里面输出一些信息,可以打印出带颜色的一些信息
2.配置环境变量(/etc/profile)
git yum -y install git (-y 所有都是yes)
/usr/local/jdk1.8.0_65
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile
echo $PATH
3.配置国内镜像
3.1.进入你的jenkins工作空间,这是我本地的:
执行下面命令,替换所有的国外镜像(主要还是对default.json文件的修改)
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
4.重启jenkins
http://xxx:8085/restart
测试脚本:
#!/bin/sh
#进入指定目录
cd /data/work
#删除原有目录
echo '清空原有项目目录'
rm -rf jenkins
#拉取代码
cd /data/work/
git clone https://github.com/xxxx/jenkins.git
cd /data/work/jenkins
mvn clean package -Dmaven.test.skip=true
#睡眠30秒
sleep 60s
echo '睡眠60s'
#打好包的目录
cd /data/work/jenkins/target
#移动到指定目录
cp jenkins-0.0.1-SNAPSHOT.jar /data/server/
cd /data/server/
echo '执行start启动命令'
nohup java -Dhudson.util.ProcessTree.disable=true -jar jenkins-0.0.1-SNAPSHOT.jar --server.port=8086 > ./consoleMsg.log 2>&1 &
这里在贴出另外一种写法,基于Pipeline
remote = '10.xxx.8.60'
remotejarpath = '/opt/xxx/eshop/server/'
BUILDDIR = "./"
def root_path = '/usr/local/jenkins/jenkins_home/workspace/eshms-web-application'
final_path ='/usr/local/jenkins/jenkins_home/workspace/eshms-web-application/picchealth-eshop-backend/picchealth-eshop-appli-server/target/eshop-appli-server-1.0.0.jar'
project_url = 'xxx-eshop-backend'
node("master") {
stage('拉取代码') {
sh 'rm -rf picchealth-eshop-backend'
sh 'git clone -b test https://lxx:xxx@gitlab.xxxxx-eshop-backend.git'
}
stage('编译代码') {
sh "mvn -f '${project_url}'/pom.xml clean install -Dmaven.test.skip=true"
}
stage('publish') {
sh 'pwd'
sh 'ssh root@' + remote + ' /opt/picchealth/eshop/script/r5-appli-eshop.sh '
sh 'scp ' + final_path + ' root@' + remote + ':' + remotejarpath
sh 'ssh root@' + remote + ' /opt/picchealth/eshop/script/5-appli-eshop.sh'
}
}
前端基于npm构建:
gitbranch='dev'
giturl='https://username:password@*************eshop-web.git'
remotejarpath='/opt/******/eshop/admin'
node {
try {
stage('Preparation') {
git branch:gitbranch, url: giturl
}
stage('Build') {
if (isUnix()) {
nodejs(nodeJSInstallationName: 'nodejs') {
sh 'yarn install'
sh 'yarn build dev'
}
}
}
stage('Result') {
sh 'ls'
sh 'scp -r /var/lib/jenkins/workspace/**********-eshop-admin/dist/ /opt/********/eshop/admin/'
}
}catch (err) {
}
}
问题1:没有maven和git选择项
注意:
没有maven插件导致没有maven选项
没有git插件导致没有git选项
设置全局凭证
Pipeline Maven Integration Plugi
Maven Integration plugin
SSH plugin
Deploy to container Plugin
问题2:如何批量删除job
1. cd /root/.jenkins/jobs
2. rm -fr *
3. restart jenkins server
问题3:下载插件
下载插件:
https://plugins.jenkins.io/
http://updates.jenkins-ci.org/download/plugins/ (这个好用)
问题3:安装node和npm
Linux环境下安装nodejs和npm_ccccc1900的博客-CSDN博客_linux安装node和npm
问题4:使用git拉取代码:
1.执行git config --global credential.helper store,在~/.gitconfig目录下会多出一个文件,这里会记录你的密码和帐号;
2.再执行git pull 输入一次正确的帐号密码之后就不用再输入了。
3.git clone https://gitlab.****end.git(master)
git clone -b dev https://gitlab.****end.git(dev分支)
问题5:mvn clean install 报错
mvn -f /usr/local/jenkins/jenkins_home/workspace/xxxxxx/pom.xml clean install
问题6: mvn: command not found
方法1:
方法2:系统配置 -环境变量
注意:我这里最开始配的是 MAVEN_HOME,但依然没有解决问题,最后配置了一个PATH才把问题解决了 ,即最终配置如下:
参考:shell 脚本执行mvn clean install 报错 --MissingProjectException - feng_2015 - 博客园