管理预案

Infra 集群管理 SOP:创建,销毁,扩容,缩容,监控对象管理

下面是与 INFRA 模块相关的一些管理任务:


安装Infra模块

使用 infra.yml 剧本在 Infra 节点上安装 INFRA 模块:

./infra.yml     # 在 infra 分组上安装 INFRA 模块

卸载Infra模块

使用 infra-rm.yml 剧本从 Infra 节点上卸载 INFRA 模块:

./infra-rm.yml  # 从 infra 分组上卸载 INFRA 模块

扩容 Infra 模块

想要扩容现有 Infra 部署,首先修改 infra 分组,添加新的节点 IP,并为其分配不重复的 Infra 实例号 infra_seq

all:
  children:
    infra:
      hosts:
        10.10.10.10: { infra_seq: 1 } # 原有的 1 号节点
        10.10.10.11: { infra_seq: 2 } # 新的 2 号节点

然后使用 infra.yml 剧本在新的节点上安装 INFRA 模块:

./infra.yml -l 10.10.10.11    # 在新节点上安装 INFRA 模块

管理本地软件仓库

您可以使用以下剧本子任务,管理 Infra节点 上的本地软件仓库(YUM/APT):

./infra.yml -t repo              #从互联网或离线包中创建本地软件仓库

./infra.yml -t repo_dir          # 创建本地软件仓库
./infra.yml -t repo_check        # 检查本地软件仓库是否已经存在?
./infra.yml -t repo_prepare      # 如果存在,直接使用已有的本地软件仓库
./infra.yml -t repo_build        # 如果不存在,从上游构建本地软件仓库
./infra.yml     -t repo_upstream     # 添加上游仓库 repo/list 文件
./infra.yml     -t repo_remove       # 如果 repo_remove == true,则删除现有的仓库文件
./infra.yml     -t repo_add          # 将上游仓库文件添加到 /etc/yum.repos.d (或 /etc/apt/sources.list.d)
./infra.yml     -t repo_url_pkg      # 从由 repo_url_packages 定义的互联网下载包
./infra.yml     -t repo_cache        # 使用 yum makecache / apt update 创建上游软件源元数据缓存
./infra.yml     -t repo_boot_pkg     # 安装如 createrepo_c、yum-utils 等的引导包...(或 dpkg-)
./infra.yml     -t repo_pkg          # 从上游仓库下载包 & 依赖项
./infra.yml     -t repo_create       # 使用 createrepo_c & modifyrepo_c / dpkg-dev 创建本地软件仓库
./infra.yml     -t repo_use          # 将新建的仓库添加到 /etc/yum.repos.d | /etc/apt/sources.list.d
./infra.yml -t repo_nginx        # 如果 nginx 没有运行,启动 nginx 作为文件服务器

其中常用的命令为:

./infra.yml     -t repo_upstream     # 向 INFRA 节点添加 repo_upstream 中定义的上游软件仓库
./infra.yml     -t repo_pkg          # 从上游软件仓库下载包及其依赖项。
./infra.yml     -t repo_create       # 创建/更新本地 yum/apt 仓库

管理Nginx

./infra.yml -t nginx                       # 重置 Nginx 组件
./infra.yml -t nginx_index                 # 重新渲染 Nginx 首页内容
./infra.yml -t nginx_config,nginx_reload   # 重新渲染 Nginx 配置,对外暴露新的上游服务。

如果用户在 infra_portal 列表中使用了 certbot 字段填入了证书名称,则可以使用以下命令使用 certbot 申请免费 HTTPS 证书:

# 使用 certbot 申请真实域名的免费 HTTPS 证书
./infra.yml -t nginx_certbot,nginx_reload -e certbot_sign=true

管理基础设施组件

您可以使用以下剧本子任务,管理 Infra节点 上的各个基础设施组件

./infra.yml -t infra           # 配置基础设施
./infra.yml -t infra_env       # 配置管理节点上的环境变量:env_dir, env_pg, env_pgadmin, env_var
./infra.yml -t infra_pkg       # 安装INFRA所需的软件包:infra_pkg_yum, infra_pkg_pip
./infra.yml -t infra_user      # 设置 infra 操作系统用户组
./infra.yml -t infra_cert      # 为 infra 组件颁发证书
./infra.yml -t dns             # 配置 DNSMasq:dns_config, dns_record, dns_launch
./infra.yml -t nginx           # 配置 Nginx:nginx_config, nginx_cert, nginx_static, nginx_launch, nginx_exporter
./infra.yml -t prometheus      # 配置 Prometheus:prometheus_clean, prometheus_dir, prometheus_config, prometheus_launch, prometheus_reload
./infra.yml -t alertmanager    # 配置 AlertManager:alertmanager_config, alertmanager_launch
./infra.yml -t pushgateway     # 配置 PushGateway:pushgateway_config, pushgateway_launch
./infra.yml -t blackbox        # 配置 Blackbox Exporter: blackbox_launch
./infra.yml -t grafana         # 配置 Grafana:grafana_clean, grafana_config, grafana_plugin, grafana_launch, grafana_provision
./infra.yml -t loki            # 配置 Loki:loki_clean, loki_dir, loki_config, loki_launch
./infra.yml -t infra_register  # 将 infra 组件注册到 prometheus

其他常用的任务包括:

./infra.yml -t nginx_index                        # 重新渲染 Nginx 首页内容
./infra.yml -t nginx_config,nginx_reload          # 重新渲染 Nginx 配置,对外暴露新的上游服务。
./infra.yml -t prometheus_conf,prometheus_reload  # 重新生成 Prometheus 主配置文件,并重载配置
./infra.yml -t prometheus_rule,prometheus_reload  # 重新拷贝 Prometheus 规则 & 告警,并重载配置
./infra.yml -t grafana_plugin                     # 从互联网上下载 Grafana 插件,通常需要科学上网




最后修改 2025-04-08: update tasks and infra docs (2085572)