Jenkins安装与发布
1.背景
看了两篇文章,整合了一下。
原文链接:
https://blog.csdn.net/u012637358/article/details/84953769
https://blog.csdn.net/miss1181248983/article/details/82840006
2、准备工作
2.1 安装环境
操作系统 | Java | Tomcat |
---|---|---|
Win10 x64 | JDK8 | tomcat8 |
JDK安装就不赘述了,记得配置JAVA_HOME
, JRE_HOME
,tomcat安装可以看这里
2.2 下载Jenkins
官方网址
2.3部署.war到tomcat下
将刚刚下载的 jenkins.war 放到 tomcat的 ./webapps下,启动tomcat服务:./bin/startup.bat
2.4 Jenkins安装
浏览器打开:
http://localhost:8080/jenkins
打开下图中红色的路径,里面的那一串字符就是密码
将该目录文件内容,设置上。
2.5安装Jenkins插件
直接选择安装推荐的插件就行
3. 了解Jenkins
上面等插件安装完后,就进入到下面界面,提示要创建第一个admin用户,并设置用户名密码
这里我直接创建用户名为admin,密码自定义
点击保存并完成
提示配置jenkins URL,这里保持默认即可,继续点击保存并完成
提示jenkins已经就绪,开始使用jenkins
3.1 新增插件:
点击jenkins,会出现下拉菜单,如图所示
搜索:publish over ssh,勾选并直接安装,安装完成后,手动重启jenkins,可以再去tomcat那里运行一下startup.bat
系统管理->系统配置,在最下方找到刚才安装的publish over ssh
配置完成后,点击Test一下,如果出现Success,说明成功了,可以保存了。
3.2 创建任务
回到首页,点击创建一个新任务
,自定义任务名称,选择构建一个自由风格的软件项目
点击确定
描述
:任务描述
源码管理
选择Git
(如果使用SVN就选择Subversion
);
Repository URL
选择自己公共仓库的地址,这里为了方便我使用别人的公共仓库,如果是私有仓库,点击Add,填写私有仓库的登陆信息;
Branches to build
默认为*/master,意思是发布代码的分支为master分支;
构建触发器
和构建环境
留空;
构建
选择Send files or execute commands over SSH
Name
选择对应的服务器,还记得上面填写publish over ssh时填写的主机名 remote 吗,就是那个
Source files
填入**/**
,表示要发布的代码为全部文件
Remote directory
填入/tmp/jenkins_test(自定义放在远程主机的哪个位置),
Remove prefix
:去前缀
Exec command
:发布完成后执行的命令
点击Add Server
可以增加更多台服务器,在生产环境下通常也是多台服务器一起发布代码。点击保存
3.3 构建项目
点击左侧立即构建
,会出现构建历史
,其中#1
表示第一次构建
点击#1
,点击控制台输出
可以查看构建成功,通常构建完,不管是成功还是失败都会有邮件通知。这里因为没有配置邮件,所以没办法接收到邮件。
到主机:lzx1 上查看
# ll !$
ll /tmp/jenkins_test/
total 100
drwxr-xr-x 2 root root 66 Sep 21 02:42 D11Z
drwxr-xr-x 2 root root 260 Sep 21 02:42 D12Z
drwxr-xr-x 2 root root 24 Sep 21 02:42 D13Z
drwxr-xr-x 2 root root 4096 Sep 21 02:42 D14Z
drwxr-xr-x 2 root root 4096 Sep 21 02:42 D15Z
drwxr-xr-x 2 root root 25 Sep 21 02:42 D17Z
drwxr-xr-x 2 root root 76 Sep 21 02:42 D18Z
drwxr-xr-x 2 root root 155 Sep 21 02:42 D19Z
drwxr-xr-x 2 root root 83 Sep 21 02:42 D20Z
drwxr-xr-x 2 root root 200 Sep 21 02:42 D21Z
drwxr-xr-x 2 root root 128 Sep 21 02:42 D22Z
-rw-r--r-- 1 root root 18044 Sep 21 02:42 LICENSE
-rw-r--r-- 1 root root 419 Sep 21 02:42 README.md
-rw-r--r-- 1 root root 66243 Sep 21 02:42 习题答案.txt
1234567891011121314151617
和我们发布的源是一致的,如下图
如果在源上面做了变更,继续点击立即构建
,如果构建成功,那么在目标机器上也可以看到变更的内容。
4. Jenkins邮件配置
系统管理
→ 系统设置
,找到邮件通知
进行配置,这里我使用的是163邮箱
发邮件的地址必须与管理员地址一致,否则发邮件会报错。同时必须在163邮箱设置授权码,并且在上面设置密码的地方填入该授权码,不然也是发送不了邮件。
点击Test configuration
,如果显示为“Email was successfully sent",说明邮箱配置成功
到163邮箱查看是否收到刚刚测试的邮件
收到了,邮件配置成功。点击保存
,进入到之前的任务中,点击配置
找到构建后操作
,选择E-mail Notification
,Recipients
这里填入接收邮件的邮箱地址
勾选保持默认即可,点击保存
现在来测试,故意让构建不成功,看是否能接收邮件。
- 首先lzx1上更改目标目录的权限,使之无法写入:
# cd /tmp/
# rm -rf jenkins_test/*
# chattr +i jenkins_test/ #加上i权限,让它无法写入
12345
- 回到浏览器,点击
立即构建
,查看控制台输出
:
- 到163邮箱进行查看:
邮件收到,邮箱配置成功。
但这样有一点不好,只有构建失败才会发邮件提示,我想让它不管构建成功还是失败都发邮件提示。
使用插件email-ext配置邮件
想让它不管构建成功还是失败都发邮件来提示,就必须要安装一个插件,该插件名字是Email Extension Plugin
。如果你是按照上面步骤来的,那么该插件就已经安装。系统管理
→ 插件管理
查看是否安装此插件,没有就安装。
系统管理
→ 系统设置
→ Extended E-mail Notification
,填写SMTP server
,勾选Use SMTP Authentication
,再填写User Name
和Password
,Password
这里填邮箱授权码,然后SMTP port
这里填25
往下拉,定位到Default Triggers
,选择always
,表示不管什么情况都会发邮件提示。之后再清空之前设置的邮箱通知,应用、保存即可
打开任务
(我这里是lzx_php)→ 配置
,去掉构建后操作
,点击增加构建后操作步骤
,选择Editable Email Notification
,在Project Recipient List
那里添加自己的邮箱,然后点击Advanced Setting
,定位到Triggers
,可以在Add Trigger
处增加发邮件的条件
现在来测试,看是否能接收邮件。
- 先在lzx1上改回目标目录原来的权限:
# chattr -i jenkins_test/ #让该目录可以写入
1
- 回到浏览器,点击
立即构建
,查看控制台输出
:
- 到163邮箱进行查看:
邮件收到,邮箱配置成功。
破解管理员密码
人难免会犯些错误,如果我们不小心忘记了管理员密码,我们如何去修改回来呢?
- lzx上编辑admin配置文件:
# cd /var/lib/jenkins/users/admin/
# ls
config.xml
# vim config.xml #找到<passwordHash>这行,用下面一行替换掉原来的
<passwordHash>#jbcrypt:$2a$10$eJAMBW3qb/ijrFsSxkJnDOB747e0mFWSR03UmLCn96E4N7vL5BYzC</passwordHash>
这样你的密码就会被重置为123456啦
123456789
- 重启服务,进入浏览器界面修改新的管理员密码:
# systemctl restart jenkins #需要重启服务,才能使用123456去登录
1
回到浏览器界面,使用123456去登录,系统管理
→ 管理用户
→ admin右侧设置齿轮图标,设置新的管理员密码,应用、保存即可