一、说在前面的话
相信经过前面的几篇文章,你已了解如何构建并部署一个前端项目。
本文将以一个示例,给你一个直观的部署过程。
二、准备工作
由于我们使用的rsync工具,选择的是ssh部署方式,所以需要你把jenkins容器的公钥添加到目标机的授信列表。
没有授权,执行rsync时会报错:
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(228) [sender=3.2.3]
Build step 'Execute shell' marked build as failure
ssh-keygen -t rsa# 一直输入回车键即可,最后生成在目录~/.sshcat ~/.ssh/id_rsa.pub
在目标机上,添加jenkins容器的公钥:
vi ~/.ssh/authorized_keys
三、rsync工具
rsync有两种常用的认证方式,一种是rsync-daemon方式,另一种是ssh方式。
我们使用的是ssh方式来认证,上文的准备工作就是这样。
这里也不打算详细讲解工具怎么使用,参数该如何传值等等。
这里就一笔带过了。。
四、jenkins job
npm config set registry http://192.168.50.68:8081/repository/npm-xx-public/npm config set cache /var/jenkins_home/yarn-cachenpm install --forcenpm run build --verbosersync -av --delete ./dist/ root@192.168.50.15:/axxhcnk/xxweb/jds-jsr-web
目标机,发送完成:
五、总结
前端项目的打包部署就讲到这里了,编译到dist目录,然后发送到目标机。
不同的语言或项目,差别最大的就是编译了。
本系列文章,其实重点也是在CI上,CD比较简单。
其实还有重要的IM模块未涉及,后面有空再写。
另外,为什么会有本系列文章,也是因交接工作太简单,文档只有机器的密码。。
希望大家多写一些文档,少挖坑。(最近比较流行防御性编程,通过本系列文章,你可以看到运维也有防御性运维)