趁着双十一入手了一个云端服务器,为了使本身写的前端代码更方便部署,便使用了 Jenkins 进行自动化部署。html
本篇文章是对此次实践的一个记录,同时也但愿经过这篇文章,能帮助更多的同窗快速部署本身的前端代码,提升开发效率。前端
CentOS 7.5
;在正式实践以前,咱们先来了解一下整个自动化部署的流程。java
了解了整个流程以后咱们就开始实践吧~node
首先咱们经过 ssh 链接服务器,一般第一次使用的帐号都为 root 帐号,咱们最好再建立新的用户并赋予新用户 sudo 权限。nginx
adduser user1 # 1.建立用户user1
passwd user1 # 2.设置user1的密码
chmode -v u+w /etc/sudoers # 3.增长sudoers文件的写权限,默认为只读权限
vi /etc/sudoers # 4.修改sudoers文件,按i进入编辑模式,找到下面对应行,进行修改,修改完成后,按esc推出编辑模式,并输入 :wq 保存退出
-----------------------------------------------------------------------------------
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
user1 ALL=(ALL) ALL (添加这一行)
-----------------------------------------------------------------------------------
chomd -v u-w /etc/sudoers # 5.删除sudoers的读写权限
复制代码
如今咱们就可使用用户 user1 进行登陆了,而且 user1 拥有了 sudo 权限。git
经过如下命令进行 Java 的安装,经过javac
命令能够验证安装是否成功。shell
yum -y install java-1.8.0-openjdk-devel
复制代码
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 -y install jenkins
复制代码
systemctl start jenkins.service
chkconfig jenkins on
复制代码
经过访问 IP地址:8080
来验证启动是否成功。cat /var/lib/jenkins/secrets/initialAdminPassword
复制代码
install suggested plugins
安装插件;如今若是在 Jenkins 中执行 Shell 脚本,Jenkins 并不具有相应权限,须要sudo vi /etc/sysconfig/jenkins
,找到 JENKINS_USER 并将其修改成 root。npm
JENKINS_USER="root"
复制代码
以后,修改 Jenkins 相关文件夹用户权限。bash
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
service jenkins restart
复制代码
由于须要从 git 仓库拉取代码,因此须要安装 git。服务器
sudo yum install git
复制代码
由于须要对前端代码进行构建,须要用到 npm,因此须要对 node 进行安装,默认安装的node版本会比较低,可使用 nvm 安装高版本的 node,本文再也不赘述。
sudo yum install nodejs
复制代码
由于从 Gitee 进行部署须要配置对应的部署公钥,因此先生成对应公钥。
ssh-keygen -t rsa -C "user1@123.com"
复制代码
根据提示完成三次回车便可生成 ssh key, 经过 cat ~/.ssh/id_rsa.pub
便可查看服务器的公钥。
建立代码仓库,上传本身的代码。
点击仓库的管理
,在侧边栏选择部署公钥管理
,点击添加公钥
,复制4.7中的服务器公钥,进行添加。
第一步:点击左侧边栏New Item
新建项目;
ok
按钮;
Source Code Management
中,选择
Git
,输入对应的仓库地址,并在
Branches to build
中填写须要编译的分支;
第四步:在 Build Environment
中选中Provide Node & npm bin/ folder to PATH
;
Build
中选择
Execute shell
;
第六步: 编写 shell 脚步,我为了方便起见,只是安装了如下npm包,而后进行编译,最后将编译出来的dist文件夹移动到了/work
中;
build
进行编译,成功以后应该能够在/work文件夹中看到咱们编译出来的静态文件了。
sudo yum install nginx -y
复制代码
nginx
命令启动Nginx此时,访问 IP 地址会显示 Nginx 的测试页面。
nginx.conf
文件经过sudo vi /etc/nginx/nginx.conf
进行编辑,为方便起见,主要修改了server
。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root /work/dist; # 编译出的静态文件的地址
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
复制代码
修改完成以后,咱们还须要作如下两步操做。
sudo nginx -t // 验证书写是否正确
nginx -s reload // 重启Nginx
复制代码
在之后每次咱们修改代码提交以后,咱们均可以在 Jenkins 中进行自动部署了。
本次实践,完~