利用Peanut中Rest API,开发和测试管线轻松部署数据库和服务

423 阅读3分钟

Peanut

为开发和测试管道轻松地部署数据库和服务。

仪表板截图

Peanut提供了一个REST API,管理仪表板和一个命令行工具来部署和配置常用的服务,如数据库,消息经纪人,图形,跟踪,缓存工具...等,它完全适用于开发、手动测试、自动测试管道。

在引擎盖下,它与容器化运行时间(如docker)一起工作,以部署和配置服务。如果服务是临时的,就销毁它。

从技术上讲,你可以通过一堆yaml文件或使用配置管理工具或像helm这样的包管理器来实现同样的目的,但花生是相当小的,使用起来也很有趣,应该可以加快你的工作流程。

支持的服务。

  • MySQL。
  • MariaDB。
  • PostgreSQL。
  • Redis。
  • Etcd.
  • Grafana.
  • Elasticsearch.
  • MongoDB.
  • Graphite.
  • 普罗米修斯。
  • Zipkin.
  • Memcached.
  • Mailhog.
  • Jaeger。
  • RabbitMQ。
  • Consul。
  • Vault。

文档

在Ubuntu上运行Peanut

要在ubuntu上运行Peanut,你可以使用下面的bash脚本,因为冷启动可能需要一段时间。该脚本将安装etcd、docker、docker-compose和Peanut。

$ bash 

花生将在80 端口运行,用户界面在这个URLhttp://x.x.x.x 。请打开这个文件/etc/peanut/config.prod.yml ,并将下面一行调整为你的Public IPhostname

# App configs

然后重新启动Peanut

$ systemctl restart peanut

为了确保Peanut的运行,从你的笔记本上运行以下内容,运行一些redis实例10分钟。

# To provision redis services for 10 minutes

还有一个脚本用于升级Peanut。

$ bash 

Linux 部署说明

下载最新的Peanut二进制文件。让它可以从任何地方执行。

$ 

然后安装etcd 集群或单节点!请参考etcd docs或这个软件库里面的bin目录。

安装虚拟化运行时间!默认情况下,花生使用docker &docker-compose

$ apt-get update
$ apt-get install docker.io -y
$ systemctl 

config.dist.yml 创建配置文件config.yml 。类似下面的内容。

# App configs

运行peanutsystemd

$ peanut api -c /path/to/config.yml

部署你的第一个redis服务器!

$ curl -X POST http://127.0.0.1:8000/api/v1/service -d 

要运行管理仪表板(仅限开发)。

克隆该项目或你自己的分叉。

$ git clone https://github.com/Clivern/Peanut.git

web/.env.dist 创建仪表板配置文件web/.env 。类似下面的内容。

VUE_APP_API_URL=http://localhost:8080

然后你可以建立或运行仪表盘

# Install npm packages

命令行工具

为了与花生API服务器互动,你可以进行基本的API调用或使用所提供的命令行工具。它还没有完成,但很快就会准备好。

支持的服务

这里是迄今为止所有支持的服务的列表,以及部署这些服务的API调用。

  • MySQL。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • MariaDB。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • PostgreSQL。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Redis.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Etcd.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Grafana.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Elasticsearch.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • MongoDB.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Graphite.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • 普罗米修斯。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Zipkin.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Memcached.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Mailhog.
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Jaeger。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • RabbitMQ。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Consul。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 
  • Vault。
$ curl -X POST http://127.0.0.1:8000/api/v1/service \
    -d 

要创建一个临时服务,你将需要在创建它时添加额外的参数。

# It will be deleted after 30 seconds

要列出在单个或多个节点上运行的所有服务。

$ curl -X GET http://127.0.0.1:8000/api/v1/service \
    -H 

删除一个服务。

$ curl -X DELETE http://127.0.0.1:8000/api/v1/service/:serviceId \
    -H 

获取类似部署状态的异步工作状态。

$ curl -X DELETE http://127.0.0.1:8000/api/v1/job/:serviceId/:jobId \
    -H 

获取服务版本。

$ curl -X GET http://127.0.0.1:8000/api/v1/tag/

版本管理

为了使我们的发布周期透明化,并努力保持向后的兼容性,Peanut是根据语义版本指南进行维护的,发布过程是可预测的,并且对商业友好。

参见我们GitHub项目的发布部分,了解花生每个发布版本的变更记录。它包含每个版本中最值得注意的变化的摘要。

Bug跟踪器

如果你有任何建议、错误报告或烦恼,请将它们报告给我们的问题跟踪器:github.com/clivern/pea…

安全问题

如果你在花生中发现了安全漏洞,请发邮件到hello@clivern.com

贡献

我们是一个开源的、社区驱动的项目,所以请随时加入我们。更多细节请参见贡献指南

许可证

© 2021, Clivern.在MIT许可下发布。

花生的作者和维护者是@clivern