编辑推荐: |
本文主要详细介绍了\持续集成、持续交付、持续部署概念透析
, Git安装并上传代码至版本库, 安装jenkins, jenkins和git实现拉取代码并实现远程部署,
希望对您的学习有所帮助。
本文来自于CSDN,由火龙果软件Alice编辑推荐。 |
|
实验环境:
阿里云服务器 39.97.176.117 部署wordpress网站
腾讯云服务器 106.54.72.122 部署jenkins+git,实现拉取wordpress代码并远程部署到阿里云服务器
一、持续集成、持续交付、持续部署概念透析
持续集成:频繁的(一天多次的)将所有开发者的工作合并到主干上;各个开发者在git的不同分支进行一个大程序各个模块的开发,各个开发者每天都会将自己的代码合并到主干。
持续集成 的策略能够为我们带来哪些好处呢?
1.易于定位错误:每一次的代码集成都需要执行相关的测试工作,持续集成频繁的集成次数天然的将复杂的代码逻辑切割为了小块,也就使得每一次测试中遇到的错误能够更加容易的被定位;
2.易于控制开发流程:更为细致的工作提交也就意味着更容易判断当前的工作进度,这对于管理者规划开发流程而言提供了一个有效的参考,同时也为开发人员省下了汇报工作的时间;
3.易于CodeReview:对于大块工作的切分自然也有助于做 CodeReview;
4.易于减少不必要的工作:build 以及 test 过程的自动化可以为你节约一大票的时间,从而投入到有价值的工作中去。
持续交付:一种能够使得软件在较短的循环中可靠的发布的软件工程方法。
与持续集成相比,持续交付的侧重点在于交付,其核心对象不在于代码,而在于可交付的产物
持续部署:通过自动化部署的手段将软件功能频繁的进行交付。
二、Git安装并上传代码至版本库
1、安装Git
2、设置自己的全局信息
git config --global
user.name "吴晋丞"
git config --global user.email "wujincheng@163.com"
git config -l |
3、初始化git
想下我们git存文件代码总要找个目录存是吧,所以我们需要选择一个目录初始化成git
mkdir /git
cd git
git init
groupadd git
useradd -g git git #创建git用户,用于后面git clone下载的用户
chown -R git:git /git #给git用户权限 |
4、移动代码至工作区
mv wordpress-5.0.2-zh_CN.tar.gz
/git/ |
5、上传代码至暂存区
git add wordpress-5.0.2-zh_CN.tar.gz
git status #查看暂存区的内容 |
6、上传代码至版本库
git commit wordpress-5.0.2-zh_CN.tar.gz
-m "官方 wordpress-5.0.2"
git log #查看本分支版本库
git log -a #查看所有分支的版本库 |
注:git并没有占用任何端口号,连接git进行数据传输,是通过ssh实现的使用git用户身份从远程库下载文件或者代码。
三、安装jenkins
四、jenkins和git实现拉取代码并实现远程部署
1、下载两个插件
注:git插件是实现jenkins支持从git版本库远程拉取代码。
注:ssh插件是实现远程部署。
需要重启jenkins。
2、配置git插件
这就相当于做ssh免密登录一样,只不过是本地的root用户免密钥登录本地的git用户。
注意:id_rsa就是git用户的公钥的私钥。这里的root的公钥和我们这里的实验无关,这是我ansible做免密登录的,和另外一台云主机是一对。
把root目录下的私钥文件中的内容复制到:
述注:因为我这里用的云主机,所以你也可以不使用127.0.0.1,使用公网ip也可以,但速度很慢。
到现在为止,git插件就配置好了。
3、看看jenkins是否能拉取代码
点击构建项目,查看终端输出:
这样就成功了。
4、配置ssh插件
上面这个是系统设置
主要说下项目中的ssh的使用配置,实现远程部署:
注:上面这个配置是针对git版本库中存的是目录文件的,比如这里的wordpress就是一个目录文件,代码全在这个目录里面。下面这个针对的是直接就是一个文件的,不是目录。这里是一个wordpress的tar包。
我们jenkins把代码拉取到/root/.jenkins/workspace/jobname/目录下,我们现在需要把本地jenkins拉取的代码远程部署到阿里云服务器。
重点:
1.Source files : 源文件地址,相对地址 比 /root
/.jenkins/workspace/jobname/target/ xx.war 直接写成 target/xx.war
就行
2.Remove prefix : 这里指的是忽略前面的 target/
远程服务器直接显示文件就是xx.war
3.Remote directory : 远程服务器要保存的文件目录;这里就是指定阿里云服务器,你需要将拉取的代码部署到那个目录下
4.exec command ,一般来说不管上传到git,还是从git拉取的都是一个tar包,所以一般还需要执行命令进
|