jenkins git公有仓库与私有仓库发布代码

1 发布php代码

- jenkins已经搭建完成,现在开始来做一个php发布代码的任务

- 在发布php代码时先看看是否有两个插件

在系统管理-管理插件- 已安装插件-
检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装
[[email protected] jenkins]# systemctl restart jenkins //重启服务

- 需要生成一对密钥对用来登录远程机器(远程机器即是发布php代码的机器)

[[email protected] ~]# cd /root/.ssh/
[[email protected] .ssh]# ls
aaa      authorized_keys  boy.pub  id_rsa      jump      known_hosts  lf1.pub
aaa.pub  boy              config   id_rsa.pub  jump.pub  lf1
//我之前有生成过密钥对在这我可以拿来直接用,你也可以根据自己的需求来重新生成

- 之后在设置jenkins

系统管理-系统设置-Publish over SSH 找到这一项,添加之前生成的密钥对的私钥即可
之后在将公钥放在想要发布php代码的机器(简称远程机器)我这边放在了[[email protected] ~]# cat .ssh/authorized_keys
这个机器上面
[[email protected] ~]# ssh 192.168.212.10  测试可以登录到远程的机器

![mark](http://oqz6pu8vi.bkt.clouddn.com/blog/20171120/163348636.png?imageslim)

SSH Server,name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/(根)

如果是多台web server,继续点击“增加”,重复以上操作

- 创建新的任务

Repository URL”填写你项目的git地址,如果是公共项目可以不设置下面的参数,直接填写一个git地址即可,若是私有项目(-none),需要填写认证信息,比如可以选择 “SSH Username whith private key”,然后设置Username以及private key

“Branches to build” 默认为*/master,意思是发布的分支为master,保持默认

“构建触发器”和“构建环境”留空

- “构建”,选择 “Send files or execute commands over SSH”

Remove prefix可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com,Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作

- 开始发布代码

- 查看发布的结果

[[email protected] ~]# ls /tmp/jenkins_test/
D11Z  D13Z  D15Z  D18Z  D20Z  D22Z     README.md
D12Z  D14Z  D17Z  D19Z  D21Z  LICENSE 
//查看已经发布成功

这里需要注意下如果是在git上重新更新了一下文件只需要在点下“立即构建”就会更新在git上更新的项目的内容

(如上我们用的是git的公共的仓库,可是我有一个私有的仓库应该怎么做呢?

- 需求:需要将discuz的代码发布到客户机上(chy这台机器上)。

在这我们有三台机器:

chy(192.168.212.10)--这台是最后的客户机查看discuz发布代码用的机器

chy02(192.168.212.12)--这台是搭建的git的私有仓库

chy01(192.168.212.11)--这台是要将discuz代码上传到私有仓库的一台机器,我这边需要上传到私有仓库然后jenkins用私有仓库的地址发布

如上的三台机器都是centos7

git的私有仓库192.168.212.12 chy02(快速搭建)

[[email protected] ~]# yum install -y git 
[[email protected] ~]# useradd -s /usr/bin/git-shell git 
[[email protected] ~]# cd /home/git/
[[email protected] git]# mkdir .ssh
[[email protected] git]# touch .ssh/authorized_keys
[[email protected] git]# chmod 600 .ssh/authorized_keys 
[[email protected] git]# chown -R git:git .ssh
[[email protected] git]# vi .ssh/authorized_keys 
放入公钥,保证客户机可以访问我们的git私有仓库的服务端
[[email protected] ~]# ssh [email protected]
# cat /etc/motd 
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.212.12 closed.

到git的客户机里开始将discuz代码上传到我们的私有仓库里

[[email protected] ~]# cd /tmp
You have new mail in /var/spool/mail/root
[[email protected] tmp]# git clone [email protected]:/data/gitroot/sample.git
Cloning into ‘sample‘...
warning: You appear to have cloned an empty repository.
[[email protected] tmp]# cd sample/
[[email protected] sample]# ls -la
total 12
drwxr-xr-x   3 root root 4096 Nov 22 00:14 .
drwxrwxrwt. 15 root root 4096 Nov 22 00:14 ..
drwxr-xr-x   7 root root 4096 Nov 22 00:14 .git
[[email protected] sample]# vim discuzz.html
[[email protected] sample]# git add discz.html 
[[email protected] sample]# git commit -m "daima"
[master d22de14] daima
 1 file changed, 470 insertions(+)
 create mode 100644 discz.html
[[email protected] sample]# git push
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 252 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To [email protected]:/data/gitroot/sample.git
   a2ee2f6..d22de14  master -> master
如上是上传discuz的代码

git私有仓库查看是否上传

[[email protected] sample.git]# git log --pretty=oneline
b081942e4a9eed04ffe34e7b2a6796270f1fcc69 discuzz 代码

现在需要在jenkins里下发discuz的代码

- 如下是新建一个任务

- 创建git私有仓库的信息

- 如下的就与之前的公有仓库的操作是一致的,这里就不细说了

-最后就开始构建

- 在客户机上查看是否有构建的任务

[[email protected] ~]# cd /tmp/jenkins_test/
[[email protected] jenkins_test]# ls
1.txt  D12Z  D14Z  D17Z  D19Z  D21Z  discuzz.html  LICENSE    习题答案.txt
D11Z   D13Z  D15Z  D18Z  D20Z  D22Z  discz.html    README.md
查看到已有discuzz

- 这里需要再次注意下,如果是自己搭建的私有仓库一定要记得每台机器上要有相应的密钥。切记切记。

当然后期只要是构建成功还需要发一封邮件提醒,来提升工作效率!!

时间: 2024-10-09 03:11:32

jenkins git公有仓库与私有仓库发布代码的相关文章

通过Git WebHooks+脚本实现自动更新发布代码之shell脚本

前文讲述了<通过Git WebHooks+脚本实现自动更新发布代码>,里面提供了一种自动更新发布代码的脚本编写思路.本文的脚本与前文中的思路不太不同.本脚本以capistrano中的一些思想和理念为依据,用简单好理解的shell脚本实现capistrano原本实现的自动化部署部分. 脚本的一些特点和功能: 解决脚本的符号链接问题,准确获取脚本工作目录(从tomcat脚本中学到): 颜色显示,不同级别的信息用不同的颜色显示(共两种方案,前一种从一位不知名的国外工程师处得到,后一种从lnmp1.2

通过Git WebHooks+脚本实现自动更新发布代码之Shell脚本(二)

依据前文<通过Git WebHooks+脚本实现自动更新发布代码>的解决方案编写的shell脚本,此脚本专门用于更新补丁文件,例如对项目中的文件实现增(add).删(remove).改(update),并且执行相关的命令,如清除缓存.重启服务等. 此Shell脚本目前设计成在本地执行,目前不适合分布式执行的情况.也就是说,此脚本最好与项目在同一个机器上,这个缺陷已经标注在脚本中了,参见脚本中的多个TODO. 脚本完成的工作: 检查配置文件合规性 备份与恢复 增删改文件 执行命令 失败回滚 除上

Dokcer创建私有仓库、私有仓库Web管理

1.直接用Docker提供的镜像registry运行私有仓库 # docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry --restart='always' registry -d : 后台运行 -p : 宿主机跟容器映射端口   SERVER_PORT:CONTAINER_PORT -v : 挂载宿主机目录到容器中作为数据卷, docker registry上传镜像默认存放到容器/var/l

java~gradle构建公用包并上传到仓库~使用私有仓库的包

在新的项目里使用仓库的包 上一讲中我们说了java~gradle构建公用包并上传到仓库,如何发布公用的非自启动类的包到私有仓库,而这一讲我们将学习如何使用这些包,就像我们使用spring框架里的功能包一样. 参考:http://www.zhyea.com/2018/04/24/gradle-repository-username-password.html?spm=a2c40.rdc_maven_repo.0.0.12fd3054jv5EgP 公司私有的maven仓库在访问时是需要用户名密码的.

通过Git WebHooks+脚本实现自动更新发布代码

需求: 写一个自动化部署脚本,能根据git push动作自动更新发布代码(补丁文件(或更新文件,以下简称补丁)) 解决方案: 通过git webhooks.python脚本.Linux Shell脚本完成,所有动作均自动完成,人工部分仅限于发布补丁文件之前 git webhooks实现触发执行脚本 python脚本用于接收git webhooks的post数据并根据这些数据判断是否执行shell脚本 Linux Shell脚本用于实现部署.备份.回滚等操作 具体步骤(方案实现): 实现原理: 用

Jenkins+GIT+Maven+Shell 实现项目一键发布

一.前言 众所周知,Jenkins默认情况下可以实现项目更新(通过SVN,但我们公司使用GIT),和项目发布,通过(MAVEN插件),但是这种情况下发布到一些容器底下(如Tomcat)时,经过多次发布后JVM会报OutOfMemoryError PermGen space,这个原因是由于这些容器在覆盖老项目后并不会释放老项目内存永久区的资源,久而久之,导致系统永久区内存溢出.为解决这个问题,我们只有通过发布后重新启动容器才能解决该问题.那有什么办法可以使容器在发布新项目后自动重启呢?重启过程中,

docker私有仓库registry部署

准备环境:两个装有Docker(版本1.12)的虚拟机虚拟机一:192.168.2.55 用户开发机虚拟机二:192.168.2.10 用作私有仓库 搭建私有仓库 首先在10机器上下载registry镜像 $ docker pull registry 下载完之后我们通过该镜像启动一个容器 $ sudo docker run -d --restart=always -p 5000:5000 -v /export/data/docker/registry:/tmp/registry registry

Docker将自己的镜像发布到个人私有仓库

Docker将自己的镜像发布到个人私有仓库 1.注册dockerhub账户 docker提供了一个类似于github的仓库dockerhub, 网址https://hub.docker.com/需要注册使用 2.在服务器上登录账号 docker login 3.修改正确的镜像名 注意要保证image的tag是账户名,如果镜像名字不对,需要改一下tag 语法是: docker tag 仓库名 用户名/仓库名 docker tag zero/centos-vim 用户名/centos-vim 4.推

git 私有仓库的创建以及使用

对于本地仓库的使用这里我将仓库与裸仓库放到同一个机器上 1 创建git用户 $ useradd git 2 修改密码 建议和登录密码相同(自定义) $ passwd git 3 修该配置文件 禁止shell登录 $ vim /etc/passwd git:x:1000:1000::/home/git:/bin/bash 修改为 $ git:x:1000:1000::/home/git:/bin/git-shell4 创建仓库 $ cd git  $ mkdir project.git5 初始化$