jenkins自动化部署(node服务器)
创始人
2025-01-21 12:06:04
0

一、Nginx安装和启动

如果我们希望安装一个软件包,可以进行如下的操作:

# 搜索软件包 dnf search package-name  # 查看软件包信息 dnf info package-name  # 安装软件包 dnf install package-name

部署会使用nginx,所以需要先安装一下nginx

dnf install nginx

启动nginx

# 启动nginx systemctl start nginx # 查看启动状态 systemctl status nginx # 配置开机重启 systemctl enable nginx

如果启动报错:Job for nginx.service failed because the control process exited with error code,可参考Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code-CSDN博客

二、安装Node.js

# 安装nodejs dnf install nodejs

三、安装MySQL

如果项目没用到MySQL,可以省略这个步骤。

3.1 安装MySQL

# 安装MySQL,这里加-y的意思是依赖的内容也安装 dnf install mysql-server -y

3.2 启动mysql-server

# 开启MySQL后台服务 systemctl start mysqld ​ # 查看MySQL服务:active (running)表示启动成功 systemctl status mysqld ​ # 随着系统一起启动 systemctl enable mysqld

3.3 配置MySQL

配置MySQL账号和密码:

mysql_secure_installation ​ # 接下来有一些选项,比如密码强度等等一些 # MySQL8开始通常设置密码强度较强,选择2 # 其他的选项可以自行选择

现在,就可以直接在服务器中操作MySQL了:

但是如果我们希望在自己的电脑上直接连接MySQL呢?

  • 也就是和MySQL建立远程连接;

  • 比如直接Navicat工具中连接MySQL

这个时候必须要配置root可以远程连接:

# 使用mysql数据库 use mysql; # 查看user表中,连接权限,默认看到root是localhost select host, user from user; # 修改权限 update user set host = '%' where user = 'root'; ​ # 配置生效 FLUSH PRIVILEGES;

注意:需要配置3306的安全组

四、安装pm2

在真实的部署过程中,会使用一个工具pm2来管理Node的进程:

  • PM2是一个Node的进程管理器;

  • 可以使用它来管理Node的后台进程;

  • 这样在关闭终端时,Node进程会继续执行,那么服务器就可以继续提供服务;

安装pm2

npm install pm2 -g

pm2常用的命令:

# 命名进程 pm2 start app.js --name my-api  # 显示所有进程状态 pm2 list                # 停止指定的进程 pm2 stop 0        # 停止所有进程 pm2 stop all            # 重启所有进程 pm2 restart all       # 重启指定的进程 pm2 restart 0           ​ # 杀死指定的进程 pm2 delete 0            # 杀死全部进程 pm2 delete all    ​ #后台运行pm2,启动4个app.js,实现负载均衡 pm2 start app.js -i 4 

五、Jenkins的配置和安装过程

5.1 安装Java环境

Jenkins本身是依赖Java的,所以需要先安装Java环境,这里安装了Java 11的环境,新版jenkins最低支持需java 11版本以上。

dnf install java-11-openjdk

5.2 连接Jenkins仓库

因为Jenkins本身是没有在dnf的软件仓库包中的,所以需要连接Jenkins仓库:

  • wgetLinux中下载文件的一个工具,-O表示输出到某个文件夹并且命名为什么文件;

  • rpm:全称为The RPM Package Manage,是Linux下一个软件包管理器;

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo   # 导入GPG密钥以确保您的软件合法 sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

5.3 安装Jenkins

yum install jenkins

六、Jenkins的启动、访问和安装插件

6.1 启动Jenkins服务

systemctl start jenkins systemctl status jenkins systemctl enable jenkins

Jenkins默认使用8080端口提供服务,所以需要加入到安全组中:

6.2 访问Jenkins

此时,在浏览器输入ip:8080测试jenkins服务是否成功启动,如果还是无法访问,参考:https://www.cnblogs.com/luoshuai7394/p/17341966.html

查看管理员密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

6.3 安装Jenkins推荐的插件

安装默认推荐的Jenkins插件:

七、配置Jenkins

7.1 创建管理员用户

7.2 为服务器安装git

dnf install git

7.3 为Jenkins配置Node环境

配置Node环境:成功配置后重启下Jenkins

 

安装Node插件:

 

八、项目自动化部署

8.1 为Jenkins安装Gitee Plugin插件并配置Jenkins URL

 

8.2 为Jenkins安装Publish Over SSH插件并进行配置

这里使用该插件的主要目的为:安装完项目依赖后,能够对项目进行重启。

这个步骤参考了该文章:jenkins 插件【Publish Over SSH】的使用说明_jenkins over ssh_小明大强的博客-CSDN博客,感谢这位老哥。

安装:

配置(密码方式):

然后点击高级,勾选【Use password authentication, or use a different key】使用密码登录,填写密码、端口、连接超时:

点击【Test Configuration】,测试连接,显示Success即可

8.3 创建项目目录

首先需要为服务器创建一个项目目录,目录位置随意,这里创建在根目录

mkdir xxx

8.4 配置nginx.conf文件

Nginx配置文件所在目录

/etc/nginx/nginx.conf

配置用户:

- /etc/nginx/nginx.conf ​ - user nginx; + user root worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid;

重启Nginx

systemctl restart nginx

8.5 实现自动化部署

新建任务:

配置项⽬和保留策略:

源码管理:

  • 如果项目为私有项目,需要添加一个用户,如果为账号密码,则输入giteegithub对应的账号和密码。

构建触发器:

 

构建环境:

添加Shell脚本:

pwd node -v npm -v ​ npm install  ​ # 删除/root/xxx文件夹里所有的内容 rm -rf /root/xxx/*  ​ # 将根目录里所有的内容复制到xxx cp -rf ./* /root/xxx/

增加构建步骤:

这里使用的Exec命令视具体情况而定。

cd exercise_demo/ pm2 stop demoServer pm2 start ./src/main.js --name=demoServer

保存应用

8.6 GitEE设置WebHooks 管理

 

8.7 给jenkins用户添加访问权限

方案三亲测有效。

8.7.1 方案一:修改默认⽤户
- /etc/sysconfig/jenkins          ​ JENKINS_JAVA_CMD="" ​ ## Type:        string ## Default:     "jenkins" ## ServiceRestart: jenkins # # Unix user account that runs the Jenkins daemon # Be careful when you change this, as you need to update # permissions of $JENKINS_HOME and /var/log/jenkins, # and if you have already run Jenkins, potentially other # directories such as /var/cache/jenkins . # - JENKINS_USER="jenkins" + JENKINS_USER="root"
8.7.2 将Jenkins添加到root组中
sudo usermod -a -G root jenkins
8.7.3 给Jenkins目录权限
chown -R jenkins  path # 例:chown -R jenkins  /root/yc_airbnb
8.7.4 重启Jenkins
systemctl restart jenkins

7.8 推送代码

推送代码到仓库后,查看Jenkins是否有进行打包,有说明成功了。

九、开启定时构建(非必要)

#每半小时构建一次OR每半小时检查一次远程代码分支,有更新则构建 H/30 * * * * ​ #每两小时构建一次OR每两小时检查一次远程代码分支,有更新则构建 H H/2 * * * ​ #每天凌晨两点定时构建 H 2 * * * ​ #每月15号执行构建 H H 15 * * ​ #工作日,上午9点整执行 H 9 * * 1-5 ​ #每周1,3,5,从8:30开始,截止19:30,每4小时30分构建一次 H/30 8-20/4 * * 1,3,5

 

相关内容

热门资讯

重大推荐!约战竞技场辅助器(辅... 重大推荐!约战竞技场辅助器(辅助挂)开挂透视辅助插件(果然有挂)-哔哩哔哩1、约战竞技场辅助器ai辅...
据统计!微乐小程序辅助器,新5... 据统计!微乐小程序辅助器,新518互游脚本下载,详细教程(好像真的有挂)-哔哩哔哩新518互游脚本下...
今天上午!fishpoker透... 今天上午!fishpoker透视底牌,点星休闲辅助器下载,真是真的是有挂(详情安装教程)-哔哩哔哩1...
玩家必看科普!广东雀神麻雀辅助... 玩家必看科普!广东雀神麻雀辅助神器(辅助挂)开挂透视辅助攻略(切实真的有挂)-哔哩哔哩1、让任何用户...
值得注意的是!湖南赣湘互娱辅助... 值得注意的是!湖南赣湘互娱辅助脚本,广西八一字牌可以破解吗,揭秘教程(切实存在有挂)-哔哩哔哩所有人...
目前来看!uupoker透视,... 目前来看!uupoker透视,花花生活圈斗十四辅助,好像有挂(普及揭秘攻略)-哔哩哔哩1、起透看视 ...
盘点十款!掌电竞技辅助器(辅助... 盘点十款!掌电竞技辅助器(辅助挂)开挂透视辅助技巧(一直有挂)-哔哩哔哩1、盘点十款!掌电竞技辅助器...
此事引发网友热议!jj斗地主有... 此事引发网友热议!jj斗地主有透视吗,起点休闲辅助,黑科技教程(确实真的是有挂)-哔哩哔哩1、起透看...
透视透视!poker worl... 透视透视!poker world辅助,开心十三水辅助工具,总是存在有挂(详细详细教程)-哔哩哔哩透视...
一分钟了解!四川熊猫辅助软件视... 一分钟了解!四川熊猫辅助软件视频(辅助挂)开挂透视辅助脚本(总是真的是有挂)-哔哩哔哩小薇(透视辅助...