持续集成之jenkins

一、了解Jenkins

Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins非常易于安装和配置,简单易用。

官网: https://jenkins.io
能够实现git+github+jenkins手动构建

能够实现git+gitlab+jenkins自动发布系统
 

应用场景:

持续集成之jenkins_第1张图片

 传统方式

研发人员上传开发好的代码到github代码仓

需要将代码下载到nginx服务器部署
运维人员手动下载再部署或者使用脚本下载再部署
 

下载jenkins:

长期支持版本(LTS)
LTS(长期支持)版本每12周从常规版本流中选择,作为该时间段的稳定版本。

 .war包是可以直接放在tomcat服务器自动解压使用的,jenkins安装需要jdk

持续集成之jenkins_第2张图片

持续集成之jenkins_第3张图片

持续集成之jenkins_第4张图片

 重启之前可以看看jenkins服务状态,查看pid,如果变化了就代表插件导入成功

 3,可以在下面地址下载插件(插件为.hpi结尾的文件),然后上传到jenkins.(这种方法适合单个插件安装)

插件地址: http://updates.jenkins-ci.org/download/plugins

安装jenkins

持续集成之jenkins_第5张图片

安装完成之后浏览器访问jenkins服务器之后会提示如何获取密码持续集成之jenkins_第6张图片

 

密码:

 修改密码:

持续集成之jenkins_第7张图片

 

jenkins插件导入方法

解压安装之后访问ip地址选择推荐安装的插件或者自己选择要安装的插件

安装失败也没啥事,可以继续用admin管理员账户登录

持续集成之jenkins_第8张图片

 持续集成之jenkins_第9张图片

 instance实例  URL可以写内网的主机域名或者公网ip

持续集成之jenkins_第10张图片

可以选择下载的插件点击Advanced导入 jenkins服务器

 

git+github+jenkins

持续集成之jenkins_第11张图片

 创建github仓库

持续集成之jenkins_第12张图片

 在开发者电脑生成密钥对ssh-keygen(前提是必须安装了git)

复制公钥:cat /root/.ssh/id_rsa.pub

再把仓库克隆到本地

持续集成之jenkins_第13张图片

 增加项目代码持续集成之jenkins_第14张图片

 git push -u origin master  上传到主分支

开发者push上传代码测试成功

准备nginx服务器

 nginx项目目录:/usr/share/nginx/html

持续集成之jenkins_第15张图片

 

jenkins私钥配置

持续集成之jenkins_第16张图片

 直接搜索插件名称

在avaliable可用的插件路面下载安装publish over ssh持续集成之jenkins_第17张图片

 

 还可以在插件库里面直接下载之后点击advanced上传

持续集成之jenkins_第18张图片

 安装git插件,git plugin是老版本的git插件

 

在jenkins服务器上生成空密码密钥对

 这种方式只是做了一个标识

最方便的办法是直接在jenkins服务器ssh-keygen

 一定要复制私钥,因为是其他服务器免密登录jenkins服务器

持续集成之jenkins_第19张图片在jenkin的系统设置里面找到publish over ssh 粘贴私钥

持续集成之jenkins_第20张图片

 添加远程连接服务器nginx

 

持续集成之jenkins_第21张图片配置jenkins免密访问github

在jenkins服务器ssh-keygen生成密钥对,之后cat /root/.ssh/id_rsa.pub复制公钥

粘贴到github的ssh设置里面

jenkins还要配置凭据,配置凭据是为了区分不同的项目拥有的ssh免密权限

所以jenkins必须添加一个ssh凭据,还要添加私钥,免密访问github

持续集成之jenkins_第22张图片

 图中写错了,复制私钥给nginx服务器

持续集成之jenkins_第23张图片

 手动在jenkins服务器上可以git clone 项目 ,但是jenkins的目的是自动构建项目,所以必须添加一个自动构建项目的ssh免密凭据,才能自动构建github的项目持续集成之jenkins_第24张图片

配置jenkins构建流程持续集成之jenkins_第25张图片

 

 源码管理配置需要等一分钟持续集成之jenkins_第26张图片

 

 在主页选择job工程然后选择立即构建,可以在workspace工作空间里面查看

持续集成之jenkins_第27张图片

 可以看到所有的项目源码都上传过来了,再点击工程编号选择控制台输出output

持续集成之jenkins_第28张图片

 在控制台输出可以看到整个工程的构建过程命令,构建过程其实就是往jenkins服务器克隆一个项目目录,然后再连接nginx,同步过去

 

 这是手动在jenkins网页上构建工程

jenkins集成部署流程图

持续集成之jenkins_第29张图片

自动发布系统

第一步:把开发者的公钥复制粘贴到gitlab

持续集成之jenkins_第30张图片

持续集成之jenkins_第31张图片

 第二步:在gitlab创建一个项目auto_build_web ,然后再git clone 克隆项目到本地 

持续集成之jenkins_第32张图片

持续集成之jenkins_第33张图片

第三步:安装jenkins对应的插件

点击系统管理里面的插件管理

持续集成之jenkins_第34张图片

 如果installed里面没有安装就要在avaliable可用的里面安装

还可以在官网下载,或者去清华源下载

主要就是gitlab和gitlab hook两个插件

第四步:添加Jenkins服务器公钥到gitlab

jenkins产生root用户的ssh密钥对(步骤省略)

可以git clone 克隆gitlab仓库测试一下jenkins连接gitlab免密

第五步:jenkins创建自动构建工程

之前jenkins创建的是自动构建仓库auto_build_web 

持续集成之jenkins_第35张图片

自动构建工程名称和仓库名称没有关系

General描述可以不用写,源码管理选择GIt

仓库url就是gitlab服务器的ip:root/仓库名称  凭据之前github配置过了 是一样的

持续集成之jenkins_第36张图片

build Trigger 创建触发器,当push发生改变的适合就触发jenkins克隆

持续集成之jenkins_第37张图片

 点击Advanced之后创建token

token是令牌,创建token保存之后要保持一致

 gitlab仓库发生push事件之后就会触发webhook去通知jenkins自动构建工程

持续集成之jenkins_第38张图片

 Build

持续集成之jenkins_第39张图片

 持续集成之jenkins_第40张图片持续集成之jenkins_第41张图片

echo $PATH查看一下环境变量是否有/usr/bin  如果有,shell脚本就不用加绝对路径了

 配置jenkins服务器上的jenkins用户

 修改usermod -s  shell权限位可以登录

shell脚本用的root用户其实是nginx的root用户,因为nginx服务器没有jenkins用户

只能把jenkins服务器的公钥复制给nginx服务器   ssh-copy-id -i root@nginx服务的ip

持续集成之jenkins_第42张图片

 修改/bin/bash是为了切换到jenkins用户

 回车两次之后查看ls  .ssh/  复制公钥到nginx服务器的root用户

 第六步:配置jenkins和gitlab自动对接

持续集成之jenkins_第43张图片

 点击gitlab的扳手图标,点击setting设置,点击network

持续集成之jenkins_第44张图片

 配置gitlab自动连接jenkins

先找到项目

持续集成之jenkins_第45张图片

 再找setting 选择intergrations

持续集成之jenkins_第46张图片

 ssl安全设置一定要取消勾选,然后点击add webhook 

持续集成之jenkins_第47张图片

 最后就是在测试环境测试一下nginx家目录的文件是否会被rsync覆盖

(如果项目名称不一样就不会覆盖)覆盖前提是两个一样的文件比较

测试成功之后可以用蓝绿、滚动、金丝雀部署生产环境,看情况选择

真实的IDE集成开发环境流程

pycharm简介


1、当你熟练掌握了python的ABC,掌握了内功心法,却一直找不到一件趁手的兵器,你说烦人不烦人,这个时候pycham是你的不二选择.
2、 pycharm是啥? PyCharm是Python lDE(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时,提高其开发效率的工具,说白了,pycharm就是倚天剑,屠龙刀,给各位张无忌大佬门提供的写代码平台,有了这个平台,你可以轻松输入你的ABC,还能帮你自动补全口—些代码符号,还能理解你补充的含义,你就说良心不良心。
3、PythonCharm分为专业版(professional)和社区版(community),我们这边使用的是社区版(community)因为笔者是在是穷人

持续集成之jenkins_第48张图片

 

在windows上使用git,生成密钥对,把公钥复制到gitlab或者github 

持续集成之jenkins_第49张图片

 持续集成之jenkins_第50张图片

回车两次

根据提示复制一下公钥

持续集成之jenkins_第51张图片

 把公钥粘贴到github或者gitlab

再复制gitlab的克隆url 粘贴到windows

持续集成之jenkins_第52张图片

 持续集成之jenkins_第53张图片

 克隆位置一定在git安装的目录

然后用pycharm开发工具对接git

持续集成之jenkins_第54张图片

 

复制粘贴gitlab仓库的路径

持续集成之jenkins_第55张图片

 必须配置git安装目录下的bin/git.exe

持续集成之jenkins_第56张图片

 提交push事件持续集成之jenkins_第57张图片

 最后可以自动构建项目到nginx服务器家目录

你可能感兴趣的:(jenkins,ci/cd,运维)