Jenkins学习内容:
- Jenkins介绍
- Jenkins安装
- Jenkins相关目录
- Jenkins发布php代码
- Jenkins邮件配置
- Jenkins邮件-Email Extension Plugin
- 破解管理员密码
- 创建私有仓库
- 将zrlog源代码放到gitlab:/test-java/
- 部署java项目---配置tomcat
- 部署java项目---安装maven
- 部署java项目---安装插件
- 部署java项目---构建job
-
Jenkins介绍
官网 https://jenkins.io
Jenkins 是一个开源的、可扩展的持续集成、交付、部署(软件代码的编译、打包、部署)基于web界面的平台。 - jenkins安装
yum -y install java-1.8.0-openjdk.x86_64 -y
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins -y
systemctl start jenkins
ps aux|grep jenkins
grep -A5 password /var/log/jenkins/jenkins.log
http://192.168.144.20:8080
- jenkins相关的目录
/etc/sysconfig/jenkins -- 配置文件
/var/lib/jenkins/ -- 程序主目录
/var/lib/jenkins/jobs/ -- 创建的任务目录
/var/lib/jenkins/nodes/ -- 多节点目录
/var/lib/jenkins/plugins/ --插件所在的目录
/var/lib/jenkins/users/ -- 用户信息所在的目录
- 发布php代码
检查是否安装 Git plugin 和 Publish over SSH 2个插件
系统管理->插件信息->已安装 过滤 (Git plugin|Publish over SSH)
系统管理->插件信息->可选插件 过滤 Plubish over SSH -> 直接安装
配置 Publish Over SSH,添加远程机器
系统管理->系统设置-> 下拉到 Publish Over SSH
ssh-keygen
ssh-copy-id 192.168.144.10
生成密钥对的私钥 ~/.ssh/id_rsa的内容粘贴到 key 这个方框中,新增加远程机器 192.168.144.10
创建一个新任务
输入一个任务名称 构建一个自由风格的软件项目 确定
保存
立即构建
测试
代码仓库的代码是否同步到 apenglinux-001.cn:/tmp/jenkins下
如果代码仓库的代码变更了就需要到 jenkins的web页面下到相应的工程下点击立即构建以同步代码
- Jenkins邮件配置
系统管理->系统设置->管理监控配置->系统管理员邮件地址 xxxxxxx@163.com
系统管理->系统设置->邮件通知
smtp服务器 smtp.163.com
高级 使用smtp认证
用户名 xxxxxxx@163.com
密码 ........
smtp端口 25
应用->保存工程 (test_task) ->配置->增加构建后操作步骤->E-mail Notification->填写Recipients
应用->保存针对相应的工程立即构建
可以针对相应的工程任务 #5(第几次构建)查看控制台输出
查看邮箱
- Jenkins邮件-Email Extension Plugin
查看插件 Email Extension Plugin 是否安装
取消 邮件通知
系统管理->系统设置->配置 Extended E-mail Notification 这项填写SMTP server smtp.163.com
Use SMTP Authentication 打对勾
填写User Name
填写Password
填写SMTP port
填写Default Triggers Always应用->保存
修改对应任务的配置
删除构建后操作 E-mail Notification
选择 Editable Email Notificaion
Project Recipient List $DEFAULT_RECIPIENTS,xxxx@163.com,xxxxx@qq.com
高级设置
应用->保存针对相应的工程任务->立即构建
查看这个任务的控制台输出
- 破解管理员密码
cd /var/lib/jenkins/users/
ls
admin_2412178503168175859 users.xml -- 此行为查到的内容
cd admin_2412178503168175859/
ls
config.xml -- 此行为查到的内容
vim +/passwordHash config.xml -- 将匹配到的行删除掉,添加以下一行
<passwordHash>#jbcrypt:$2a$10$ZUIU6Un1RnO/A.92QkSn0uvGJvrgInCSvpCNuTwC1EniQi1KVVNq6</passwordHash> -- 此密码为 123456 加密码后的密码
systemctl restart jenkins.service
就可用 123456 登陆到 jenkins web页面了就可重新设置密码了
- 创建私有仓库
用 github的账号登陆到 gitlab.com
创建一个Project test-java
将jenkins服务器的公钥放到 User Settings -> SSH Keys 窗口中的 key 方框中,add key
创建私用仓库
[root@apenglinux-002 ~]# cd /home/
[root@apenglinux-002 home]# git config --global user.name "apenglinux"
[root@apenglinux-002 home]# git config --global user.email "2242740665@qq.com"
[root@apenglinux-002 home]# git clone git@gitlab.com:apenglinux/test-java.git
Cloning into 'test-java'...
The authenticity of host 'gitlab.com (35.231.145.151)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
ECDSA key fingerprint is MD5:f1:d0:fb:46:73:7a:70:92:5a:ab:5d:ef:43:e2:1c:35.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitlab.com,35.231.145.151' (ECDSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.
[root@apenglinux-002 home]# ls
test-java
[root@apenglinux-002 home]# cd test-java
[root@apenglinux-002 test-java]# touch README.md
[root@apenglinux-002 test-java]# git add README.md
[root@apenglinux-002 test-java]# git commit -m "add README"
[master (root-commit) 2a75836] add README
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
[root@apenglinux-002 test-java]# vim README.md -- 在这个文件中随便写点什么
[root@apenglinux-002 test-java]# git add README.md
[root@apenglinux-002 test-java]# git commit -m "change readme.md"
[root@apenglinux-002 test-java]# git push -u origin master
重新刷新 gitlab页面就ok了
- 将zrlog源代码放到gitlab:/test-java/
[root@apenglinux-002 home]# wget https://codeload.github.com/94fzb/zrlog/zip/master
[root@apenglinux-002 home]# unzip master
[root@apenglinux-002 home]# ls
master test-java zrlog-master
[root@apenglinux-002 home]# mv zrlog-master/* test-java/
[root@apenglinux-002 home]# cd test-java/
[root@apenglinux-002 test-java]# git add .
[root@apenglinux-002 test-java]# git commit -m "add zrlog"
[root@apenglinux-002 test-java]# git push
刷新gitlab页面就ok了
- 部署java项目---配置tomcat(apenglinux-001.cn 192.168.144.10)
vim /usr/local/tomcat/conf/tomcat-users.xml -- 倒数第二行添加如下内容
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="admin" password="123456" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.144.*" />
重启tomcat
访问tomcat服务器 http://192.168.144.10/ 点击这个页面上的
manager webapp 链接,会弹出一个认证的页面 输入用户名为:admin,密码为:123456 就可进入 Tomcat Web Application Manager 这个页面
- 部署java项目---安装maven
安装maven目的是为了编译java的源码并打包
下载 maven并解压查看版本信息
https://maven.apache.org/download.cgi
cd /usr/local/src
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
tar zxvf apache-maven-3.6.1-bin.tar.gz
/usr/local/src/apache-maven-3.6.1/bin/mvn --version
配置jenkins
系统管理->全局工具配置
应用->保存
-
部署java项目---安装插件
系统管理-》管理插件,检查是否安装 Maven integration plugin,deploy to container plugin
systemctl restart jenkins
创建新任务 java-test -> 构建一个maven项目 - 部署java项目---构建job
任务test-java的配置
总结:
- 安装jenkins过程中,系统提供的插件如果没有安装成功,就重试安装直到没有打叉变成绿色打对勾为止
- 理清一下jenkins发布php代码的思路:
jenkins_server要远程到客户端上,要作免密钥登录
插件 Git plugin, publish over ssh
添加客户端jenkins_client,也就是配置publish over ssh
添加任务
立即构建