一键启动:使用 start-local 脚本轻松管理 INFINI Console 与 Easysearch 本地环境

系列回顾与引言

在我们的 INFINI 本地环境搭建系列博客中:

  1. 第一篇《搭建持久化的 INFINI Console 与 Easysearch 容器环境》,我们深入探讨了如何使用基础的 docker run 命令,一步步构建起 Console 和 Easysearch 服务,并重点解决了数据持久化的问题。
  2. 第二篇《使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建》,我们学习了如何利用 Docker Compose 的声明式配置,将多容器应用的定义和管理变得更加简洁高效。

虽然 Docker Compose 已经极大地提升了便利性,但在实际的开发和测试流程中,我们可能还需要处理版本选择、初始配置复制、多节点配置、指标采集开启等更细致的需求。为了进一步封装这些复杂性,提供真正的一键式体验,我们精心打造了一个强大的 Shell 脚本 start-local

本篇文章将带你领略 start-local 的魅力,看看它是如何将 Console 和 Easysearch (本文仍以 Console 1.29.6 和 Easysearch 1.13.0 为例) 的本地环境搭建与管理提升到一个全新的便捷高度------只需一行命令,即可拥有一个功能完备、数据持久的本地 INFINI Console 运行环境。

start-local:您的 INFINI Console 本地环境瑞士军刀

start-local 脚本(灵感来源于 elastic/start-local)集成了环境搭建的诸多最佳实践,旨在提供极致的易用性。它在后台仍然依赖 Docker 和 Docker Compose,但为用户屏蔽了底层的复杂配置细节。

核心功能:

  • 智能版本管理:自动获取 INFINI Console 和 Easysearch 的最新稳定版(或你指定的版本)作为默认镜像标签。
  • 动态配置生成 :根据用户提供的命令行选项(如节点数、密码、版本等)自动生成 .envdocker-compose.yml 文件。
  • 初始配置自动处理:在首次启动或本地配置目录不存在时,自动从 Docker 镜像中提取并设置初始配置文件。
  • 一键式生命周期管理 :通过简单的命令 (up, down, logs, clean) 管理整个应用的启动、停止、日志查看和彻底清理。
  • 持久化内置 :默认将所有关键数据(配置、索引数据、日志)持久化到本地的 ./startlocal 目录(可配置)。
  • 集成 Agent 指标采集 :通过 --metrics-agent 选项,轻松启用 Easysearch 的指标收集并自动配置其指向 INFINI Console。
  • 跨平台设计:主要针对 Linux 和 macOS 环境。

如何获取和使用 start-local

获取和执行 start-local 最便捷的方式是通过 curl 将脚本内容直接通过管道传递给 sh 执行:

bash 复制代码
# 启动默认配置 (Console + 1 个 Easysearch 节点)
curl -fsSL http://get.infini.cloud/start-local | sh -s

# 想要更丰富的体验?试试这个:
# 启动 3 个 Easysearch 节点,设置密码,并开启 Agent 指标采集
curl -fsSL http://get.infini.cloud/start-local | sh -s -- up --nodes 3 --password "MyDevPass123." --metrics-agent

(请将 http://get.infini.cloud/start-local 替换为脚本的实际官方获取地址)

sh -s -- 部分确保脚本从标准输入读取,并且后续参数能正确传递给脚本。

脚本执行后,所有操作文件和持久化数据都会在当前目录下的 ./startlocal (默认) 子目录中创建和管理。

start-local 命令和选项概览

通过 help 命令可以查看所有支持的功能:

bash 复制代码
curl -fsSL http://get.infini.cloud/start-local | sh -s -- help

以下是一些最常用的命令和选项:

命令 (COMMAND):

  • up: 核心命令。创建并启动定义的服务。自动处理初始配置。
  • down: 停止服务,移除容器、网络和相关匿名卷。本地持久化数据不受影响。
  • logs [服务名...]: 实时查看指定服务或所有服务的日志。
  • clean: 彻底清理 。执行 down 后,删除整个工作目录 (./startlocal 及其所有内容)。
  • help: 显示帮助信息。

常用选项 (OPTIONS) (主要用于 up 命令):

  • -cv TAG, --console-version TAG: 指定 Console 镜像版本 (例如 1.29.6)。
  • -ev TAG, --easysearch-version TAG: 指定 Easysearch 镜像版本 (例如 1.13.0)。
  • -n N, --nodes N: Easysearch 节点数量 (默认 1)。
  • -p PASSWORD, --password PASSWORD: Easysearch admin 用户初始密码 (默认 ShouldChangeme123.)。
  • --services s1[,s2,...]: 指定要启动的服务 (可选值: console, easysearch)。如果未指定,默认启动两者。
  • --metrics-agent: 启用 Easysearch 指标收集代理。
  • -wd PATH, --work-dir PATH: 自定义工作目录,替代默认的 ./startlocal

实际操作示例

让我们通过几个示例来感受 start-local 的便捷:

1. 启动一个标准的开发环境 (Console + 1 个 Easysearch 节点,开启指标)

bash 复制代码
curl -fsSL http://get.infini.cloud/start-local | sh -s

脚本会自动完成所有后台工作:检查依赖、确定版本、创建工作目录、生成配置文件、复制初始配置、生成 docker-compose.yml,最后启动服务并打印访问地址。

2. 启动一个 3 节点的 Easysearch 集群,并指定版本和密码

bash 复制代码
curl -fsSL http://get.infini.cloud/start-local | sh -s -- up \
--nodes 3 \
--password "ComplexP@ssw0rd." \
--console-version 1.29.6 \
--easysearch-version 1.13.0 \
--services easysearch,console

脚本会智能处理多节点配置和持久化目录结构。

3. 查看所有服务的日志

bash 复制代码
curl -fsSL http://get.infini.cloud/start-local | sh -s -- logs

4. 停止运行环境(慎重操作)

bash 复制代码
curl -fsSL http://get.infini.cloud/start-local | sh -s -- down

这将停止运行的所有容器。

4. 删除运行环境(慎重操作)

bash 复制代码
curl -fsSL http://get.infini.cloud/start-local | sh -s -- clean

这将移除所有相关的 Docker 资源以及本地的 ./startlocal 目录。

持久化:数据安全无忧

start-local 脚本的核心设计之一就是确保数据的持久化。所有重要的配置、数据和日志都会映射到宿主机的 ./startlocal (或你通过 -wd 指定的) 目录下的结构化子目录中:

  • Console : ./startlocal/console/{config,data,logs}/
  • Easysearch (单节点) : ./startlocal/easysearch/{config,data,logs}/
  • Easysearch (多节点) : ./startlocal/easysearch/node-X/{config,data,logs}/

这意味着你可以随时 downup 你的环境,而不用担心丢失任何工作。

访问服务

启动成功后,脚本会打印出访问地址:

  • INFINI Console : http://localhost:9000 (默认主机端口)
  • INFINI Easysearch : https://localhost:9200 (默认主机端口,用户 admin,密码为你设置的或默认值)

总结:从复杂到简单,专注核心价值

从繁琐的 docker run 命令,到结构化的 docker-compose.yml,再到如今便捷的 start-local 脚本,我们一步步简化了 INFINI 本地环境的搭建和管理过程。start-local 将所有底层的复杂性封装起来,让你能够通过一行命令就拥有一个功能齐全、数据持久的本地环境,从而更专注于应用本身的功能测试、开发和学习。

这正是良好工具的价值所在------让复杂的事情变简单,让我们能更高效地创造。

希望这个 start-local 脚本能成为你日常工作中得力的助手!如果你有任何建议或发现问题,欢迎通过项目仓库反馈。

相关推荐
roo_120 小时前
github 获取构造图数据库的LNB数据集和使用说明
数据库
louqle20 小时前
docker基本知识及常用命令汇总
运维·docker·容器
叫致寒吧21 小时前
Docker
运维·docker·容器
杨浦老苏21 小时前
现代流媒体聚合播放器冬瓜TV MAX
docker·群晖·多媒体
罗汉松驻扎的工作基地21 小时前
sql server 2014 下载和安装
数据库
l1t1 天前
用docker安装oracle 19c
运维·数据库·docker·oracle·容器
Java&Develop1 天前
DataEase图表页面传参至数据库查询方法 和页面筛选方法 sql传参
数据库·sql
+VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue作业管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
@zulnger1 天前
Python 连接 MySQL 数据库_pymysql
数据库·python·mysql
别来无恙blwy1 天前
SQL Server高可用自动故障转移失败(短时间内多次转移失败,只需一步可处理)
数据库·windows·sqlserver·负载均衡·可用性测试