张裕 发表于 6 天前

jenkins自动化部署(node服务器)

一、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
# 其他的选项可以自行选择 https://i-blog.csdnimg.cn/blog_migrate/b733a0f2996a7ba8acb0d04b1bbbec4f.png
https://i-blog.csdnimg.cn/blog_migrate/0f6155190742e0c62b60df357627001f.png
https://i-blog.csdnimg.cn/blog_migrate/8d0fbc1285f7aa1f3b598b1e81e8a520.png
https://i-blog.csdnimg.cn/blog_migrate/d6e273f33040301dceb74d04d5180054.png
如今,就可以直接在服务器中操作MySQL了:
https://i-blog.csdnimg.cn/blog_migrate/90b19a3d41c5603d4111242379c87e8f.png
但是如果我们盼望在自己的电脑上直接连接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的安全组
https://i-blog.csdnimg.cn/blog_migrate/c3e7b9255a40ff6492a11d4ab74ca303.png
四、安装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仓库:


[*] wget是Linux中下载文件的一个工具,-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端口提供服务,以是需要加入到安全组中:
https://i-blog.csdnimg.cn/blog_migrate/93868fc24a7f69c70323f3c5e60665cd.png
6.2 访问Jenkins

此时,在浏览器输入ip:8080测试jenkins服务是否乐成启动,如果照旧无法访问,参考:https://www.cnblogs.com/luoshuai7394/p/17341966.html
检察管理员密码:
cat /var/lib/jenkins/secrets/initialAdminPassword https://i-blog.csdnimg.cn/blog_migrate/e98d2d55f8b57664e868b3b09f11cb15.png
6.3 安装Jenkins保举的插件

安装默认保举的Jenkins插件:
https://i-blog.csdnimg.cn/blog_migrate/2047b2f3ec455745b6b732d5bcf113af.png
七、配置Jenkins

7.1 创建管理员用户

https://i-blog.csdnimg.cn/blog_migrate/e6f51ed4952eba5930a6771dcca509a4.png
7.2 为服务器安装git


dnf install git 7.3 为Jenkins配置Node环境

配置Node环境:乐成配置后重启下Jenkins
https://i-blog.csdnimg.cn/blog_migrate/ba8c158bf64dfe99f3975905495ecf05.png https://i-blog.csdnimg.cn/blog_migrate/b4a4cc82cdad81efc9d00781fcaf4d4c.png
安装Node插件:
https://i-blog.csdnimg.cn/blog_migrate/b4c19a2d5e1fabbfdb503fa6c65bdfad.png https://i-blog.csdnimg.cn/blog_migrate/4d6ad34357702a18a2be6e414c26052c.png
八、项目自动化部署

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

https://i-blog.csdnimg.cn/blog_migrate/483ac04912a2a2a8eea8df93f0a77d85.png https://i-blog.csdnimg.cn/blog_migrate/dedc4fe4f6d5339b8fa834aa6be19f22.png
8.2 为Jenkins安装Publish Over SSH插件并进行配置

这里使用该插件的重要目的为:安装完项目依靠后,能够对项目进行重启。
这个步骤参考了该文章:jenkins 插件【Publish Over SSH】的使用阐明_jenkins over ssh_小明大强的博客-CSDN博客,感谢这位老哥。
安装:
https://i-blog.csdnimg.cn/blog_migrate/685c0ff5338071c4b600ba2765aea3c8.png
配置(密码方式):
https://i-blog.csdnimg.cn/blog_migrate/626c956ba6e19c4062767cffb3167a6a.png
然后点击高级,勾选【Use password authentication, or use a different key】使用密码登录,填写密码、端口、连接超时:
https://i-blog.csdnimg.cn/blog_migrate/946e7ce7f67d56cc11b9c5b94d87a753.png
https://i-blog.csdnimg.cn/blog_migrate/79bc6ae16c6dbbc72a8f77c7507f996f.png
点击【Test Configuration】,测试连接,显示Success即可
https://i-blog.csdnimg.cn/blog_migrate/62b2df83a36ea83edd33018164ede60d.png
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 实现自动化部署

新建任务:
https://i-blog.csdnimg.cn/blog_migrate/a86a42ebbdd2c107403e7ad268675588.png
https://i-blog.csdnimg.cn/blog_migrate/10f0d6a8c030ef9d43e54768a0cf747e.png
配置项⽬和保存计谋:
https://i-blog.csdnimg.cn/blog_migrate/b29fc321c9c34ae445026756ebc0eb19.png
源码管理:


[*] 如果项目为私有项目,需要添加一个用户,如果为账号密码,则输入gitee或github对应的账号和密码。
https://i-blog.csdnimg.cn/blog_migrate/78b004f7758773ae629267c178b25f60.png
构建触发器:
https://i-blog.csdnimg.cn/blog_migrate/d4e5ede96f8eba8ccdb315e2f4e8d0df.png https://i-blog.csdnimg.cn/blog_migrate/3a5c8dc311de6f81bac237bee078c7b1.png
构建环境:
https://i-blog.csdnimg.cn/blog_migrate/da2b615ff6944b1ba344193cf3ca5d8f.png
添加Shell脚本:
pwd
node -v
npm -v

npm install

# 删除/root/xxx文件夹里所有的内容
rm -rf /root/xxx/*

# 将根目录里所有的内容复制到xxx
cp -rf ./* /root/xxx/ https://i-blog.csdnimg.cn/blog_migrate/58733e16166bc19decb6e761772c947e.png
增加构建步骤:
https://i-blog.csdnimg.cn/blog_migrate/b55011b2c889cd6f136afaff0b9979b5.png
这里使用的Exec命令视具体情况而定。
cd exercise_demo/
pm2 stop demoServer
pm2 start ./src/main.js --name=demoServer https://i-blog.csdnimg.cn/blog_migrate/95b20809f64d3dcefd7e8c5057f15013.png
保存应用
8.6 GitEE设置WebHooks 管理

https://i-blog.csdnimg.cn/blog_migrate/6a99781a300a75ed851c1aa429f74937.png https://i-blog.csdnimg.cn/blog_migrate/f8cfc2d465723b104159aadf4d4ba33a.png
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 jenkinspath
# 例: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  https://i-blog.csdnimg.cn/blog_migrate/c6875dc970a2732b1473d82272351818.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: jenkins自动化部署(node服务器)