ToB企服应用市场:ToB评测及商务社交产业平台

标题: jenkins自动化部署(node服务器) [打印本页]

作者: 张裕    时间: 2024-9-14 09:30
标题: jenkins自动化部署(node服务器)
一、Nginx安装和启动

如果我们盼望安装一个软件包,可以进行如下的操作:
  1. # 搜索软件包
  2. dnf search package-name
  3. # 查看软件包信息
  4. dnf info package-name
  5. # 安装软件包
  6. dnf install package-name
复制代码
部署会使用nginx,以是需要先安装一下nginx:
  1. dnf install nginx
复制代码
启动nginx:
  1. # 启动nginx
  2. systemctl start nginx
  3. # 查看启动状态
  4. systemctl status nginx
  5. # 配置开机重启
  6. 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

  1. # 安装nodejs
  2. dnf install nodejs
复制代码
三、安装MySQL

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

  1. # 安装MySQL,这里加-y的意思是依赖的内容也安装
  2. dnf install mysql-server -y
复制代码
3.2 启动mysql-server

  1. # 开启MySQL后台服务
  2. systemctl start mysqld
  3. # 查看MySQL服务:active (running)表示启动成功
  4. systemctl status mysqld
  5. # 随着系统一起启动
  6. systemctl enable mysqld
复制代码
3.3 配置MySQL

配置MySQL账号和密码:
  1. mysql_secure_installation
  2. # 接下来有一些选项,比如密码强度等等一些
  3. # MySQL8开始通常设置密码强度较强,选择2
  4. # 其他的选项可以自行选择
复制代码




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

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

这个时候必须要配置root可以远程连接:
  1. # 使用mysql数据库
  2. use mysql;
  3. # 查看user表中,连接权限,默认看到root是localhost
  4. select host, user from user;
  5. # 修改权限
  6. update user set host = '%' where user = 'root';
  7. # 配置生效
  8. FLUSH PRIVILEGES;
复制代码
注意:需要配置3306的安全组

四、安装pm2

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

安装pm2:
  1. npm install pm2 -g
复制代码
pm2常用的命令:
  1. # 命名进程
  2. pm2 start app.js --name my-api
  3. # 显示所有进程状态
  4. pm2 list              
  5. # 停止指定的进程
  6. pm2 stop 0      
  7. # 停止所有进程
  8. pm2 stop all          
  9. # 重启所有进程
  10. pm2 restart all      
  11. # 重启指定的进程
  12. pm2 restart 0          
  13. # 杀死指定的进程
  14. pm2 delete 0          
  15. # 杀死全部进程
  16. pm2 delete all  
  17. #后台运行pm2,启动4个app.js,实现负载均衡
  18. pm2 start app.js -i 4
复制代码
五、Jenkins的配置和安装过程

5.1 安装Java环境

Jenkins本身是依靠Java的,以是需要先安装Java环境,这里安装了Java 11的环境,新版jenkins最低支持需java 11版本以上。
  1. dnf install java-11-openjdk
复制代码
5.2 连接Jenkins仓库

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

  1. sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
  2. # 导入GPG密钥以确保您的软件合法
  3. sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
复制代码
5.3 安装Jenkins

  1. yum install jenkins
复制代码
六、Jenkins的启动、访问和安装插件

6.1 启动Jenkins服务

  1. systemctl start jenkins
  2. systemctl status jenkins
  3. systemctl enable jenkins
复制代码
Jenkins默认使用8080端口提供服务,以是需要加入到安全组中:

6.2 访问Jenkins

此时,在浏览器输入ip:8080测试jenkins服务是否乐成启动,如果照旧无法访问,参考:https://www.cnblogs.com/luoshuai7394/p/17341966.html
检察管理员密码:
  1. cat /var/lib/jenkins/secrets/initialAdminPassword
复制代码

6.3 安装Jenkins保举的插件

安装默认保举的Jenkins插件:

七、配置Jenkins

7.1 创建管理员用户


7.2 为服务器安装git


  1. 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 创建项目目录

起首需要为服务器创建一个项目目录,目录位置随意,这里创建在根目录
  1. mkdir xxx
复制代码
8.4 配置nginx.conf文件

Nginx配置文件地点目录
  1. /etc/nginx/nginx.conf
复制代码
配置用户:
  1. - /etc/nginx/nginx.conf
  2. - user nginx;
  3. + user root
  4. worker_processes auto;
  5. error_log /var/log/nginx/error.log;
  6. pid /run/nginx.pid;
复制代码
重启Nginx:
  1. systemctl restart nginx
复制代码
8.5 实现自动化部署

新建任务:


配置项⽬和保存计谋:

源码管理:


构建触发器:
 

构建环境:

添加Shell脚本:
  1. pwd
  2. node -v
  3. npm -v
  4. npm install
  5. # 删除/root/xxx文件夹里所有的内容
  6. rm -rf /root/xxx/*
  7. # 将根目录里所有的内容复制到xxx
  8. cp -rf ./* /root/xxx/
复制代码

增加构建步骤:

这里使用的Exec命令视具体情况而定。
  1. cd exercise_demo/
  2. pm2 stop demoServer
  3. pm2 start ./src/main.js --name=demoServer
复制代码

保存应用
8.6 GitEE设置WebHooks 管理

 

8.7 给jenkins用户添加访问权限

方案三亲测有用。
8.7.1 方案一:修改默认⽤户

  1. - /etc/sysconfig/jenkins
  2. JENKINS_JAVA_CMD=""
  3. ## Type:        string
  4. ## Default:     "jenkins"
  5. ## ServiceRestart: jenkins
  6. #
  7. # Unix user account that runs the Jenkins daemon
  8. # Be careful when you change this, as you need to update
  9. # permissions of $JENKINS_HOME and /var/log/jenkins,
  10. # and if you have already run Jenkins, potentially other
  11. # directories such as /var/cache/jenkins .
  12. #
  13. - JENKINS_USER="jenkins"
  14. + JENKINS_USER="root"
复制代码
8.7.2 将Jenkins添加到root组中

  1. sudo usermod -a -G root jenkins
复制代码
8.7.3 给Jenkins目录权限

  1. chown -R jenkins  path
  2. # 例:chown -R jenkins  /root/yc_airbnb
复制代码
8.7.4 重启Jenkins

  1. systemctl restart jenkins
复制代码
7.8 推送代码

推送代码到仓库后,检察Jenkins是否有进行打包,有阐明乐成了。
九、开启定时构建(非必要)

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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4