Gitlab+Jenkins学习之路(七)之发布PHP项目
使用git+jenkins实现持续集成

Step1:构建一个自由风格的php-deploy
Step2:Gernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿
Step3:源码管理:这里使用git插件,也可以使用svn插件
将git路径存在这里还需要权限认证,否则会出现error 。
jenkins服务器上生成SSH-Key
[root@linux-node2 ~]# yum install -y git
[root@linux-node2 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:00FQjn5P6qAtok4BuE42TyfuNJnblzZ389XwKBhmHjY root@linux-node2
The key's randomart image is:
+---[RSA ]----+
| .oo |
|. + |
|o . o |
| o . . . |
|.+.o . S E . . |
|+ =.= B O +.|
| ..B o + o ..o|
| .o = .B + o .. |
| .o+ o+.+ o o. |
+----[SHA256]-----+
[root@linux-node2 ~]# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+/XyUMNP5Wm63hhcACosVyRtmJxTSnT46HSKZ2PhduTHPIJcfhVTmeCk1zwO0fP8PmwXFf0+G9ki8CupE/+xcOy14TCqxNgvP8o514IjXOFV7SO1lnHKH3t0RfaFEloRZHnrgIcWiZrFvYRT/TFznWO86sfHPzlW6WF9elTqRURNR60bwv9C6iw4PpYjGVIST/SeGl75axtUjJr544jB5pEWtNZ09ktCKpPeFBvgCc9exdzOQuzaCXQrroNU0p6MB6KkoIOmpkN92cDPdg4EgBYDjwcl38FbXOq3N0QL8PT+IZpHBWFVEAZU2alI02H5NNUy9p2K/Br4NY3UvYZiP root@linux-node2
命令行测试添加ssh-key后能否正常拉取
[root@linux-node2 ~]# git clone git@192.168.56.11:java/app1.git
Cloning into 'app1'...
The authenticity of host '192.168.56.11 (192.168.56.11)' can't be established.
ECDSA key fingerprint is SHA256:p2lhKmsPQ6K+dWHHvbJg0GV+Ni9VM7vlViKrYsZLP1s.
ECDSA key fingerprint is MD5:::1c::de::1c:4a:2f::b1:dc:e2:d0::.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.11' (ECDSA) to the list of known hosts.
remote: Counting objects: , done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta )
Receiving objects: % (/), done.
[root@linux-node2 ~]# ll
total
-rw-------. root root Dec : anaconda-ks.cfg
drwxr-xr-x root root Dec : app1
-rw-r--r-- root root Mar jenkins-2.32.-1.1.noarch.rpm
然后保存,立即构建一次,会拉取master的代码库
点开可以看到控制台的输出,如图:
/var/lib/jenkins/workspace/php-deploy目录用于存放代码信息 [root@linux-node2 php-deploy]# ll
total
-rw-r--r-- root root Dec : index.html
-rw-r--r-- root root Dec : new.html
-rw-r--r-- root root Dec : readme
[root@linux-node2 php-deploy]# pwd
/var/lib/jenkins/workspace/php-deploy
这里我们拉取的代码需要推送到远程代码目录,需要如下操作:
架设linux-node1为web服务,目录为/data/www/php-deploy
[root@linux-node1 ~]# mkdir /data/www/php-deploy -p
添加node2的免秘钥登陆
[root@linux-node1 ~]# vim .ssh/authorized_keys
[root@linux-node1 ~]# chmod .ssh/authorized_keys
[root@linux-node2 ~]# ssh 192.168.56.11
Last login: Mon Dec :: from 192.168.56.1
[root@linux-node1 ~]#
修改项目设置,配置构建:Execute shell,相当于将代码自动发布到linux-node1的代码目录中。
接下来,我们重新构建一次,并查看控制台输出:
在node1上查看目录,也会有相应的代码信息
[root@linux-node1 ~]# ll /data/www/php-deploy/
total
-rw-r--r-- root root Dec : index.html
-rw-r--r-- root root Dec : new.html
-rw-r--r-- root root Dec : readme
[root@linux-node1 ~]#
Gitlab+Jenkins学习之路(七)之发布PHP项目的更多相关文章
- Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布
思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...
- Gitlab+Jenkins学习之路(八)之发布maven项目及按版本发布
一.什么是Maven maven是一个项目管理和综合工具.Maven提供给开发人员构建一个完整的生命周期框架. 开发团队可以自动完成该项目的基础设施建设,Maven使用标准的目录结构和默认构建生命周期 ...
- Gitlab+Jenkins学习之路(十三)之发布Java项目到tomcat
一.新建一台虚拟机安装tomcat ()安装JDK 官网下载jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downl ...
- Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份
一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...
- Gitlab+Jenkins学习之路(十四)之自动化脚本部署实践
目录 一.环境说明和准备 1.环境说明 2.服务器准备工作 二.发布脚本编写 1.自动化部署流程设计 2.自动化部署脚本编写 三.发布测试 1.开发机和github添加ssh信任 2.克隆项目到开发机 ...
- Gitlab+Jenkins学习之路(十)之Jenkins按角色授权和Pipeline
一.Jenkins按角色授权 当一个公司的开发分为多个组别,或者是多个项目等等.用于公司内部测试,让开发人员自行构建测试,此时不可能让所有的开发都在公用一个构建,这样变得很混乱,为了解决这一问题,je ...
- Gitlab+Jenkins学习之路(一)之Git基础
1.GIT基础 GIT是一个分布式版本管理系统,速度快,适合大规模,跨地区多人协同开.SVN是一个集中式版本管理系统. (1)GIT生态 GIT分布式版本管理系统 Gitlab git私库解决方 ...
- Gitlab+Jenkins学习之路(二)之gitlab部署
1.安装依赖及gitlab [root@linux-node1 ~]# yum install -y curl policycoreutils openssh-server openssh-clien ...
- Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理
1.创建Group,User,Project 创建一个组,组名为java Group path http://192.168.56.11/java Visibility Level: #为权限级别,一 ...
随机推荐
- java多线程读取、操作List集合
import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.ArrayUtils; pub ...
- springboot 针对jackson是自动化配置
spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名 spring.jackson.deserialization ...
- C语言占位符
占位符就是先占住一个固定的位置,等着你再往里面添加内容的符号,广泛用于计算机中各类文档的编辑. 格式占位符(%)是在C/C++语言中格式输入函数,如 scanf.printf 等函数中使用.其意义就是 ...
- jquery如何设置与去除disabled属性?五种方法
//两种方法设置disabled属性 $('#areaSelect').attr("disabled",true); $('#areaSelect').attr("dis ...
- PowerShell管理SCOM_批量设置维护模式(下)
#定义存储需要置为维护模式的计算机名称列表$serverlist = "C:\scomm\servers.txt"#定义RMS服务器名称$rmsServerName=”scomw. ...
- C++用法总结
1.C++的绝对值符号 如果是整形的,就是abs() 如果是浮点型的,是fabs() 这两个函数都从属于库函数math.h #include <cmath> or #include< ...
- C# 算法题系列(一) 两数之和、无重复字符的最长子串
题目一 原题链接 https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整 ...
- zabbix日常监控项nginx(五)
1.开启nginx监控 2.编写脚本来进行数据采集 3.设置用户自定义参数 4.重启zabbix-agent 5.添加item.创建图形.创建触发器 6.创建模板 注:第一次使用可以按需求制定好模板, ...
- rman恢复方案和oracle异机恢复
这篇文章主要介绍了rman恢复方案和oracle异机恢复,需要的朋友可以参考下 注:①恢复的前提是已经做好备份②完全恢复数据库是数据库遇到故障,在恢复时候没有丢失任何已经提交事物数据的恢复不完全恢复数 ...
- SQL Server之JSON 函数
SQL Server 2005开始支持XML数据类型,提供原生的XML数据类型.XML索引及各种管理或输出XML格式的函数.随着JSON的流行,SQL Server2016开始支持JSON数据类型,不 ...