Jenkins的安装

可参考https://www.cnblogs.com/yangzp/p/12953810.html

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins -y

一、jenkins-执行命令路径

入门的操作:
左侧栏 “新建任务” --> 自由风格项目

勾选“丢弃旧的构建”,里面一般写5~7天即可。

拉到后面“构建” --> 执行shell

随后点立即构建。随后看“控制台输出”。在/var/lib/jenkins/workspace/freestyle-job有刚才创建的文件testFreestyle-job.txt

二、Jenkins脚本上传html静态代码

参考html静态代码,网站: https://gitee.com/kangjie1209/monitor 。
代码git clone https://gitee.com/kangjie1209/monitor.git
实验环境centos7 .
192.168.26.136 nginx web服务器。
192.168.26.137 Jenkins + gitlab ,开发代码存放库。

在137 上操作存放开发代码:

在gitlab上新创个project

# Push an existing folder   初始化并上传全部代码
cd /root/myCode/monitor-master
git init
git remote add origin git@192.168.26.137:test/monitormaster.git
git add .
git commit -m "Initial commit"
git push -u origin master

回到Jenkins页面,使用刚才创建的任务。在源码管理处,输入Repository URL。
这里遇到个报错:无法连接仓库 command “git ls-remote -h” xxxxxxx returned status code 128

检查思路有:
1、gitlab对应的账号是develop,有权限下载代码的。
2、gitlab和Jenkins安装在同一台机器,而且在此机器上是正常拉取代码的。
3、/var/log/Jenkins/Jenkins.log 好像没啥可用的消息
4、添加凭据credentials , 添加gitlab服务器上的私钥到SSH Username with private key。

参考:https://www.cnblogs.com/fengwenqian/p/12133854.html 《jenkins-通过ssh username with private key配置节点服务器》

A:为何这边Jenkins要求的是 私钥呢?  而gitlab那边要的是公钥呢 ?
B:公钥加密,私钥解密,你要去拉git,你就要有那个库的权限,权限就是那个key控制的呢


此时保存,立即构建。他会将代码拉取到workspace处。/var/lib/jenkins/workspace/freestyle-job

在137服务器编写推送脚本: 136和137已做ssh免密操作 ,
vim /server/scripts/deploy.sh ,大体意思就是将Jenkins下载的代码,复制到136的nginx处。

#!/bin/bash
CODE_DIR=/var/lib/jenkins/workspace/freestyle-job
WEB_DIR=/srv/nginx
IP=192.168.26.136
TIME=`date +%F-%H-%M-%S`cd $CODE_DIR && tar -zcf /tmp/web-${TIME}.tar.gz ./*
scp /tmp/web-${TIME}.tar.gz $IP:$WEB_DIRssh root@$IP "cd $WEB_DIR && mkdir web-${TIME}"
ssh root@$IP "cd $WEB_DIR && tar xf web-${TIME}.tar.gz -C web-${TIME} && rm -rf web-${TIME}.tar.gz"
ssh root@$IP "cd $WEB_DIR && rm -rf html && ln -s web-${TIME} html"


在本地执行无误后,去到Jenkins的freestyle-job的构建添加 sh /server/scripts/deploy.sh ,保存后立即构建。

但又报错了。Host key verification failed

参考:https://www.cnblogs.com/fawaikuangtu123/p/10316404.html 《Jenkins解决Host key verification failed》
根据上面链接博客,对Jenkins用户做了提权和发送自身公钥给136服务器。此时Jenkins用户已能免密登录136服务器, 继续执行,又报新的错误:但是执行脚本提示Permission denied,但最终构建结果是SUCCESS。

随后做的操作有: chmod 777 deploy.sh ,而且上面Jenkins不是提权了吗?怎么还没权限?看网上说执行的时候他是使用Jenkins用户来执行的。

看样子,切到Jenkins用户执行脚本,报错信息跟Jenkins控制台的一样。又搞了半天
有点迷 为什么执行的是。jenkins@192.168.26.136’s password: ,明明写的是sudo ssh root@$IP "cd $WEB_DIR 。
最终: 使用 sudo sh deploy.sh 就好了。


都OK之后,就可以模拟开发上传最新代码,之后执行Jenkins构建。部署最新代码了。

=分割线=
根据这篇博客 https://www.cnblogs.com/fawaikuangtu123/p/10295571.html , 看来运作时是用Jenkins用的,他全部改成root用户来运行构建Jenkins任务。

参考博客:https://www.cnblogs.com/fawaikuangtu123/category/1386781.html 《Jenkins 随笔》

蛇皮来到的,别人视频5分钟的内容,照模样实践,出错不断 -。-
END

Jenkins学习(执行命令路径,脚本上传静态html代码)(一)相关推荐

  1. Windows VS2017 编译 libssh2 1.7.0(执行命令、文件上传、下载)

    下载安装 OpenSSL 要编译 libssh2,必须先编译好 OpenSSL 的静态库,直接从 http://slproweb.com/products/Win32OpenSSL.html 下载已经 ...

  2. 【信安学习笔记三】文件上传

    个人学习参考用笔记 目录 前言 一.文件上传 **定义** **危害** **查找及判断** **分类** 二.验证与绕过 前端防护 后端防护 (一)黑名单 (二)白名单 (三)内容及其他 三.漏洞 ...

  3. [网络安全学习篇60]:文件上传

    引言:我的系列博客[网络安全学习篇]上线了,小编也是初次创作博客,经验不足:对千峰网络信息安全开源的视频公开课程的学习整理的笔记整理的也比较粗糙,其实看到目录有300多集的时候,讲道理,有点怂了,所以 ...

  4. linux执行命令脚本,Linux - 执行命令与脚本

    01 - Linux执行多条命令 方法1:在命令行下可以一次性粘贴多条语句,shell会依次执行并输出结果 方法2:在一个命令行中,用分号将各个命令隔开或者使用&&连接各个命令 示例: ...

  5. Linux环境Shell脚本上传下载阿里云OSS文件

    为什么80%的码农都做不了架构师?>>>    Linux环境Shell脚本上传下载阿里云OSS文件 背景 工作中由于我们项目生成的日志文件比较重要,而本地磁盘空间有限存储不了多久, ...

  6. Xcode + cocoapods + jenkins + fastlane + git + 蒲公英自动化打包 上传

    Xcode + cocoapods + jenkins + fastlane + git + 蒲公英自动化打包 上传 构建自动化步骤为: 1. Xcode 有Xcode 内部提供的打包命令来打包完成代 ...

  7. 使用bat脚本上传文件到Linux服务器

    前言 本文中运行环境为Win10, 脚本类型为bat脚本, 上传文件使用WinScp客户端进行上传, 下面开始教程 一. 安装WinScp客户端 WinScp客户端官方链接: https://wins ...

  8. Centos配置Jenkins实现Android自动打包并上传到蒲公英

    本篇文章来自 徐永红  的投稿,给大家讲解Centos配置Jenkins实现Android自动打包并上传到蒲公英,希望对大家有所帮助. 徐永红 的博客地址: https://xuyonghong.cn ...

  9. Windows使用bat脚本上传文件到Linux(免密上传)

    在工作中接到了使用bat命令定时上传文件到Linux的需求,总是需要手动输入密码挺麻烦,搞了两个比较简单的免密上传的方法.一.使用OpenSSH.二.使用FTP 一.使用OpenSSH bat内容在: ...

最新文章

  1. Python 算术运算符
  2. linux下启动tlq命令,UNIX/LINUX命令
  3. RedHat linux inittab详解
  4. 9.mybatis动态SQL标签的用法
  5. 解决TCP网络传输“粘包”问题
  6. LeetCode LFU Cache
  7. 【视频】测试经理必修课
  8. 【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入代码示例 )
  9. html/css学习笔记(一)
  10. OSChina 周五乱弹 —— 你专业是啥,被叫去搬砖了吗?
  11. [20151112]ORA-01450?3215?.txt
  12. mysql高可用方案之主从架构(master-slave)
  13. php类的静态属性,php学习之类与对象的类的静态属性
  14. SQL数据库置疑问题的处理方法
  15. ucloud的弹性计算
  16. 上市公司环境数据集:环境绩效明细表、排放明细表、资源消耗明细表等多项指标数据
  17. android 谷歌地图显示空白,.android谷歌地图显示空白网格与缩放选项
  18. vscode设置不显示某些文件或文件夹
  19. 手机端如何阻止苹果浏览器输入框默认放大事件
  20. aac转化为mp3,详细的转换步骤

热门文章

  1. Leetcode-1598. 文件夹操作日志搜集器
  2. Go入门系列(十八) 反射、包和测试工具
  3. 百度地图定位失败,显示经纬度(4.9E-324,4.9E-324),错误码-162
  4. 码分复用:为什么可以通过收到的码片序列与站的序列做内积的值判断每个站是否发送数据及数据值
  5. 辛普森复合求积公式matlab,MATLAB数值分析实验二(复合梯形、辛普森和龙贝格求积,以及二重积分计算等).doc...
  6. python做动态表情包下载_用 Python 开发一个【GIF表情包制作神器】
  7. 一篇文章搞懂 HDFS ACLs权限管理
  8. Ubuntu切换窗口,快速返回桌面
  9. Jenkins持续集成入门到精通
  10. bat中rar压缩命令