PasteSpider快速上手开发者专用部署助手

【【【PasteSpider的安装--一键拉取镜像】】】

(首次使用,建议使用Memory+Sqlite的模式,只要2行代码即可启动一个PasteSpider,第一行拉取PasteSpider的镜像,第二行启动PasteSpider容器!)

安装PasteSpider之后,理论上就可以打开管理端了,如果打不开那就要按照现象进行排错了。(访问路径是/page/index.html)

打开后一般是需要登陆的,看到如下界面(验证码有跑出来),就表示成功了!

image.png

按照默认账号密码admin@spider.com和123456,输入图形验证码后登陆,一般如下:

当然一开始看到的应该是空白的,因为还没添加服务器等信息!!!

如果要跑起来有机箱内容是必填的额

1.服务器,表示项目部署在哪

2.项目和对应的服务

至于其他的比如路由,私有仓库,Key-Val,SVN/GIT都是附加的东西!

以下以我部署贴代码网站为例!

服务器

   基础信息-服务器-->新建

参照上面的,按照自己的信息进行更改,如果你的所有服务器都是在一个局域网内的,则你可以在IP的地方全部填写局域网的IP,比如我上面的就是填写的局域网IP。

如何查看自己linux的IP地址?

ifconfig

后可以看到一大堆的地址,找下eth0一般是在这个组内,0.1或者0.255结尾的一般是网关,阿里云的一般是172开头的。

项目服务的概念

   PasteSpider中服务划分几个概念,我们用商城系统为例,一个商城系统有web前端 manage管理端 api接口划分为,基础服务,会员服务,支付服务,通知服务等,在这几个划分中,web和manage是不需要编译的,他们都是单传的html,css,js等的静态资源,只要nginx中指向他就行了。其他的服务是需要构建镜像,然后运行在容器中的,最后再经过nginx把他们路由起来,最后通过一个或者多个域名对外提供服务。

   一般的我们至少会划分2个环境,测试环境,正式环境,两个环境其实很多地方是重复的,比如基础代码啥的,一般不一样的地方在于配置项目,拿netcore来说一般就是appsettings.json的内容不一样。appsettings.json中配置了数据库连接字符串,redis连接字符串,系统配置参数等。因此spdier在上面的项目,服务的概念中再加入了环境。

   接下来的配置我们拿贴代码的发布来做举例

项目配置

   项目信息-项目列表 -->新增

    

image.png

   1.服务代码,需要是英文的,字母开头,不能过长,还要容易识别,相对同一个项目来说不能重复。名称最好和项目相关,这样看到的时候好理解,

   2.存放路径,这个一般留空,不留空的只能给静态的文件使用,有些项目里面的服务的文件是服务套服务的,比如netcore的mvc中的wwwroot一般在里面存放前端的文件,这个时候就可以把这个路径指定给api的wwwroot文件夹了,注意是相对PasteSpider来说的文件夹。

   3.监听端口,一般的服务是启动监听80端口的,这里是说的容器内的端口,https一般是监听443,有些同时都支持的,一般是80,443这样。

   4.端口映射,如果你部署的这个服务,是否需要其他服务器可以访问到,需要就需要端口映射,容器内的端口由上面的监听端口配置,而对外的则是通过计算的,是否记得服务器新增的地方有一个对外端口范围的配置,两边配置后,需要端口映射的就会去计算所在服务器的可用端口是多少,然后进行分配。我们也可以通过nginx直接路由到这个容器而不需要使用端口映射。

    

   上述的配置中,文件模式,划分成3种:

   1.静态文件,我们一般使用于发布web,mangage,h5等静态页面的服务的时候使用,只要把文件从你的开发电脑上载到服务器的指定目录即可。

   2.源码模式,这个模式需要配合git,svn的配置才可以使用,就是你提交开发的源码后,PasteSpider会基于配置去拉取代码,构建代码,发布,构建镜像,升级容器服务等。

   3.发布模式,这个模式一般很多人使用,就是在开发电脑上发布好项目服务的文件,然后上载到服务器指定的地方,然后运行这个服务。

   前置命令,后置命令。在服务升级的过程中,大概步骤为,读取对应版本的镜像,然后下载镜像,根据配置启动容器。在这些命令之前或者之后我们有时候需要做些其他动作,就可以使用这个命令,比如替换配置文件等。   

这里的项目代码会使用于服务代码的存放位置,一般是PasteSpider的工作目录/项目代码/服务代码/等,一个项目包含一个或者多个服务,服务可以是接口,也可以是web静态文件等。

服务配置

   项目信息-服务列表-新增

    

下面要注意的是启动参数和执行参数

   其他参数,这个命令主要是结合docker run命令使用的,docker run乃至后面的podman run都是一样的规则,docker run xxx images:tag yyy,这个命令中,其他参数表示xxx部分的内容,你可以在这里配置很多东西,比如路径的映射,端口的指定,cpu限定,内存限定等,具体的可以参照docker run --help的命令使用说明。

   环境参数,或者说后执行命令,在一些特殊的容器中用得多,平时很少使用,比如node.js的服务,我们一般是启动一个node.js的容器,要他运行某个服务,比如 docker run --name nodeser -it -d node server.js

   升级拆分次数,如果一个服务有多个容器,我们说的集群部署,假设你的会员服务你部署了10个容器,那么按照3次拆分次数来说,则PasteSpider会在升级的时候把这10个容器分3次执行,每次之后更新nginx的路由配置,这样可以尽量做到无损升级。

   镜像保存版本,只有需要构建镜像的需要用到这个配置,几乎每次升级都需要生成新的镜像,镜像多了也是会占用服务器的硬盘资源的,所以PasteSpider配置了服务的镜像存储版本数,超过的会删除。

    如下图的扩展配置中,就可以配置这个服务是否使用私有仓库了,如果没有勾选表示不使用私有仓库,直接在对应服务器上构建镜像和升级!注意如果一个服务被部署到多个服务器上,那么必须配置私有仓库,否则其他服务器会拉取不到镜像!!!

image.png

然后是下图的关系配置,就是这个服务要使用哪个环境模式,这里可以多选,会组合创建关系,然后是选择需要部署在哪些服务器上,这个后续可以在管理中添加或修改!

image.png

按照上面的步骤创建好了服务之后,那就是说项目有了,服务有了,接下来的就是如何构建镜像和启动容器了!!!

    需要打包镜像,那肯定得有文件,项目得发布文件,用于打包得

    找到到“项目信息-服务列表”找到刚刚添加的服务

    

image.png

    会看到大概如下图的界面

    

image.png

    顶部位置显示这个服务在服务器上的路径信息,1是等待拖拽区域,2是当前服务器这个文件夹下的文件内容,3是操作按钮,这个时候你可以打开你电脑的项目文件夹,至于拖拽哪些文件夹到1位置就要看你这个服务的文件类型了,如果是静态模式,则一般是静态文件夹的所有文件,注意是内容部分,如果是发布模式,则是VS发布文件夹的内容,比如我的:

   

image.png

   全选,然后拖入到1位置,然后等待系统计算对比文件,然后点击3位置上传需要上传的文件。你也可以使用PasteSpider的文件同步器进行简单的文件同步!

服务管理

   服务管理包含了对服务的扩容,启动,伸缩,构建,升级等,首次创建服务后,上载了发布的文件,则点击后面的构建,表示基于对应的文件构建一个初始版本的镜像,用于后面的容器启动等!

    镜像构建后,我们就可以针对这个服务,执行容器的启动或者伸缩等操作了,找到对应的服务,打开后大致如下

    上述的内容表示这个服务的默认环境,在个人服务器上有启用,限定最小运行一个容器,最多同时运行3个容器,当前运行2个容器,后面的重新部署和构建升级时操作命令,当前运行2的后面的+和-点击后,表示你要执行新运行多少个容器和缩减多少个容器,这个规则受限于前面的限定!

    刚创建的时候,正在运行的数量一般为0,也有可能刚好卡在你上传项目文件后,且构建了镜像,然后系统就启动了最小限定的一个!

    如果要启动选定的这个服务器,你可以执行运行后面的+操作,表示现在要求系统启动几个容器!

   以上的操作,都可以在工作记录-工作列表中查看

image.png

    如果执行失败了,点击任务详细,查看具体是哪个步骤出错了,按照反馈等进行处理!

    任务执行完成后,可以使用命令查看容器的状态

    docker ps

   也可以在项目信息-容器列表中查看。

路由配置

   项目信息-路由列表(非必须,这个要看你的需求,使用路由的作用是,容器的增减之后,对于外部访问可以无感知,如果你的服务支持集群部署,那么可以使用这个功能,也就是他们说的静默升级,平滑升级!)

   路由配置,就是配置nginx的规则,让PasteSpider升级或者扩容,缩减服务的时候动态的调整对应的nginx配置,我们访问一个域名,规则一般是,向域名服务器获取这个域名指定的IP-->携带数据访问这个IP-->这个服务器根据数据携带的信息转发到指定的端口或者IP。

    

   看上图,先选择你这个路由规则是给哪个服务的哪个环境使用的,至于规则和这个模板的语法可以参照下方的几个按钮,然后自行进行调整。如果你是按照之前的步骤操作的,也就是说如果你到这个步骤的时候,对应服务器的容器已经在运行了,则你可以在文件内容中输入内容后可以点击“检查”按钮,PasteSpider会根据你填写的模板进行数据渲染,渲染出来的结果就是会写入到Nginx的内容。具体的规则信息你可以点击上面的“模板格式”获取更多的信息。

   新增后,你需要为这个即将生成的xxx.conf分配服务器,就是这个xxx.conf的文件每次更新的时候需要更新到哪个服务器上。

   执行上面的步骤后,去“项目信息-环境列表”中找到需要升级的服务,点击构建并升级。等待升级成功后,即可到指定的服务器的对应目录下查看新生成的xxx.conf文件。

   比如我的生成是这样的(文件在/etc/nginx/conf.d/soft.pastecode.cn.conf)

    

upstream blogserapi {server 192.6.0.4:80 weight=10;server 192.6.0.2:80 weight=10;
}
server {#listen 80;listen 443 ssl; # managed by Certbotserver_name soft.pastecode.cn;ssl_certificate /etc/letsencrypt/live/soft.pastecode.cn/fullchain.pem; # managed by Certbotssl_certificate_key /etc/letsencrypt/live/soft.pastecode.cn/privkey.pem; # managed by Certbotinclude /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbotssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot#server_name soft.pastecode.cn;location /page/ {root /spider/static/blog/web;index index.html index.htm;}location / {proxy_pass http://blogserapi/;proxy_http_version 1.1;proxy_set_header Connection "";client_max_body_size 20M;client_body_buffer_size 20M;index index.html index.htm;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

    主要的是上面的

upstream blogserapi {
server 192.6.0.4:80 weight=10;
server 192.6.0.2:80 weight=10;
}

   如果你看到上面的信息还无法访问,可能是你的/etc/nginx/nginx.conf的配置有问题,添加一行代码表示把conf.d的文件夹下的所有*.conf的文件包含在里面。

        include /etc/nginx/conf.d/*.conf;

   这行代码放在打开的nginx.conf的server{的上方。

   修改完成后要记得去控制台执行

    nginx -t

   进行检查,检查nginx的相关配置是否正确。执行如下命令,生效新的配置。

nginx -s reload

以上是发布模式的发布,那有类似Jenkins的那种CICD的持续部署么?

PasteSpider也是支持这样的

使用PasteSpider实现类似Jenkins的功能,让你的2G服务器也可以飞起

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396243.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件上传绕过最新版安全狗

本文来源无问社区,更多实战内容,渗透思路可前往查看http://www.wwlib.cn/index.php/artread/artid/9960.html http分块传输绕过 http分块传输⼀直是⼀个很经典的绕过⽅式,只是在近⼏年分块传输⼀直被卡的很死,很多waf都开始加 …

8.9套题

A. 猴猴吃苹果 题意:给定根节点k,求访问点的顺序,使得每次从上一个点到当前点的权值最大。访问过的点权值为0。权值一样时,输出最小编号 思路:由于是双向边,先求根节点到每一个节点的距离值。在第一轮中&…

【算法题】整数反转,一文彻底搞清!

目录 一、题目描述 二、解题思路 1、整数转为字符串 2、数学运算 三、参考答案 一、题目描述 整数反转 给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。 如果反转后整数超过32位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 …

58 mysql 存储引擎之 MEMORY

前言 我们这里来看一下 MEMORY 存储引擎, 我们常见的那些 临时表什么的, 都是基于 MEMORY 在之前 我们也曾经调试过 相关内存临时表的信息 它主要是 使用 hp_scan, hp_find_record 等等 api 来操作内存中的信息 我们这里基于 information_schema.TABLES 这张基于 MEMORY 的…

加速 Spring Boot 3.3 迁移

1. 关键要点 为什么你应该升级你的服务迁移到 Spring Boot 3.3 时需要更新的内容OpenRewrite 如何帮助使升级更轻松、更快捷 2. 前言 现在Spring Boot 已经到了3.3,但是你在哪里?在过去的 3.x 版本更新中,我们看到了许多新功能,…

从EN标准到REACH法规:全面掌握CE认证洗涤剂的安全要求

一、什么是CE认证? CE认证(Conformit Europenne)是产品符合欧洲经济区(EEA)安全、健康、环保和消费者保护要求的标志。对于洗涤剂而言,CE认证证明该产品符合欧洲相关法规和标准,确保其在使用过…

牛客JS题(三十四)监听对象

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; defineProperty实现深度监视递归终止条件引用传值闭包与作用域 题干&#xff1a; 我的答案 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /></head&…

ue5正确导入资源 content(内容),content只能有一个

把资源content下的东西&#xff0c;全部拷贝&#xff0c;放在项目的content下 content只能有一个

【HarmonyOS NEXT星河版开发学习】小型测试案例02-华为登录

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;还未发布&#xff09; 前言 通过此案例&#xff0c;不得不感叹鸿蒙的强大了&#xff0c;仅仅使用了26行代码就构建出来了这个界面&#xff0c;确实特别方便&#…

【git】简易的命令行入门教程

文章目录 1.Git 全局设置2.创建 git 仓库3.已有仓库 1.Git 全局设置 git config --global user.name "******" git config --global user.email "******qq.com"2.创建 git 仓库 mkdir ****** cd ****** git init touch README.md git add README.md git…

如何在notebook中运行nodejs

在 Python 生态系统的推动下&#xff0c;机器学习和人工智能日益流行&#xff0c;这带来了计算笔记本的概念。这些交互式计算平台主要是为以 Python 为中心的数据科学应用而开发的&#xff0c;它们将代码、计算输出、解释性文本和多媒体合并成一个有内聚力的文档。 作为 JavaS…

Liunx---批量安装服务器

目录 一、环境准备 一、环境准备 1.准备一台rhel7的主机并且打开主机图形。 2.配置好可用ip 3.做kickstart自动安装脚本后面需要用到DHCP&#xff0c;关闭VMware DHCP功能 二、安装图形化kickstart自动安装脚本的工具 yum install system-config-kickstart ----安装图形化生…

python模式设计代码之观察者模式

1、观察者模式 话题订阅模式。观察者模式有两个角色&#xff0c;分别是话题发布者和话题订阅者&#xff08;即观察者&#xff09;。发布者就是把消息发送给话题&#xff0c;观察者就是订阅这个话题从而得到最新的资讯。这个模式的作用就拿手机的消息推送来说&#xff0c;app身…

elasticsearch的学习(四):elasticsearch的一些基本概念

简介 elasticsearch的一些基本概念。 核心概念 索引&#xff1a;一个拥有相似特征的文档的集合。 类型&#xff1a;在索引中定义&#xff0c;是索引的一个逻辑上的分类&#xff0c;版本7以上已经弃用了。 文档&#xff1a;可被索引的基础信息单元&#xff0c;即一条数据&a…

Linux 错误码

目录 一、概述二、含义三、错误处理函数1、IS_ERR2、strerr、perror 一、概述 在 Linux 系统中&#xff0c;错误码是用来表示操作系统运行过程中发生的错误的数字代码。错误码通常由负数表示&#xff0c;0 表示成功&#xff0c;正数表示警告或其他非致命错误。 为了开发者更好…

【Linux基础】Linux基本指令(二)

目录 &#x1f680;前言一&#xff0c;mv指令二&#xff0c;more & less指令2.1 more 指令2.1 less指令 三&#xff0c;重定向技术(重要)3.1 echo指令3.2 输出重定向 >3.3 追加重定向 >>3.4 输入重定向 < 四&#xff0c;head & tail指令4.1 head 指令4.2 t…

【经验分享】ShardingSphere+Springboot-04:自定义分片算法(COMPLEX/STANDARD)

文章目录 3.4 CLASS_BASED 自定义类分片算法3.4.1 复杂分片自定义算法&#xff08;strategyCOMPLEX &#xff09;3.4.2 STANDARD 标准分片自定义算法## 进阶:star: 自定义算法范围查询优化 3.4 CLASS_BASED 自定义类分片算法 3.4.1 复杂分片自定义算法&#xff08;strategyCOM…

VUE结合elementui实现分页器列表

<template><div>外贸知识<div class"art-box"><div class"art-item-box"><div class"art-item" v-for"(art, index) in paginatedArtList" :key"index"><a :href"art.artsrc"&g…

离开SD的大佬们另组战队,开源新品牌冲击MJ王座

FLUX.1强势登场&#xff0c;秒杀Midjourney&#xff1f; Midjourney 6.1 才发表几天&#xff0c;FLUX.1立刻就来踢馆了 离职四个月&#xff0c;Stability AI 核心成员 Robin Rombach 前几日官宣成立了 Black Forest Labs&#xff0c;公司推出的第一个产品 FLUX.1&#xff0c;…

GStreamer 简明教程(一):环境搭建,运行 Basic Tutorial 1 Hello world!

文章目录 前言一、源码环境搭建二、Basic Tutorial 1 Hello world三、开启更多日志参考 前言 本系列文章将纪录学习 [GStreamer] 的过程。 为什么想学习 [GStreamer]&#xff0c;有这么几个原因&#xff1a; 多媒体处理是一个复杂的任务&#xff0c;[GStreamer] 的管道架构可…