首页 > 系统相关 >Jenkins+Github+Nginx实现前端项目自动部署

Jenkins+Github+Nginx实现前端项目自动部署

时间:2024-09-08 20:53:13浏览次数:10  
标签:Github java sudo apt Nginx jenkins Jenkins HOME 安装

前言

最近在搭建一个自己的网站,网站框架搭好了要把项目放到服务器运行,但是每次更新网站内容就要手动部署一次,实在很麻烦,于是就想搭建一套自动化部署的服务。看了一些案例最后选用现在比较主流的Jenkins + Github + Nginx的方案来搭建,于是跟着教程去做,看了很多教程其实不是太完整,搭建过程一波三折,就想写下自己搭建的过程分享出去。以下操作默认大家已经申请自己的服务器,并开放所需要的端口。我自己的服务器是ubuntu。注意:ubuntu使用(apt-get install 软件名) 来安装软件,redhat(即CentOS)服务器使用(yum install 软件名) 命令安装,使用的是xhell远程控制工具。

自动化部署原理

简单的说就是当我们写好代码build完成后,把代码提交到github上,jenkins监测到代码变化就会自动构建项目,把代码拉取到服务器,从而实现自动部署。

安装java sdk

jenkins需要java环境,需要安装java jdk,第一种安装方式是从包管理工具中安装,即执行以下命令,这里我装的是jdk8.
第二种是从官网下载安装包解压到指定文件夹下,这种方式比较容易出错,不建议使用。

sudo apt-get update
sudo apt-get install openjdk-8-jdk

安装完成后配置环境变量,执行sudo vi ~/.bashrc,在文件的最后添加以下信息,注意把JAVA_HOME改成你自己的java路径,我的默认安装路径是/usr/lib/jvm/java-8-openjdk-amd64

#set oracle jdk environment
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
JRE_HOME=$JAVA_HOME/jre
JAVA_BIN=$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH

使配置立即生效

source ~/.bashrc

在执行source ~/.bashrc命令的时候遇到问题 syntax error: unexpected end of file,检查了fileformat=unix没有问题,
最后通过cp /etc/skel/.bashrc ~命令还原.bashrc文件, 配置环境变量后执行source ~/.bashrc无报错,输入java -version输出java jdk版本号信息,安装成功。
在这里插入图片描述

安装nginx

执行以下命令安装nginx

sudo apt-get update
sudo apt-get install nginx

安装完成后nginx默认打开,在浏览器输入你的服务器ip,就可以看到页面,页面默认路径是/var/www/html,如果没看到,请检查安装时是否报错,以及检查是否已经开放80端口。

安装Jenkins

首先,将存储库秘钥添加到系统

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -

添加密钥后,系统将返回OK 。 接下来,我们将Debian包存储库地址附加到服务器的sources.list :

echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list

然后更新包存储库

sudo apt-get update

最后安装Jenkins,出现选择输入y即可

sudo apt-get install jenkins

可能遇到的情况:
apt-get install jenkins报 ERROR: No Java executable found in current PATH: /bin:/usr/bin:/sbin:/usr/s
解决:
1、检查你的PATH_HOME路径是否正确,不正确的话重新配置,执行echo $PATH看一下是否有东西
2、执行以下命令,关联一下java的可执行文件。

update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk-12.0.1/bin/java" 1  #换成你的安装路径
update-alternatives --config java

问题解决没有问题后,在浏览器输入服务器ip+8080(如:128.22.26.108:8080),一切正常的话可以显示以下页面:
在这里插入图片描述
根据提示路径获取解锁密码,解锁jenkins遇到问cd: secrets/: Permission denied,原因是secrets没有读取权限,给文件夹赋权即可

sudo chmod 777 secrets

进入目录,打开文件,复制密码

sudo vi initialAdminPassword

解锁进去后选择安装建议插件
在这里插入图片描述

接着等待插件安装完成后,创建一个管理员账户,输入信息,确定即可。

github配置

在github中选择settings
在这里插入图片描述

选择Developer settings
在这里插入图片描述
选择Personal Access Token --> Generate new token, 新建一个有读写权限的用户。 如下勾选选项:
在这里插入图片描述
确定后生成token,复制下来保存好。

jenkins配置

登录进jenkins后选择系统管理 => 系统设置 => Github Server 添加信息
在这里插入图片描述添加jenkins凭据

在这里插入图片描述
完成后点击连接测试,连接成功信息如下:
在这里插入图片描述
然后选择系统管理 => 全局工具配置 在JDK安装中去掉勾选自动安装,在JAVA_HOME中输入java jdk安装的根目录,我的安装根目录是/usr/
在这里插入图片描述
完成后回到首页新建任务,填写任务名称,选择构建自由风格的软件项目,点击确定。
在这里插入图片描述

常规设置

在这里插入图片描述

源码管理

在这里插入图片描述
添加凭据
在这里插入图片描述

构建触发器

选择轮询SCM,输入出发时间
在这里插入图片描述

构建

选择执行shell,输入构建脚本
在这里插入图片描述
最后保存,点击立即构建,然后项目会有构建进度。
在这里插入图片描述
可以在构建历史查看构建状态,圆球是蓝色并且出现success表示构建成功。
在这里插入图片描述
在构建时遇到一个报错是执行sudo 命令要输密码,所以没有继续构建下去,最后找到方法是执行sudo visudo,在文件的最后面加上以下信息

jenkins ALL=(ALL) NOPASSWD: ALL

然后按下ctrl+o保存,接着按下回车Enter,最后ctrl+x退出。
重新构建应该可以成功,成功后可以在/var/lib/jenkins/workspace/路径下看到你的项目了,然后尝试修改本地项目,git push提交后,发现jenkins响应执行构建,服务器文件也更新了,说明项目搭建完成,好好奖励一下自己吧!

总结

整个项目搭建下来踩了很多的坑,也遇到很多的小问题,很多时间都是在解决问题,总的来说其实不是很难,如果不熟悉linux的话会有点吃力。以上是我在搭建的过程以及遇到的问题,如果哪里写的不到位,还请大佬们指正。

标签:Github,java,sudo,apt,Nginx,jenkins,Jenkins,HOME,安装
From: https://blog.csdn.net/sinat_28296757/article/details/142032222

相关文章

  • GitHub每周最火火火项目(9.2-9.8)
    项目名称:polarsource/polar项目介绍:polar是一个开源项目,它是LemonSqueezy的替代方案,并且具有更具优势的价格。该项目的目标是为开发者提供一种更好的选择,让他们能够在追求自己的热情和兴趣的同时,通过编码获得相应的报酬。通过使用polar,开发者可以享受到更实惠的价格......
  • GitHub每日最火火火项目(9.8)
    项目名称:polarsource/polar项目介绍:polar是一个开源的项目,它是LemonSqueezy的替代方案,并且具有更优惠的价格。这个项目的目标是让开发者能够在自己热爱的编码工作中获得报酬。它为开发者提供了一种新的选择,使他们能够以更低的成本实现自己的项目,并从中获得收益。通过......
  • Pipeline流水线通过git拉取Jenkinsfile报错 error: RPC failed; result=22, HTTP code
    Pipeline流水线通过git拉取Jenkinsfile报错error:RPCfailed;result=22,HTTPcode=404在学习共享库时使用通过git拉取jenkinsfile时,报错在排查gitlab服务状态,网络通讯,防火墙规则以及Jenkins凭据均可以正常使用,最后发现的时在URL填写中缺少.git结尾所导致的,在了解后得知在......
  • yum安装nginx没有某一模块,该如何添加第三方模块
    本文将以添加--with-stream模块为例,演示如何去添加新的模块进去。需求:生产有个接口是通过socket通信。nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信。实现方法:Centos7.5下yum直接安装的nginx,添加新模块支持tcp转发;重新编译Nginx并添加--with-stream参数。......
  • docker php和nginx的通信
    1安装网络dockernetworkcreatephpClassExamples_network2安装nginx2.1生成临时容器dockerrun-it--nametest_nginx-dnginx查看临时容器内部,找到关键目录1、工作目录:lsusr/share/nginx/html 2、配置目录lsetc/nginx/conf.d3、日志目录lsvar......
  • traefik对比nginx ingress优点
    Traefik和NGINXIngressController是Kubernetes中常用的反向代理和负载均衡解决方案。它们各自有其优点和适用场景。以下是Traefik相对于NGINXIngress的一些主要优点:1.动态配置优点:Traefik可以自动发现新服务,并动态更新其路由配置,而不需要重新加载配置。这使得在......
  • 如何使用 Git 和 SSH 将项目推送到 GitHub
    目录1.前提条件2.安装Git3.生成SSH密钥生成SSH密钥的步骤:添加SSH密钥到SSHAgent:4.将SSH密钥添加到GitHub5.配置Git用户信息6.将本地代码推送到GitHub1.初始化本地Git仓库2.添加远程仓库3.添加文件并提交4.推送到GitHub7.常见问题及......
  • GitHub每日最火火火项目(9.6)
    项目名称:Zeyi-Lin/HivisionIDPhotos项目介绍:HivisionIDPhotos是一个轻量级且高效的AI证件照制作工具。它能够通过人工智能技术,快速、准确地生成符合要求的证件照。这个工具具有较高的实用性,可以帮助用户节省时间和精力,无需专业的摄影知识和技能,就能轻松制作出满意的......
  • Nginx+Keepalive集群实战
    随着Nginx在国内的发展潮流,越来越多的互联网公司都在使用Nginx,Nginx高性能、稳定性成为IT人士青睐的HTTP和反向代理服务器。Nginx负载均衡一般位于整个网站架构的最前端或者中间层,如果为最前端时单台Nginx会存在单点故障,也就是一台Nginx宕机,会影响用户对整个网站的访问。所以......
  • Windows下安装Jenkins实现java项目的自动化部署(三)
    Windows下安装Jenkins实现java项目的自动化部署(三)目录:Windows下安装Jenkins实现java项目的自动化部署(三)摘要:介绍:1.创建ant自定义标签2.编写自定义标签的功能类3.总结:摘要:本文主要内容:ant配置文件中自定义标签的实现介绍:首先,介绍一下我整个项目操作的流程,我们这......