一键启动:使用 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 脚本能成为你日常工作中得力的助手!如果你有任何建议或发现问题,欢迎通过项目仓库反馈。

相关推荐
win x几秒前
Redis集群
java·数据库·redis
qq_124987075311 分钟前
基于Spring Boot的“味蕾探索”线上零食购物平台的设计与实现(源码+论文+部署+安装)
java·前端·数据库·spring boot·后端·小程序
江上月51320 分钟前
JMeter中级指南:从数据提取到断言校验全流程掌握
java·前端·数据库
晨旭缘20 分钟前
零基础后端入门:JDK21 + PostgreSQL+Java项目
java·数据库·postgresql
萧曵 丶21 分钟前
MySQL InnoDB 实现 MVCC 原理
数据库·mysql·mvcc
ss27323 分钟前
ruoyi 新增每页分页条数
java·数据库·mybatis
牛奔29 分钟前
Docker Compose 解决服务间 DNS 解析失败问题
运维·docker·容器
万粉变现经纪人36 分钟前
如何解决 pip install mysqlclient 报错 ‘mysql_config’ not found 问题
数据库·python·mysql·pycharm·bug·pandas·pip
lkbhua莱克瓦241 小时前
进阶-SQL优化
java·数据库·sql·mysql·oracle
石小千1 小时前
Myql binlog反向解析成sql
数据库·sql