jenkins自动部署服务

1、安装jdk8

检查是否安装了jdk
java -version
如果出现版本提示则说明安装了,没有则需要进行安装
注意 安装jdk1.8版本,亲测jdk7、10会导致失败(当前版本[Jenkins ver. 2.131])

安装jdk

由于在服务器中下载包极其挫折(并且不想安装 openSDK ),直接到官网下载安装包(tar.gz),传到服务器上某路径下。

cd到该路径下解压

tar -xzvf xxx.tar.gz
#(xxx为你下载的文件名)

配置环境变量

vi /etc/profile
在文件底部中添加
# set java environment
JAVA_HOME=/usr/java/jdk1.8.0_171 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATHT
其中,/usr/java/jdk1.8.0_171 是我解压后的文件地址,根据自己实际情况而定

使配置文件生效

source /etc/profile

2、安装jenkins

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install jenkins

3、修改配置

vi /etc/sysconfig/jenkins
配置文件中找到以下两项,根据实际情况进行修改
JENKINS_USER="jenkins" 自动创建一个jenkins用户
JENKINS_PORT="8080" 服务启动默认端口

4、配置java路径

查询java路径,如果which查不到自行寻找路径
which java 查询java路径,记下
打开配置文件
vi /etc/init.d/jenkins
找到配置块如下,查看是否存在本机的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
"

5、启动和关闭

启动
sudo service jenkins start
关闭
sudo service jenkins stop
若提示 Warning: jenkins.service changed on disk. Run 'systemctl daemon-reload' to reload units.
则执行
systemctl daemon-reload
后重新启动
sudo service jenkins start

在浏览器输入 服务器ip地址:服务端口号
如 10.51.38:8080 (默认 8080)
若无法打开网页,请检查上述配置的端口号是否输入正确,以及jdk是否为jdk8(1.8)

根据指引找到密码登录,后选择默认插件安装,等待安装完成后,创建账户。


初次打开页面

选择插件,默认安装即可

创建账户

欢迎界面

完成账户创建后即可进入到欢迎界面


欢迎界面

推荐插件

文件推送远程服务器插件(重要): Publish Over SSH
SVN插件: SVN Publisher plugin
Maven插件: Maven Integration plugin (Maven集成,否则新建的时候没有Maven Project)
插件安装方法: 系统管理/插件管理/可选插件 ,搜索插件进行安装即可

6、实战演练

这里我们以前端项目为例。(先安装好node以及相关的环境)
我们的需求是点击"开始构建"项目后:
1、自动从git上把项目下载、pull下来
2、进行依赖检查安装
3、执行项目编译
4、把编译出来的文件包压缩,发送到远程服务器
5、在远程服务器上解压文件,部署到相应位置;同时把前一个项目包进行备份

配置远程服务器

由于要把包发送到远程服务器,所以先把相应的远程服务器配置好
系统管理/系统设置 ,页面查找 “Publish Over SSH”,找到配置页面

公共的配置:

(提前配置好服务器之间的ssh免密登录)
*Passphrase:密码(key的密码,如果你设置了)
Path to key:key文件(私钥)的路径
Key:讲私钥复制进来


Publish Over SSH 配置页面
私有配置

私有配置:
SSH Server Name:标识的名字 (自行取名)
Hostname:需要连接ssh的主机名或ip地址
Username:用户名
Remote Directory:远程目录
Use password authentication, or use a different key:可以替换公共配置(选中展开的就是公共配置的东西,这样做扩展性很好)
私有配置的高级:
Port:端口(默认22)
Timeout (ms):超时时间(毫秒)默认即可
Disable exec:禁止运行命令
Test Configuration:测试连接


私有配置

配置完成后点击 “test Configuration”进行测试,成功即可。

创建新任务

创建新任务

这里主要配置重要项,其他项自行选择

配置源码管理

这里在 Repository URL 填写git 项目地址,涉及到服务器验证的话做好ssh免登录即可无需选择凭证,或者选择选择相应的验证方式。如果验证没通过,输入地址后几秒,页面即会报错提示。
Branch Specifier (blank for 'any') 为分支选择


源码管理

构建

在构建中输入要执行的shell脚本,值得注意的是 首行要加入 “source /etc/profile” ,以载入环境变量,不然会出现 cnpm 命令找不到的情况。
source /etc/profile
cnpm I
cnpm run buildxhtest
echo "完成构建"

构建

至此,已经完成了需求的1、2、3点

构建后操作

构建完成后,我们还需要把文件包压缩发送至远程服务器。
点击增加构建步骤,选择 Send build artifacts over SSH

image9.png

Name: 远程服务器
Source files: 包的路径,相对路径
Remove prefix: 需要移除前缀路径, 如果包的路径为 demo/a.jar,如果此项为空,则发到服务器则为/root/demo/a.jar, 如果移除前缀路径为 demo/,则服务器路径为/root/a.jar
Remote directory: 上传到远程服务器的目录, 注意这是一个相对路径, 根目录取决于你的SSH Service配置
Exec command:上传完成后需要执行的命令(注意,根目录是当前用户目录)

比如,当前我要把打包压缩好的 dist.tar.gz 文件发送到远程服务器上的 /home/jenkins_test 路径下, 而在配置该远程服务器时默认目录为 /home,所以,
Source files : dist.tar.gz
Remove prefix:
Remote directory: jenkins_test
为了不出现意想不到的路径错误,shell脚本里直接指定绝对路径。
cd /home/jenkins_test

构建后操作

要实现需求4、5,shell脚本如下:
# 这里还是用户目录
cd /home/jenkins_test

# 创建文件夹
curDate=$(date "+%Y-%m-%d-%H-%M-%S")
mkdir web_history/$curDate

# 删除原有的dist
rm -f -r dist

# 解压dist
tar vxf dist.tar.gz

# 把历史版本存起来
cp dist/index.html web_history/$curDate/index.html
cp -r dist/static web_history/$curDate/static

# 删除历史版本
rm -r -f static
rm -f index.html

# 把新的文件放入目录
cp -r dist/static static
cp dist/index.html index.html
echo "成功!"

配置好以上后,点击保存。

在项目界面点击 立即构建 ,即可开始构建项目

20180711164524.png

查看控制台输出

在构建的过程中,可以点击任务查看档次任务详情,控制台输出
在控制台中查看运行状态。

控制台输出

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容