文章目录
- 背景
- 安装jenkins
- 安装插件
- 安装nodej插件
- Publish over SSH
- 系统配置
- Publish over SSH
- 全局工具配置
- 设置node
- 构建项目
- 创建一个freestyle的项目
- Discard old builds
- git命令报错Host key verification failed
- Build
背景
由于服务器上运行jenkins很卡,所以对于小公司而言,就不在服务器上跑jenkins,这两天公司正好有一台闲置的windows主机。就在这个上面尝试安装jenkins来进行自动打包,并且发布到linux服务器。
安装jenkins
安装步骤就不多说了,网上一大堆。
安装插件
安装nodej插件
Publish over SSH
系统配置
Publish over SSH
发布到远程服务器的时候要用,涉及到密钥,我就不截图了。
这里遇到一个巨坑,测试连接的时候报了:
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@60373f7]
因为我们生成密钥的openssh的版本过高的原因,而版本在检验密钥时还不支持这种格式。
通过指定格式来生成
ssh-keygen -m PEM -t rsa -b 4096
生成后阿里云ecs感觉还不奏效,可能是我设置了阿里云密钥对才能访问,绑定以后要重启才能生效
也可以试试把公钥写到.ssh 文件夹下的:authorized_keys
全局工具配置
设置node
构建项目
创建一个freestyle的项目
Discard old builds
我选择保留5天数据,最大保存10次build。我觉得够了,不需要更多了。
git命令报错Host key verification failed
处理git的时候遇到了Host key verification failed,Windows安装的jenkins,登录账户打开git bash,执行git pull等一系列命令,是可以成功执行,但是在Jenkins的网页中执行git的命令时,提示
d:\src>git pull
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
原因:Jenkins网页登录时,ssh连接使用的是Jenkins自身的账户,并不是我们登录电脑所使用的的账户,该账户下并没有ssh连接所需要的rsa文件,
解决方法:
成功执行git pull等命令的账户,在C:\Users\xxxxxx.ssh目录下(xxxxxx是登录电脑的用户名,不是git的用户名),会有id_rsa,id_rsa.pub,known_hosts文件,把这3个文件拷贝到C:\Windows\System32\config\systemprofile.ssh目录下,再执行jenkins就OK了
Build
即使是在windows的电脑上,执行shell也可以。如果build出错,可以先在workspace里面尝试用npm 或 yarn install一下,一般也会出错,可能是node版本问题、或者是package.json里面的某几个modual带有^导致。
\dist**表示该传送该目录下所有文件、目录
\dist*表示传送该目录下所有文件
sh脚本如下:
current=`date "+%Y-%m-%d%H:%M:%S"`
mv /opt/running/wms/dist /opt/running/wms/dist+"$current"
mv /root/dist /opt/running/wms/dist