Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins非常易于安装和配置,简单易用。
官网: https://jenkins.io
能够实现git+github+jenkins手动构建
能够实现git+gitlab+jenkins自动发布系统
应用场景:
传统方式
研发人员上传开发好的代码到github代码仓
需要将代码下载到nginx服务器部署
运维人员手动下载再部署或者使用脚本下载再部署
长期支持版本(LTS)
LTS(长期支持)版本每12周从常规版本流中选择,作为该时间段的稳定版本。
.war包是可以直接放在tomcat服务器自动解压使用的,jenkins安装需要jdk
重启之前可以看看jenkins服务状态,查看pid,如果变化了就代表插件导入成功
3,可以在下面地址下载插件(插件为.hpi结尾的文件),然后上传到jenkins.(这种方法适合单个插件安装)
插件地址: http://updates.jenkins-ci.org/download/plugins
安装完成之后浏览器访问jenkins服务器之后会提示如何获取密码
密码:
修改密码:
解压安装之后访问ip地址选择推荐安装的插件或者自己选择要安装的插件
安装失败也没啥事,可以继续用admin管理员账户登录
instance实例 URL可以写内网的主机域名或者公网ip
可以选择下载的插件点击Advanced导入 jenkins服务器
在开发者电脑生成密钥对ssh-keygen(前提是必须安装了git)
复制公钥:cat /root/.ssh/id_rsa.pub
再把仓库克隆到本地
git push -u origin master 上传到主分支
开发者push上传代码测试成功
nginx项目目录:/usr/share/nginx/html
在avaliable可用的插件路面下载安装publish over ssh
还可以在插件库里面直接下载之后点击advanced上传
安装git插件,git plugin是老版本的git插件
这种方式只是做了一个标识
最方便的办法是直接在jenkins服务器ssh-keygen
一定要复制私钥,因为是其他服务器免密登录jenkins服务器
在jenkin的系统设置里面找到publish over ssh 粘贴私钥
添加远程连接服务器nginx
在jenkins服务器ssh-keygen生成密钥对,之后cat /root/.ssh/id_rsa.pub复制公钥
粘贴到github的ssh设置里面
jenkins还要配置凭据,配置凭据是为了区分不同的项目拥有的ssh免密权限
所以jenkins必须添加一个ssh凭据,还要添加私钥,免密访问github
图中写错了,复制私钥给nginx服务器
手动在jenkins服务器上可以git clone 项目 ,但是jenkins的目的是自动构建项目,所以必须添加一个自动构建项目的ssh免密凭据,才能自动构建github的项目
在主页选择job工程然后选择立即构建,可以在workspace工作空间里面查看
可以看到所有的项目源码都上传过来了,再点击工程编号选择控制台输出output
在控制台输出可以看到整个工程的构建过程命令,构建过程其实就是往jenkins服务器克隆一个项目目录,然后再连接nginx,同步过去
这是手动在jenkins网页上构建工程
第一步:把开发者的公钥复制粘贴到gitlab
第二步:在gitlab创建一个项目auto_build_web ,然后再git clone 克隆项目到本地
第三步:安装jenkins对应的插件
点击系统管理里面的插件管理
如果installed里面没有安装就要在avaliable可用的里面安装
还可以在官网下载,或者去清华源下载
主要就是gitlab和gitlab hook两个插件
第四步:添加Jenkins服务器公钥到gitlab
jenkins产生root用户的ssh密钥对(步骤省略)
可以git clone 克隆gitlab仓库测试一下jenkins连接gitlab免密
第五步:jenkins创建自动构建工程
之前jenkins创建的是自动构建仓库auto_build_web
自动构建工程名称和仓库名称没有关系
General描述可以不用写,源码管理选择GIt
仓库url就是gitlab服务器的ip:root/仓库名称 凭据之前github配置过了 是一样的
build Trigger 创建触发器,当push发生改变的适合就触发jenkins克隆
点击Advanced之后创建token
token是令牌,创建token保存之后要保持一致
gitlab仓库发生push事件之后就会触发webhook去通知jenkins自动构建工程
Build
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
修改/bin/bash是为了切换到jenkins用户
回车两次之后查看ls .ssh/ 复制公钥到nginx服务器的root用户
第六步:配置jenkins和gitlab自动对接
点击gitlab的扳手图标,点击setting设置,点击network
配置gitlab自动连接jenkins
先找到项目
再找setting 选择intergrations
ssl安全设置一定要取消勾选,然后点击add webhook
最后就是在测试环境测试一下nginx家目录的文件是否会被rsync覆盖
(如果项目名称不一样就不会覆盖)覆盖前提是两个一样的文件比较
测试成功之后可以用蓝绿、滚动、金丝雀部署生产环境,看情况选择
1、当你熟练掌握了python的ABC,掌握了内功心法,却一直找不到一件趁手的兵器,你说烦人不烦人,这个时候pycham是你的不二选择.
2、 pycharm是啥? PyCharm是Python lDE(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时,提高其开发效率的工具,说白了,pycharm就是倚天剑,屠龙刀,给各位张无忌大佬门提供的写代码平台,有了这个平台,你可以轻松输入你的ABC,还能帮你自动补全口—些代码符号,还能理解你补充的含义,你就说良心不良心。
3、PythonCharm分为专业版(professional)和社区版(community),我们这边使用的是社区版(community)因为笔者是在是穷人
在windows上使用git,生成密钥对,把公钥复制到gitlab或者github
回车两次
根据提示复制一下公钥
把公钥粘贴到github或者gitlab
再复制gitlab的克隆url 粘贴到windows
克隆位置一定在git安装的目录
然后用pycharm开发工具对接git
复制粘贴gitlab仓库的路径
必须配置git安装目录下的bin/git.exe
最后可以自动构建项目到nginx服务器家目录