jenkins发布普通项目、配置自动上线自动部署
1.以root用户运行jenkins是不专业的
刚开始用jenkins时用jenkins这个普通用户运行程序,始终无法连接到gitlab,报错如下:
先是把修改jenkins上的git路径,将git修改为/usr/local/git/bin/git
ll /usr/bin/git
/usr/bin/git -> /usr/local/git/bin/git
然后修改运行jenkins的用户:
vi /etc/sysconfig/jenkins
JENKINS_USER="root"
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
service jenkins restart
这样做,在只有内网IP的服务器上倒还行,但这可能会显示出你比较vegetable,改成root之后,不再报错:
2.配置凭据Credentials来打通gitlab
先恢复之前的状态,即:将运行用户改为jenkins,各目录属主、属组也改为jenkins,jenkins地址:http://10.0.0.25:8080
前提:
a.git版本不能过低
git --version
git version 2.7.4
b.从本机可以克隆gitlab仓库,即公钥已经拷贝到gitlab上了
ssh-keygen -t rsa -C "test@163.com"
cd /root/c++
git init
git config --global user.name "root"
git config --global user.email "test@163.com"
cat ~/.ssh/id_rsa.pub
# 这里是把root的公钥拷到了gitlab的管理员用户的SSH Keys中
git clone git@10.0.0.26:Linkdood-yw/prelogin.git
3.开始创建
a.目前要克隆的仓库地址是:git@10.0.0.26:Linkdood-yw/prelogin.git
b.选择ssh密钥和证书,然后选择直接输入,将私钥复制到下框中即可
c.选择刚才创建的证书,完成后,选择构建
d.选择构建,拉到最底部,选择使用shell脚本
脚本内容:cp -arf * /data/www
mkdir -p /data/www
chown -R jenkins.jenkins /data/www/
服务器/data/www目录,结果展示
小结:这部分的认证只是单方面的,即:在jenkins上创建了一个有gitlab用户私钥的凭据,每次拉取代码时,拿着这个凭据就可以获得gitlab的"信任".
4.gitlab更新代码以后,jenkins指定的project自动部署
a.前提:jenkins上已经安装了gitlab插件,这个插件允许GitLab触发Jenkins构建并在GitLab UI中显示它们的结果.
b.进入全局凭据页面
c.添加新凭证
d.从gitlab设置中将token复制过来,将复制的token粘贴到api token中,点击ok即可
e.系统全局配置中设置gitlab,并测试能否连通jenkins
f.打开项目,编辑项目的构建触发器
g.点击高级,点击Generate,生成项目token
h.在gitlab上配置连接jenkins,将jenkins的项目token与URL复制到gtilab中
i.保存之前进行测试,测试成功后保存即可
j.在gitlab上上传文件,进行测试即可
在日志中显示是 Started by GitLab push by Administrator,即表示自动集成成功
有些项目需要自动触发,有些不需要,需要时,再项目配置中设置--构建触发器即可.
参考博客-大牙啊:http://blog.51cto.com/13520772/2090056
参考博客-鹏岚:https://www.cnblogs.com/peng-lan/p/9605333.html
jenkins发布普通项目、配置自动上线自动部署的更多相关文章
- windows jenkins 发布 springboot项目脚本
windows jenkins 发布 springboot项目脚本 1.关闭现有程序 (按端口关闭) [与按应用关闭 二选一] @echo off for /f "tokens=1-5&q ...
- jenkins的构建项目配置
继http://www.cnblogs.com/yajing-zh/p/5109517.html搭建好jenkins系统配置之后,新建jenkins构建项目,用于自动化构建. 点击Jenkins界面左 ...
- apollo 项目配置中心开源框架部署
apollo 于我带来的好处 1. 项目之前的配置信息全部都在 resources 目录下,当然这里我使用的是 Spring Boot 搭建的项目.使用 apollo 后,配置信息全部转移到 apol ...
- Jenkins构建本地项目到服务器上自动部署的方法
博主原创,转载请注明. 最近在用Jenkins做项目的自动部署,由于项目需求,现在要在本地构建后再放到Tomcat里.以下是本地构建步骤: 名称填写好,下面的选项是可选的. 源码管理这里选择none. ...
- jenkins发布java项目
前言:这台jenkins服务器的环境是前几篇博客一步步做实验做过来,如果有想做这篇博客的实验的朋友,可以移驾去看一下前几篇博客,另外有看着博客做完的博友,可以在下方留言,证明我做的这些都是对的,有看着 ...
- Jenkins 发布.NetCore 项目
安装最新Jenkins及安装好相关git插件 启动jenkins服务,访问8080端口 这里就发布一个IdentityServer4程序 配置相关参数 设置Git源码管理配置 构建执行window 批 ...
- jenkins发布maven项目
(1)环境介绍 (2)配置ssh配置:系统管理--->系统设置 做这样的配置是方便打包之后war包或jar包复制到/tomcat/update目录下 (3)安装git 1丶不要使用1.8版本以下 ...
- 在IDEA上对SpringBoot项目配置Devtools实现热部署
spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtool ...
- 基于jenkins自动打包并部署Tomcat环境
传统网站部署的流程 在运维过程中,网站部署是运维的工作之一.传统的网站部署的流程大致分为:需求分析->原型设计->开发代码->提交代码->内网部署->内网测试->确 ...
随机推荐
- Python自定义一个数组类,支持数组之间的四则运算和其他常见方法
class MyArray: '''保证输入的内容是整型.浮点型''' def ___isNumber(self, num): if not isinstance(num, (int,float)): ...
- python并发编程之进程1(守护进程,进程锁,进程队列)
进程的其他方法 P = Process(target=f,) P.Pid 查看进程号 查看进程的名字p.name P.is_alive() 返回一个true或者False P.terminate( ...
- LightOj:1265-Island of Survival
Island of Survival Time Limit: 2 second(s) Memory Limit: 32 MB Program Description You are in a real ...
- js 页面刷新 每N秒钟刷新一次页面
<!-- 每5秒钟刷新一次页面 --> <script>setTimeout("location=location; ", 5000); </ ...
- Leetcode 416.分割等和子集
分割等和子集 给定一个只包含正整数的非空数组.是否可以将这个数组分割成两个子集,使得两个子集的元素和相等. 注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200 示例 1: 输入: [ ...
- tensorflow——MNIST机器学习入门
将这里的代码在项目中执行下载并安装数据集. 执行下面代码,训练.并评估模型: # _*_coding:utf-8_*_ import inputdata mnist = inputdata.read_ ...
- Android SDK Manager 报错:Connection to https://dl-ssl.google.com refused
Connection to https://dl-ssl.google.com refused. OR Failed to fectch URl https://dl-ssl.google.com/a ...
- [git 学习篇] 创建公钥
http://riny.net/2014/git-ssh-key/ 1 安装 windows gitbash msysgit是Windows版的Git,从https://git-for-wind ...
- 用CSV库一行行插入数据
语料团队之前都是手动标注文字的定位位置,今天写了个小脚本,帮他们批量生成文字对应的定位. 其中数据生成后,要生成csv文件,查看了下使用csv库. import csv row1 = [1,2,3,4 ...
- Difference between git remote add and git clone
http://stackoverflow.com/questions/4855561/difference-between-git-remote-add-and-git-clone git remot ...