<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on 驽马不舍</title>
    <link>https://mhh-blog.vercel.app/posts/</link>
    <description>Recent content in Posts on 驽马不舍</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 29 Oct 2025 09:56:10 +0800</lastBuildDate>
    <atom:link href="https://mhh-blog.vercel.app/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>K8sGPT</title>
      <link>https://mhh-blog.vercel.app/posts/k8sgpt/</link>
      <pubDate>Wed, 29 Oct 2025 09:56:10 +0800</pubDate>
      <guid>https://mhh-blog.vercel.app/posts/k8sgpt/</guid>
      <description>&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://k8sgpt.ai/&#34;&gt;k8sgpt&lt;/a&gt; 是一个用于诊断修复 k8s 集群故障的 AI 工具。支持 OpenAI、Azure、Ollama 等 AI 提供商。&lt;/p&gt;&#xA;&lt;h2 id=&#34;准备&#34;&gt;准备&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;AI 提供商。由于政策法规原因，国内无法正常访问国际的 AI 提供商，阿里云的&lt;a href=&#34;https://www.aliyun.com/product/bailian&#34;&gt;百炼大模型&lt;/a&gt;兼容 OpenAI 接口。接口的具体兼容性，可查看&lt;a href=&#34;https://help.aliyun.com/zh/model-studio/compatibility-of-openai-with-dashscope?spm=a2c4g.11186623.help-menu-2400256.d_2_10_0.186168edmqzs8m&#34;&gt;OpenAI兼容接口&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;helm&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;安装&#34;&gt;安装&lt;/h2&gt;&#xA;&lt;p&gt;k8sgpt 支持命令行与服务端两种部署方式。&lt;/p&gt;&#xA;&lt;h3 id=&#34;命令行方式部署&#34;&gt;命令行方式部署&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装命令行工具&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 使用 curl&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -LO https://github.com/k8sgpt-ai/k8sgpt/releases/latest/download/k8sgpt_Linux_x86_64.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar -xzf k8sgpt_Linux_x86_64.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo mv k8sgpt /usr/local/bin/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 使用 wget&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://github.com/k8sgpt-ai/k8sgpt/releases/latest/download/k8sgpt_Linux_x86_64.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar -xzf k8sgpt_Linux_x86_64.tar.gz&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo mv k8sgpt /usr/local/bin/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;更多安装方式，请参考&lt;a href=&#34;https://k8sgpt.ai/docs/getting-started/installation&#34;&gt;CLI Installation&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;配置 kubeconfig 文件&lt;/p&gt;&#xA;&lt;p&gt;k8sgpt 默认读取 &lt;code&gt;~/.kube/config&lt;/code&gt; 路径的配置文件访问 kubernetes 集群，也可通过 &lt;code&gt;--kubeconfig&lt;/code&gt; 指定配置文件。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;配置 AI 提供商&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;k8sgpt auth add --baseurl https://dashscope.aliyuncs.com/compatible-mode/v1 -m qwen-plus-latest -p sk-xxxxxxxxxxxxxxxxx&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;查看已添加的认证配置&lt;/p&gt;</description>
    </item>
    <item>
      <title>快速入门工作流平台 N8N</title>
      <link>https://mhh-blog.vercel.app/posts/n8n-01/</link>
      <pubDate>Thu, 16 Oct 2025 20:08:04 +0800</pubDate>
      <guid>https://mhh-blog.vercel.app/posts/n8n-01/</guid>
      <description>&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;p&gt;n8n 是一款开源的工作流平台，大量的封装节点可用，已集成的功能超过 400 项。可视化的方式搭建工作流，使用连接线将不同功能的节点串联起来。&lt;/p&gt;&#xA;&lt;h2 id=&#34;场景&#34;&gt;场景&lt;/h2&gt;&#xA;&lt;p&gt;我目前运用的场景是一些重复运维工作，例如账号开通、授权、资源购买等。&lt;/p&gt;&#xA;&lt;h2 id=&#34;部署&#34;&gt;部署&lt;/h2&gt;&#xA;&lt;p&gt;官方提供 SaaS 版本也可直接注册使用。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装 docker&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# $ curl -fsSL test.docker.com -o get-docker.sh&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ curl -fsSL get.docker.com -o get-docker.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ sudo sh get-docker.sh --mirror Aliyun&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# $ sudo sh get-docker.sh --mirror AzureChinaCloud&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装 &lt;a href=&#34;https://docs.docker.com/compose/install/&#34;&gt;docker-compose&lt;/a&gt;，高版本的 docker 内置  &lt;code&gt;docker-compose&lt;/code&gt; 工具， &lt;code&gt;docker compose&lt;/code&gt; 运行服务，无须额外安装。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;安装 n8n，部署生产环境时建议使用 Postgres 数据库。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;GENERIC_TIMEZONE，TZ 时区&lt;/li&gt;&#xA;&lt;li&gt;N8N_EDITOR_BASE_URL 访问地址&lt;/li&gt;&#xA;&lt;li&gt;WEBHOOK_URL webhook 触发地址&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;n8n&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;image&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;docker.io/n8nio/n8n:1.116.0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;restart&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;always&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ports&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;5678:5678&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#ae81ff&#34;&gt;GENERIC_TIMEZONE=Asia/Shanghai&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#ae81ff&#34;&gt;TZ=Asia/Shanghai&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#ae81ff&#34;&gt;N8N_EDITOR_BASE_URL=http://n8n.example.com&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#ae81ff&#34;&gt;WEBHOOK_URL=http://n8n.example.com/&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#ae81ff&#34;&gt;./n8n_data:/home/node/.n8n&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    - &lt;span style=&#34;color:#ae81ff&#34;&gt;./local-files:/files&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;初始化配置，推荐使用真实邮箱注册管理员账号，以便申请社区版本的证书。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 Fedora 打造属于自己的办公系统</title>
      <link>https://mhh-blog.vercel.app/posts/fedora/</link>
      <pubDate>Thu, 25 Sep 2025 16:10:32 +0800</pubDate>
      <guid>https://mhh-blog.vercel.app/posts/fedora/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;&#xA;&lt;p&gt;在购买 MBP 之前，自己在大学时期使用的笔记本上面折腾过黑苹果，现在依然清晰记得笔记本配置 CPU 是 intel i5-4200H，4GB 内存，1TB 硬盘。苹果系统之所以流畅，比 Windows 系统稳定，操作系统也是针对硬件进行了定制化开发，所以折腾黑苹果的过程中，每一个硬件都会带来驱动不兼容的问题，例如：显示器花屏、触控板不灵、蓝牙无法工作、扬声器没声音等。&lt;/p&gt;&#xA;&lt;p&gt;2019 年自己花了 ￥12679 购买了一台最低配的 Intel 版本的 MBP（MacBookPro），其中还打了 6 千多元的京东白条。拿到之后经过浅浅体验，感觉好极了，系统流畅，超清视网膜屏幕，多手势触控板。再也不用为了体验苹果系统而去折腾黑苹果了，但也没有理想的那么好，散热不行、五国语言（宕机）、品牌溢价过高。换到了第二份工作之后，公司配备了 M 系列芯片的 MBP，再一次让我认为 MBP 是非常值得购买的笔记本，加之官方降价。迄今也觉得 MBP 是非常值得购买的笔记本。&lt;/p&gt;&#xA;&lt;p&gt;第三份工作，公司配备了一台 8C8GB 的台式机，自己将初始化的 Windows 10 升级至了 11。Windows 11 配合 WSL（windows subsystem for linux） 使用起来的能够满足日常的办公，类似与苹果系统的全局搜索、原生支持 Linux 系统、交互体验大幅度提升。虽然 WSL 到目前已经了解决 Windows 安装 Linux 基础软件的问题，但对个人而言，还是有很多无法丝滑使用的地方。网络，WSL 支持 NAT 与 Mirror 两种模式转发网络，本质上这也是也一个轻量级的虚拟机，在使用容器部署服务或暴露 WSL 中的端口时，都显得相对麻烦。如果要验证一些内核相关的特性，根本无法满足，如 ebpf。于是，我决定尝试一款 Linux 桌面系统，脑袋里面蹦出了 Ubuntu、Debian、RockyLinux、Fedora。经过简单思索，优先试装 Fedora。对其它发行版有着刻板印象，Ubuntu 臃肿、Debian 简陋、RockyLinux 定位服务器。&lt;/p&gt;&#xA;&lt;h2 id=&#34;fedora-简介&#34;&gt;Fedora 简介&lt;/h2&gt;&#xA;&lt;p&gt;Fedora 作为 RHEL 的上游发行版，技术更新迭代迅速，Linus 也将 Fedora 作为自己的开发系统，自己或多或少受了一定的影响，Linus 曾公开说过，自己只是希望找一个安装方便的系统，更专于程序的开发。我还是幻想和技术大牛使用同样的系统，在将来的某一天也会如他一般技术超群，。&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何使用 Vercel 托管 Hugo 项目</title>
      <link>https://mhh-blog.vercel.app/posts/hugo-vercel/</link>
      <pubDate>Wed, 24 Sep 2025 11:53:36 +0800</pubDate>
      <guid>https://mhh-blog.vercel.app/posts/hugo-vercel/</guid>
      <description>&lt;h2 id=&#34;简介&#34;&gt;简介&lt;/h2&gt;&#xA;&lt;h3 id=&#34;hugo&#34;&gt;Hugo&lt;/h3&gt;&#xA;&lt;p&gt;Hugo 是一款静态网站生成框架，官方首页标语称之为世界上最快的构建框架（Hugo The world’s fastest framework for building websites）。它可将 Markdown 渲染为 HTML，并且有多种的主题可用，对 IT 工作者及其利好。&lt;/p&gt;&#xA;&lt;h3 id=&#34;vercel&#34;&gt;Vercel&lt;/h3&gt;&#xA;&lt;p&gt;Vercel 与 Github Pages, Cloudflare pages 类似，支持免费计划托管静态网站，集成 Github 完成自动构建。&lt;/p&gt;&#xA;&lt;h2 id=&#34;准备&#34;&gt;准备&lt;/h2&gt;&#xA;&lt;h3 id=&#34;安装-hugo&#34;&gt;安装 hugo&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Fedora 安装 Hugo&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo dnf install hugo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;MacOS 安装 Hugo&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;brew install hugo&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;更多的安装方式请参考&lt;a href=&#34;https://gohugo.io/installation/&#34;&gt;官方文档&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;其他&#34;&gt;其他&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;安装 &lt;a href=&#34;https://git-scm.com/book/en/v2/Getting-Started-Installing-Git&#34;&gt;Git&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;注册 &lt;a href=&#34;https://vercel.com/&#34;&gt;Vercel&lt;/a&gt; 账号&lt;/li&gt;&#xA;&lt;li&gt;注册 &lt;a href=&#34;https://github.com/&#34;&gt;Github&lt;/a&gt; 账号&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;创建与部署&#34;&gt;创建与部署&lt;/h2&gt;&#xA;&lt;h3 id=&#34;创建一个-hugo&#34;&gt;创建一个 Hugo&lt;/h3&gt;&#xA;&lt;p&gt;查询已安装的 Hugo 版本&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;创建一个 hugo 项目&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;hugo new site quickstart&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd quickstart&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;初始化项目为 git 仓库&lt;/p&gt;</description>
    </item>
    <item>
      <title>AWS Command Line Interface</title>
      <link>https://mhh-blog.vercel.app/posts/aws-command-line-interface/</link>
      <pubDate>Tue, 23 Sep 2025 21:46:29 +0800</pubDate>
      <guid>https://mhh-blog.vercel.app/posts/aws-command-line-interface/</guid>
      <description>&lt;h2 id=&#34;为什么出现-aws-cli-&#34;&gt;为什么出现 AWS CLI ？&lt;/h2&gt;&#xA;&lt;p&gt;AWS 命令行界面是用于管理 AWS 产品的命令行工具，AWS Command Line Interface 简称 AWS CLI，CLI 并非 Client 的缩写。您可配合脚本文件完成一些简单的任务，本文将示例，如何使用 AWS CLI 新增一个用户，并将用户加入用户组。&lt;/p&gt;&#xA;&lt;p&gt;运维人员多数时间都是在和命令行，云产品打交道。大部分人的系统性编程能力都较弱，甚者不会写一点代码。即便现在 AI 编程如日中天，我也不敢贸然将 AI 编写的工具来操作生产环境的数据，如果已经熟练掌握某门语言，这倒是可以在审阅之后投入使用。学习使用 AWS CLI 的成本极低，只需要了解所需的子命令和参数即可。&lt;/p&gt;&#xA;&lt;h2 id=&#34;linux-安装&#34;&gt;Linux 安装&lt;/h2&gt;&#xA;&lt;p&gt;| 如需安装其他版本的 CLI，可参考&lt;a href=&#34;https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html&#34;&gt;AWS Command Line Interface&lt;/a&gt;安装&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip&amp;#34;&lt;/span&gt; -o &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;awscliv2.zip&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;unzip awscliv2.zip&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo ./aws/install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运行 AWS CLI 仅需安装一个二进制文件就可运行，相比编程一个特定的程序要省事许多，直接跳过了搭建环境与编译程序的环节。&lt;/p&gt;&#xA;&lt;h2 id=&#34;配置-aws-cli&#34;&gt;配置 AWS CLI&lt;/h2&gt;&#xA;&lt;p&gt;命令行的基本用法 &lt;code&gt;aws [options] &amp;lt;command&amp;gt; &amp;lt;subcommand&amp;gt; [&amp;lt;subcommand&amp;gt; ...] [parameters]&lt;/code&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;新增一个 AWS IAM Manage 编程用户，并授予 IAMFullAccess 的访问策略。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;执行配置命令&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;aws configure&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          AWS Access Key ID &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;None&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;: accesskey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          AWS Secret Access Key &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;None&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;: secretkey&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          Default region name &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt;None&lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;: us-west-2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;管理-iam-center-资源&#34;&gt;管理 IAM Center 资源&lt;/h2&gt;&#xA;&lt;p&gt;Identity and Access Management (IAM) 与 IAM Identity Center 差别在于，IAM Identity Center 支持通过 SSO 登录，作者本人当前使用的是 IAM Identity Center，方便与内部的 Authentik 系统集成。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Free Cloud Resource</title>
      <link>https://mhh-blog.vercel.app/posts/free-cloud-resource/</link>
      <pubDate>Mon, 22 Sep 2025 22:57:30 +0800</pubDate>
      <guid>https://mhh-blog.vercel.app/posts/free-cloud-resource/</guid>
      <description>&lt;h1 id=&#34;一些免费的云资源&#34;&gt;一些免费的云资源&lt;/h1&gt;&#xA;&lt;p&gt;在自己学习的过程中，或实验性的尝试一些技术时，难免需要云服务提供能力。其中的能力包括单不限于，公网访问、快速搭建环境、稳定的基础环境。以下推荐的云服务皆是外服的资源，原因是国内云厂商几乎不提供免费（额度）套餐可用。&#xA;请提前准备好支持 Master/Visa 的信用，大多数的厂商都会要求先绑卡再使用，绑卡的过程中会扣除一笔小额的费用，扣除的费用用于验证信用卡是否有效，随后会将扣除的金额返回至信用卡。&lt;/p&gt;&#xA;&lt;h2 id=&#34;supabase&#34;&gt;supabase&lt;/h2&gt;&#xA;&lt;p&gt;supabase 是一家提供的 Postgres 云服务厂商，支持 API 与 posgres 客户端两种方式调用数据，并且提供 web 编辑器操作数据。&lt;/p&gt;&#xA;&lt;p&gt;Postgres 免费套餐：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;500MB 内存&lt;/li&gt;&#xA;&lt;li&gt;512MB 存储&lt;/li&gt;&#xA;&lt;li&gt;5GB 出口流量&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;koyeb&#34;&gt;Koyeb&lt;/h2&gt;&#xA;&lt;p&gt;Koyeb 是一家以提供容器托管为主的基础设施平台，同时支持托管 Postgres 服务，相比 supabase 支持的种类更丰富。&lt;/p&gt;&#xA;&lt;p&gt;计算服务免费套餐：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;vCPU 0.1&lt;/li&gt;&#xA;&lt;li&gt;RAM 512MB&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;计算服务可以直接通过容器镜像地址或 github 仓库内的 Dockerfile 部署服务。Koyeb 会定期（随机）重启服务，我由尝试通过拨测工具阻止服务休眠或被重启，拨测周期为 1min 的频率依然无法阻止服务被重启。免费的计算服务也不支持挂载数据库。&lt;/p&gt;&#xA;&lt;h2 id=&#34;zeabur&#34;&gt;Zeabur&lt;/h2&gt;&#xA;&lt;p&gt;Zeabur 是国人创立的容器托管平台，所有的服务都部署在 kubernetes 内，应用市场内提供了大量的应用模板。可理解为平台是一个 helm chart 仓库，并且可直接部署至平台。&lt;/p&gt;&#xA;&lt;p&gt;绑定信用卡之后，平台每月会赠送 $5 的费用，在服务的 Metrics 界面可查看单个服务一个月的预估消费额。价格如下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;vCPU 免费&lt;/li&gt;&#xA;&lt;li&gt;内存 $0.00025/GB 每分钟&lt;/li&gt;&#xA;&lt;li&gt;出口流量 $0.10 GB&lt;/li&gt;&#xA;&lt;li&gt;持久存储 $0.20 GB 每月&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;cloudflare&#34;&gt;cloudflare&lt;/h2&gt;&#xA;&lt;p&gt;cloudflare 有着大量的免费服务和免费额度的服务可用，被称之为“赛博菩萨”。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Jumpserver</title>
      <link>https://mhh-blog.vercel.app/posts/jumpserver/</link>
      <pubDate>Mon, 22 Sep 2025 21:38:51 +0800</pubDate>
      <guid>https://mhh-blog.vercel.app/posts/jumpserver/</guid>
      <description>&lt;h1 id=&#34;jumpserver&#34;&gt;Jumpserver&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.jumpserver.org/&#34;&gt;Jumpserver&lt;/a&gt; 是由&lt;a href=&#34;https://www.fit2cloud.com/&#34;&gt;飞致云&lt;/a&gt;开源的堡垒机管理工具。作为运维人员，登录 Linux 主机是非常高频的事项。如果登录 Jumpserver 开启了 MFA，重复输入动态验证码是令人非常痛苦的环节。本文介绍如何一键登录 Jumpserver，无需手动输入密码与验证码。&lt;/p&gt;&#xA;&lt;h1 id=&#34;配置-ssh-密钥&#34;&gt;配置 SSH 密钥&lt;/h1&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;开启 Jumpserver ssh 客户端端口，Jumpserver 的&lt;a href=&#34;https://docs.jumpserver.org/zh/v3/installation/network_port/&#34;&gt;默认 ssh 端口&lt;/a&gt;为 2222&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;上传 ssh 密钥&#xA;登录 Jumpserver 的网页端，并切换至“个人信息”界面，将个人主机的 ssh 公钥更新至认证配置。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;验证 ssh 免密登录，进入输入验证码界面表示 ssh 密钥配置成功&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ssh username@example.com -p &lt;span style=&#34;color:#ae81ff&#34;&gt;2222&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;配置-totp-cli&#34;&gt;配置 totp-cli&lt;/h1&gt;&#xA;&lt;h2 id=&#34;安装-top-cli&#34;&gt;安装 top-cli&lt;/h2&gt;&#xA;&lt;p&gt;方式一，二进制安装&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -Ls https://github.com/yitsushi/totp-cli/releases/latest/download/totp-cli_Linux_x86_64.tar.gz | sudo tar -xzf - -C /usr/local/bin&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;方式二，源码安装&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;go install github.com/yitsushi/totp-cli@latest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;导入-totp-密钥&#34;&gt;导入 totp 密钥&lt;/h2&gt;&#xA;&lt;p&gt;提前准备一个用于获取 totp 随机密钥的密码，并妥善保管。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export namespace&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;jumpserver&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export account&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&amp;lt;username&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/usr/local/bin/totp-cli add-token $namespace $account&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Namespace: jumpserver&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Account: &amp;lt;username&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Token: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Password: &amp;lt;输入密码&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;验证生成的设备验证码&#34;&gt;验证生成的设备验证码&lt;/h2&gt;&#xA;&lt;p&gt;执行命令后输入生成验证码所需的密码&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
