使用Jenkins搭建前端构建环境

前期准备

1.CentOS服务器
2.Jenkins
3.github账号
4.Nginx

这里Nginx的配置就不多说了,有兴趣的话可以参考前面的文章

同台服务器上nginx配置多个服务站点共用80端口

服务器环境配置

先将Jenkins网站中的Jenkins存储库添加到包管理器中

1
2
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

下载安装java和git依赖包

1
2
yum install java
yum install git

登录服务器生成ssh key

1
2
3
4
5
// 设置提交用户名和邮箱
git config --global user.name "xxx"
git config --global user.email "xxxx@qq.com"
// 开始生成key
ssh-keygen -t rsa -C "yourEmail@xxx.com"

一路回车后就成功生成了

测试一下ssh是否能成功使用
1
ssh github.com

出现下面情况代表可以正常使用

最后:拷贝服务器中的公钥添加到github中

什么是jenkins呢?

Jenkins是一个独立的开源自动化服务器,可用于自动执行与构建,测试,交付或部署软件相关的各种任务。
Jenkins可以通过本机系统软件包,Docker安装,甚至可以由安装了Java Runtime Environment(JRE)的任何机器独立运行。

安装Jenkins

1
yum install jenkins

Jenkins配置

1
2
// 进入Jenkins配置文件地址:
vim /etc/sysconfig/jenkins
Jenkins配置文件中的几个重要的参数
1
2
3
4
JENKINS_HOME="/var/lib/jenkins" // Jenkins存储配置和工作的目录
JENKINS_USER="root" // 将字段值修改root权限
// 注意:Jenkins默认的端口号是8080,需要修改的可以在这里修改
JENKINS_PORT="8082" // Jenkins端口号

启动Jenkins

1
service jenkins restart

启动成功后我们在浏览器中输入ip地址和端口号,进入解锁页面

输入密码后,继续进入下一步,进入新手页面。

选择第一个推荐插件安装

安装中…

创建管理员用户

实例配置

创建任务

构建一个自由风格的软件项目

安装两个插件

系统管理>插件管理>可选插件中搜索并安装,安装成功后需要重启

1
2
3
4
// 部署项目时需要执行node安装依赖
1.NodeJS Plugin
// 实现jenkins将服务器构建打包好的war包自动发布到应用服务器,并部署运行
2.Publish Over SSH

进入 系统管理 => 系统设置页面配置

Jenkins Location

Jenkins服务器地址

Publish over SSH配置

Publish over SSH

这里有一点容易出错:
Jenkins服务器(A)
应用服务器(B)

应用服务器(B)上创建~/.ssh文件夹和~/.ssh/authorized_keys文件,并将jenkins服务器(A)的公钥id_rsa.pub中的内容复制到authorized_keys文件

应用服务器上重启ssh服务,service sshd restart

现在jenkins服务器可免密码直接登陆应用服务器

开始任务配置

源码管理的凭据和 api的凭据不是一样的,apiv5的凭据是插件调用码云接口使用的,而源码管理的凭据是jenkins git插件要求的,这> 个凭据格式是用户名密码,如果用的是http的协议需要在凭据管理中再配置一个码云用户名密码的凭据,这样才能选上,如果是ssh 的话> 需要jenkins的机器的ssh key 加入到码云账号中才行

凭据 》系统 》添加域

构建环境

系统管理 》全局工具配置 》NodeJS;如果不添加nodejs在下面 NodeJS Installation 中将不会出来内容

构建

选择Send build artifacts over SSH配置

构建后操作

测试一下部署发布


完美部署

暂时先写这么多吧,有空会继续更新…

Jenkins系列

1.使用Jenkins搭建前端构建环境

2.Jenkins安装插件动态获取git分支

3.使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成

坚持原创技术分享,您的支持将鼓励我继续创作!