既然是持续集成,对代码进行构建,我们得获取代码仓库的内容,这里选择我们搭建的gitlab服务器

1.开发工程师的机器

1. 在window上生成ssh-key

$ ssh-keygen.exe -t rsa -C 'www.yuchaoit.cn'

2.添加到代码仓库github/gitlab都玩一玩,公司用这俩居多

gitlab上添加该机器的ssh-key允许上传代码,咱这里就不区分多个账户,多个权限了,都先基于root账户,实现部署流程,理解jenkins是怎么工作的。

2.gitlab新建项目

3.开发提交代码

1.准备好代码

这里利用python程序,flask代码做实验

# coding:utf-8

from flask import Flask
app = Flask(__name__) @app.route('/')
def index():
return '<h1>Hello 超哥带你学linux www.yuchaoit.cn</h1>' if __name__ == '__main__':
app.run()

2.克隆gitlab代码仓库到本地

1.先设置git身份
Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop
$ git config --global user.name "laoliu" Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop
$ git config --global user.email "yc_uuu@163.com" 2.克隆代码 Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop
$ git clone git@10.0.0.99:root/my_flask.git
Cloning into 'my_flask'...
The authenticity of host '10.0.0.99 (10.0.0.99)' can't be established.
ED25519 key fingerprint is SHA256:fsFB+VUXvu9atyktELhNhs0zzRdli9XbqehOn2We9yo.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.0.99' (ED25519) to the list of known hosts.
warning: You appear to have cloned an empty repository. 3.开发代码,进行提交,推送到代码仓库 Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ ls
my_app.py Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ cat my_app.py # coding:utf-8 from flask import Flask
app = Flask(__name__) @app.route('/')
def index():
return '<h1>Hello 超哥带你学linux www.yuchaoit.cn</h1>' if __name__ == '__main__':
app.run(host="0.0.0.0") 4.版本提交,推送gitlab
$ git add . $ git commit -m 'my_app.py 首次开发'
[master (root-commit) 3e973ff] my_app.py 首次开发
1 file changed, 11 insertions(+)
create mode 100644 my_app.py Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 20 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 402 bytes | 402.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To 10.0.0.99:root/my_flask.git
* [new branch] master -> master
branch 'master' set up to track 'origin/master'.

4.检查代gitlab码仓库

5.配置jenkins的job获取代码仓库

给jenkins服务器安装git
[root@jenkins-100 ~]#yum install git -y

添加jenkins服务器的ssh-key到gitlab服务器
[root@jenkins-100 ~]#ssh-keygen -t rsa -C "www.yuchaoit.cn"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:WRnTFIqkwh7IXB2gWyFkrkE1BLwx9bYHtD9YRYFdbgk www.yuchaoit.cn
The key's randomart image is:
+---[RSA 2048]----+
|.+O=++..=E=+o. |
|.O *+.o+.oo=o |
|. X ==... ++ |
| + +.o* o. |
|. . .o +S |
| . . |
| |
| |
| |
+----[SHA256]-----+ [root@jenkins-100 ~]#cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDA9C597NnGpdyRYkDtF4zQmTa+bRxXqll3XX7LJDjLfsgfUZbfolj0KwkmdIvpQjecDrKff33bOIhGQQ64okmQlKPyp+iISO6sRCH1p2VhZNFEWOeBRtzA+TFrLX4WeVFJFg2IuOE1cFuKGESBC7pqZZf4H12QaNCunLwWLTrqoUGvfW0+rXOBGaXPW1yNpTMevnPkN81ZKiqhONtUE+suYwwYi8zgi54CXZZBNEcyXhZH2gLLser/hy+16vqYZ65enGBcfPYBNSHt35DcNs/Qs6nLpT/UBxblQwFI5ktq7C6cm6igYVAuVpomDNdD+LCjvRhijQBCbxlvHwXcO9Tl www.yuchaoit.cn

添加jenkins的认证凭证,使用自己的私钥即可


至此,jenkins就可以下载gitlab的代码了。

试试看能下载什么,点击构建

6.开发脚本实现项目部署

注意是,jenkins > 目标机器(web-7测试)

# 注意免密登录了
ssh-copy-id root@10.0.0.7

部署代码

若是做更多考虑,可以先成脚本,然后远程去调用。



#!/bin/bash
# author: www.yuchaoit.cn # 发送代码到目标机器
cd /var/lib/jenkins/workspace/my_flask && scp my_app.py root@10.0.0.7:/opt/ # 给远程机器部署python3环境,代码运行环境
ssh root@10.0.0.7 "yum install python3 python3-devel python3-pip"
ssh root@10.0.0.7 "pip3 install flask" # 远程启动进程,后台运行
# 重启进程
ssh root@10.0.0.7 "pkill python3" ssh root@10.0.0.7 "nohup /usr/bin/python3 /opt/my_app.py >/dev/null 2>&1 &"

7.测试访问web7的flask项目

8.完成项目更新(鼠标一点,自动更新,操心啥啊)

让开发去写代码就好了


Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ vim my_app.py Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ git add .
warning: in the working copy of 'my_app.py', LF will be replaced by CRLF the next time Git touches it Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ git commit -m '更新代码'
[master 5ff3d74] 更新代码
1 file changed, 1 insertion(+), 1 deletion(-) 推送代码 Sylar@DESKTOP-G6C412R MINGW64 ~/Desktop/my_flask (master)
$ git push -u origin master
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 20 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 301 bytes | 301.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
To 10.0.0.99:root/my_flask.git
3604269..5ff3d74 master -> master
branch 'master' set up to track 'origin/master'.

9.鼠标一点,下班下班

jenkins结合远程仓库的更多相关文章

  1. 使用Jenkins自带功能(不用shell)构建Docker镜像并推送到远程仓库

    意义: 一开始实现这个目的是在Jenkins中使用的shell脚本,也就是如下的这个: bash # 进入到生成jar包的根目录 cd ${WORKSPACE}/${module_filename} ...

  2. 使用Jenkins的Git Parameter插件来从远程仓库拉取指定目录的内容

    更换插件安装源 系统管理---插件管理---高级---升级站点,把默认的插件下载地址换成下面这个: https://mirrors.tuna.tsinghua.edu.cn/jenkins/updat ...

  3. Jenkins拉取Git远程仓库中指定目录至本地指定目录

    Jenkins拉取源码是非常实用的操作,比如每天在跑自动化测试前,拉取Git远程仓库中最新的脚本至本地.那么,Jenkins如何拉取Git远程仓库中指定目录至本地指定目录呢?下面来看看具体的设置方法. ...

  4. git jenkins 基本部署之git远程仓库

    1.git远程仓库如何使用? 实战一.如何将本地仓库与远程Gitee进行关联?        1.注册gitee        2.创建一个远程仓库?        3.配置使用远程仓库       ...

  5. Jenkins搭建GitHub仓库

    一.安装Jenkins 二.安装Git 三.注册GitHub账号 以上都很简单,网上资源丰富 四.新增GitHub远程仓库,连接到本地Git,这样就可以实现代码提交到GitHub中了 ----自行找资 ...

  6. git清空远程仓库

    需求背景:因为用jenkins连接了git仓库,有时候job构建出现问题,需要排查问题,但是呢,真实的项目代码量非常pang大,所以就需要建1个测试仓库,使用最少量的代码能复现自己的问题就好. 这就需 ...

  7. 使用github远程仓库

    经过几天对github的研究,终于把自己想完成的给解决了,发现google真的有很多解释,但是很多也会出现一些bug,对于初学者真的很多烦恼,所以整理一份,能给初识github的你有所帮助 一,首先, ...

  8. git如何切换远程仓库

    场景 工作时可能由于git仓库的变动,需要我们将已有代码切换仓库.比如我们先用的gitlab,现在要切换到github上. 迁移命令 代码迁移其实也很简单. 先保证本地代码是最新代码 $ git pu ...

  9. 小丁带你走进git世界五-远程仓库

    一.文件,指令讲解 首先讲一下远程仓库和本地仓库在文件上面的区别,首先我们来看下对比图(当然这里说的区别是在于.git文件下面的文件内容,至于里面内容我们不会关注)這裡我们进行了相同的操作就是本地仓库 ...

  10. 创建Github远程仓库

    如何创建github远程仓库 首先, 你有先到github网站注册账号https://github.com 然后创建一个项目, Create a new repository 之后在在Reposito ...

随机推荐

  1. 力扣405(java)-数字转换为十六进制(简单)

    题目: 给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字母(a-f)都必须是小写.十六进制字符串中不能包含多余的前导零.如果要转 ...

  2. 如何可视化编写和编排你的 K8s 任务

    简介: 通过任务调度 SchedulerX 来调度你的 K8s 任务,能够降低学习成本,加快开发效率,让你的任务失败可报警,出问题可排查,打造云原生可观测体系下的可视化 K8s 任务. 作者:学仁   ...

  3. 技术揭秘:从双11看实时数仓Hologres高可用设计与实践

    ​简介:本文将会从阿里巴巴双11场景出发,分析实时数仓面临的高可用挑战以及针对性设计. 2021年阿里巴巴双11完美落下为帷幕,对消费者来说是一场购物盛宴,对背后的业务支撑技术人来说,更是一场年度大考 ...

  4. 京东:Flink SQL 优化实战

    简介: 本文着重从 shuffle.join 方式的选择.对象重用.UDF 重用等方面介绍了京东在 Flink SQL 任务方面做的优化措施. 本文作者为京东算法服务部的张颖和段学浩,并由 Apach ...

  5. [FAQ] 前端 点击事件或链接 如何打开两个外部窗口

    点击链接支持 blank,但无法打开多个,考虑使用绑定 click 事件的方式. window.open 的采用需要有主动点击的情况,否则浏览器可能拦截. 如果是外部窗口,在点击时,优先使用 wind ...

  6. 纯JS实现多张图片无缝滚动和多张图片上下滚动的效果--JavaScript实例集锦(初学)

    我们会看到很多的网站上会使用多张图片无缝滚动的效果. 下面我就介绍几种纯JS实现多张图片的无缝滚动,并实现鼠标移到图片上运动停止的效果,可以控制图片左右滚动.1.效果展示: 代码实现: <!DO ...

  7. 4G EPS 中的 User Plane

    目录 文章目录 目录 前文列表 用户平面 EPS UP 中的 GTP-U F-TEID 的组成 UE IP 数据包在 GTP-U Tunnel 上的封装流程 GTP-U 与 EPS Bearer MM ...

  8. vue 常用类库引用

    js 端生成guid 类库一:https://github.com/uuidjs/uuid        npm i uuid --save 类库二:https://github.com/LiosK/ ...

  9. ef.core 事务不回滚的我遇到的一种情况分享

    比如有几个Repository:_storeRep,_inventoryRep,_storeItemRep.基类封装有BeginTransaction():   using(var trans=_st ...

  10. synchronized锁升级过程

    更过博文请关注:https://blog.bigcoder.cn JDK 1.6后锁的状态总共有四种,级别由低到高依次为:无锁.偏向锁.轻量级锁.重量级锁,这四种锁状态分别代表什么,为什么会有锁升级? ...