管理预案
Infra 集群管理 SOP:创建,销毁,扩容,缩容,监控对象管理
Module:
Categories:
下面是与 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 插件,通常需要科学上网