Gemini CLI快速运维
- 使用Google CLI 可以在服务器上使用命令行调用Gemini API,这样就可以让AI自主抉择,并且方便AI自己读取文件,读取日志,读取执行命令的输出信息,避免了人为频繁在服务器和WEB版AI之间来回复制、粘贴。并且来回复制粘贴还会遗漏重要信息或者步骤,无法提供完整的上下文,导致AI做出错误判断。
- 在运维的角度考虑,每天要维护很多不同的服务器,所以不能按照正常的安装流程,因为占用时间太长,污染系统环境(下载包,手工配置相关参数等占用时间。安装的依赖包也可能和系统已有的依赖冲突,污染系统环境)。所以需要制作一个绿色免安装的Gemini CLI版本,并编写一个启动脚本,将脚本和Gemini CLI免安装版放在代码仓库中(注意设置为私有)。运维时,登录需要维护的服务器,git clone 代码,执行启动脚本即可。运维完毕,删除Gemini CLI项目目录,不留痕迹。
效果演示:
-
演示示例
输入:"查看服务器哪些目录占用磁盘比较多"
gemini会生成相应命令,询问你是否可以执行。回车确认。
![输入图片说明]()
配置步骤总览:获取Google AI Studio Key ---> 配置SSH远程端口转发 ---> 制作Gemini CLI免安装版
获取Google AI Studio Key
-
要调用 Google Gemini API,首先必须申请一个 API Key,有了 API Key 之后,便可访问它,API Key 的申请地址为 https://aistudio.google.com/app/api-keys。登录进去后,点击“创建API密钥”,然后创建一个新的 API Key,创建完毕后,记得把 API Key 复制下来。
![输入图片说明]()
-
获取地址:https://aistudio.google.com/app/api-keys
- 需要有账号,没有注册即可。
- 有免费额度。
配置SSH 远程端口转发
Gemini CLI部署到服务器后,使用时调用API需要连接外网,所以需要通过自己的笔记本或者可以连接外网的服务器做一下转发。
反向隧道:原理是:把服务器的请求 -> 发给 SSH 隧道 -> 传回你的电脑(或者可以通外网的服务器) -> 通过你电脑的代理软件(或者可以通外网的服务器) -> 访问外网。
个人电脑使用方法
- 登录
# 格式:ssh -R <服务器端口>:127.0.0.1:<你电脑的真实端口> ...
ssh -R 7890:127.0.0.1:7897 ecs-user@服务器IP
- 7890: 服务器端监听的端口
- 7897: 笔记本梯子程序实际工作的端口
- -R: 告诉 SSH 建立反向转发。
-
登录服务器后
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 -
验证
curl -I https://www.google.com注意:只在这个ssh窗口里做临时的运维动作(比如
curl测试、wget下载文件、pip install、docker pull),做完就关掉窗口。不要在这个窗口里启动长期运行的生产业务,因为关闭窗口转发就没有了。ping 协议是ICMP,所以不能用ping测试。
Google Cloud Shell使用方法
Google Cloud Shell为免费使用
使用方法:
-
登录Google Cloud(需要注册用户) :https://console.cloud.google.com/
-
登录后点击右上角控制台
![输入图片说明]()
-
进入控制台后点击"终端"图标
![输入图片说明]()
-
登录Google Cloud Shell
注:Google Cloud Shell 只会保留用户家目录下的文件(5G的磁盘使用量),运行的程序和非用户家目录下的文件都会定期清理。所以需要写一个脚本安装tinyproxy,每次使用时候执行。
bash tinyproxy_start.sh脚本内容。
#!/bin/bashecho "开始初始化 Tinyproxy 环境..."# 1. 安装 Tinyproxy (如果系统重置了,这里会自动重装) if ! command -v tinyproxy &> /dev/null; thenecho "检测到未安装 Tinyproxy,正在安装..."sudo apt-get update -qqsudo apt-get install tinyproxy -y -qq elseecho "Tinyproxy 已安装" fi# 2. 自动生成配置文件 (直接覆盖 /etc/tinyproxy/tinyproxy.conf) # 注意:我们配置日志和PID文件到 /tmp,避免权限问题 echo "正在生成配置文件..." sudo bash -c 'cat > /etc/tinyproxy/tinyproxy.conf <<EOF # --- 核心配置 --- User root Group root Port 8888 Timeout 600 MaxClients 100# --- 权限控制 --- Allow 127.0.0.1 Allow ::1# --- 日志与进程 (放在 /tmp 保证 Cloud Shell 只有普通权限也能跑) --- LogFile "/tmp/tinyproxy.log" PidFile "/tmp/tinyproxy.pid" LogLevel Info EOF'# 3. 清理可能存在的旧进程 (防止端口冲突) sudo pkill tinyproxy # 等待一秒确保端口释放 sleep 1# 4. 启动 Tinyproxy echo "正在启动 Tinyproxy..." # Cloud Shell 中建议直接用 sudo 启动,简单粗暴 sudo tinyproxy -c /etc/tinyproxy/tinyproxy.conf# 5. 验证状态 echo "检查端口状态:" # 检查 8888 端口 if sudo netstat -tunlp | grep :8888 > /dev/null; thenecho "成功!Tinyproxy 正在监听 8888 端口"echo "端口详情:"sudo netstat -tunlp | grep tinyproxyecho "----------------------------------------"echo "现在你可以执行 SSH 命令了:"echo "ssh -R 7890:127.0.0.1:8888 ecs-user@你的服务器IP" elseecho "启动失败,请检查报错。" fi- 更改倒数第四行为实际服务器IP
-
登录后配置临时环境变量
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 -
验证
curl -I https://www.google.com注意:只在这个ssh窗口里做临时的运维动作(比如
curl测试、wget下载文件、pip install、docker pull),做完就关掉窗口。不要在这个窗口里启动长期运行的生产业务,因为关闭窗口转发就没有了。ping 协议是ICMP,所以不能用ping测试。
Gemini
Gemini CLI
-
登录Google创建key,
这个是AI Studio(推荐):https://aistudio.google.com/app/api-keys
这个是Google Console通用的:https://console.cloud.google.com/apis/credentials
这两个都能使用,且调用的模型一样。AI Studio可以看到各种模型的调用统计以及限制和配额(有免费额度)。
-
安装node.js
# 安装 Node.js 18 或更高版本(可通过 node -v 查看当前版本) # mac系统 brew install node node -v -
安装google cli
# 全局安装 npm install -g @google/gemini-cli -
设置环境变量
export GEMINI_API_KEY="你的key" -
验证
# gemini cli本意是帮助管理代码项目,如果在默认的目录下,会提示,所以切换到一个非主目录下执行就不会有提示了,安全一些,防止Gemini或者人失误操作重要文件。mac需要export https_proxy=http://127.0.0.1:7897,否则连接不上外网 cd Desktop/gemini_test export https_proxy=http://127.0.0.1:7897 && gemini "你好"
免安装版本(服务器版本)
制作过程
创建一个代码仓库
-
下载node.js
curl -O https://nodejs.org/dist/v24.13.0/node-v24.13.0-linux-x64.tar.xz -
解压
tar xf node-v24.13.0-linux-x64.tar.xz -
删除tar包
rm -rf node-v24.13.0-linux-x64.tar.xz -
重命名
mv node-v24.13.0-linux-x64 ops-tools -
安装gemini cli
# 进入这个文件夹 cd ops-tools# 使用这个文件夹里的 npm 来安装 gemini # --prefix . 表示安装到当前目录,而不是全局 export PATH=$PWD/bin:$PATH ./bin/npm install -g @google/gemini-cli --prefix . -
验证是否安装成功
输出gemini帮助的相关信息即为成功
./bin/gemini --help -
打包
# 1. 回到上一级目录 cd .. # 打包 tar czf ops-tools.tar.gz ops-tools/# 删除 mv ops-tools /tmp/ -
切分文件并上传代码仓库
因为Gitee普通用户单个文件限制50MB,单个代码仓库限制500MB。
# gemini.part_ 是文件前缀,生成的实际文件是 gemini.part_aa 等 split -b 40m ops-tools.tar.gz gemini.part_# 验证,可以看到分成了三个文件 ls -lh gemini.part_* -
gemini cli启动验证(手动验证)
-
在要运行gemini cli的服务器拉取代码。注意登录服务器的方式为上面《配置SSH远程端口转发》的步骤
-
配置临时环境变量
export https_proxy=http://127.0.0.1:7890 # 验证 curl -I https://www.google.com export PATH="/root/geminicli/ops-tools/bin:$PATH" export GEMINI_API_KEY="你的key"-
PATH 中的路径根据实际情况更改:
PATH="${拉取代码时所在目录绝对路径}/geminicli/ops-tools/bin:$PATH"
-
将GEMINI_API_KEY的值填写为实际的Google AI Studio API Key
-
-
启动gemini
./geminicli/ops-tools/bin/gemini输入"你好",gemini回复后即表示启动成功,网络连接成功。
![输入图片说明]()
-
-
添加启动脚本
vim gemini
#!/bin/bash# ================= 配置区域 ================= export GEMINI_API_KEY="你的key" # 阿里云等国内服务器可能需要代理 export http_proxy="http://127.0.0.1:7890" export https_proxy="http://127.0.0.1:7890" export HTTP_PROXY="http://127.0.0.1:7890" export HTTPS_PROXY="http://127.0.0.1:7890" export ALL_PROXY="http://127.0.0.1:7890" # 禁用 SSL 严格检查 (推荐保留) export NODE_TLS_REJECT_UNAUTHORIZED=0# ================= 逻辑区域 ================= BASE_DIR=$(cd "$(dirname "$0")"; pwd) TOOLS_DIR="$BASE_DIR/ops-tools"# 1. 检查是否需要解压 if [ ! -d "$TOOLS_DIR" ]; thenecho "首次运行,正在组装并初始化环境..."# 检测分片文件if ls "$BASE_DIR"/gemini.part_* 1> /dev/null 2>&1; then# 核心逻辑:把所有碎片拼回一个大文件,然后解压# 使用管道直接解压,连临时大文件都不用生成,省空间cat "$BASE_DIR"/gemini.part_* | tar -xz -C "$BASE_DIR"if [ $? -eq 0 ]; thenecho "环境组装完毕!"elseecho "解压失败,可能是分片文件损坏。"exit 1fielseecho "错误:找不到 gemini.part_* 分片文件。"exit 1fi fi# ================= 3. 启动逻辑 =================# 将便携版 node 加入 PATH export PATH="$TOOLS_DIR/bin:$PATH"# 【核心修改】使用 exec 启动 # 1. exec 会让 Gemini 直接替换当前 Shell 进程,完美处理交互信号 # 2. 如果不加参数直接运行 ./g,Gemini 默认就会进入交互模式 exec gemini "$@"- 将GEMINI_API_KEY的值填写为实际的Google AI Studio API Key
- chmod +x gemini
-
推送代码
1. rm -rf ops-tools/ 2. 提交代码
使用方法
-
使用SSH远程端口转发的方式登录 服务器
-
git clone 代码到本地
-
运行脚本启动gemini
# 非交互式 ./gemini "你好"# 交互式 ./gemini -
输入/help 查看帮助信息;/model 切换模型
-
演示示例
输入:"查看服务器哪些目录占用磁盘比较多"
gemini会生成相应命令,询问你是否可以执行。回车确认。
![输入图片说明]()




