尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Ansible + Docker 部署 MinIO 集群

Ansible + Docker 部署 MinIO 集群
📅 发布时间:2026/6/20 2:26:22

Ansible + Docker 部署 MinIO 集群

1. 准备工作

1.1 主机列表

IP 主机名 内存(GB) CPU核数 磁盘 操作系统 CPU 架构
10.0.0.13 arc-pro-dc01
my.registry.com
16 1 500GB CentOS 7.9.2009 x86_64
10.0.0.16 arc-pro-dc04 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.17 arc-pro-dc05 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.18 arc-pro-dc06 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.19 arc-pro-dc07 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.20 arc-pro-dc08 8 2 500GB CentOS 7.9.2009 x86_64
10.0.0.21 arc-pro-dc09 8 2 500GB CentOS 7.9.2009 x86_64

1.2 已安装服务

版本 arc-pro-dc01 arc-pro-dc04 arc-pro-dc05 arc-pro-dc06 arc-pro-dc07 arc-pro-dc08 arc-pro-dc09
Ansible 2.9.27 ✅
Harbor v2.13.2 ✅
Docker 28.1.1 ✅ ✅ ✅ ✅ ✅ ✅ ✅
Docker Compose v2.39.2 ✅ ✅ ✅ ✅ ✅ ✅ ✅

说明:

  • 每个服务器的 IP 均是静态的
  • 每个服务器的防火墙都已关闭
  • 每个服务器的 SELINUX 已经禁用
  • 每个服务器均存在一个管理员用户 admin,该用户可以免密码执行 sudo 命令;
  • 在 arc-pro-dc01 机器上,可以使用 admin 用户免密码 ssh 到其他机器;
  • 服务器之间的时间同步;
  • 所有操作均使用 admin 用户完成;
  • 私有镜像仓库地址:https://my.registry.com:10443。

为使集群满足以上要求,参考下列文章进行配置:

  • 使用 VMware Workstation 安装 CentOS-7 虚拟机
  • 用 Ansible 批量完成 CentOS 7 操作系统基础配置
  • 使用 Ansible 批量安装 Docker
  • Docker 私有镜像仓库 Harbor 安装部署带签名认证

1.3 集群规划

版本 arc-pro-dc04 arc-pro-dc05 arc-pro-dc0 6 arc-pro-dc07 arc-pro-dc08 arc-pro-dc09
MinIO RELEASE.2025-09-07T16-13-09Z ✅ ✅ ✅ ✅ ✅ ✅

每台机器使用一个数据目录:/data/minio/data

1.4 镜像准备

找一个可以连接互联网的、已经安装了 docker 的服务器,下载镜像

docker pull minio/minio:RELEASE.2025-09-07T16-13-09Z
docker image save minio/minio:RELEASE.2025-09-07T16-13-09Z -o minio.RELEASE.2025-09-07T16-13-09Z.tar.gz

将 nifi.1.28.1.tar.gz 上传到本集群任意一台服务器,导入镜像:

docker load minio.RELEASE.2025-09-07T16-13-09Z.tar.gz
docker tag minio/minio:RELEASE.2025-09-07T16-13-09Z my.registry.com:10443/library/minio/minio:RELEASE.2025-09-07T16-13-09Z
# 上传到私服
docker push my.registry.com:10443/library/minio/minio:RELEASE.2025-09-07T16-13-09Z

2. Ansible 文件

2.1 Ansible 目录结构

说明:在 arc-pro-dc01 机器上,执行 ansible 命令的基础目录为 /home/admin/ansible

$ tree /home/admin/ansible/
/home/admin/ansible/
├── ansible.cfg
├── hosts
└── minio   ├── docker-compose.yml.j2
    └── start-minio-container.yml

2.2 ansible.cfg

[defaults]
inventory=./hosts
host_key_checking=False

2.3 hosts

[minio]
arc-pro-dc04
arc-pro-dc05
arc-pro-dc06
arc-pro-dc07
arc-pro-dc08
arc-pro-dc09

2.4 docker-compose.yml.j2

services:minio:image: my.registry.com:10443/library/minio/minio:RELEASE.2025-09-07T16-13-09Zrestart: unless-stoppedcontainer_name: miniohostname: {{ inventory_hostname }}network_mode: hostenvironment:MINIO_VOLUMES: "http://arc-pro-dc0{4...9}:9000/root/minio/data"MINIO_ROOT_USER: "minioadmin"MINIO_ROOT_PASSWORD: "minioadmin123"volumes:- {{ data_dir }}:/root/minio/datacommand: server --console-address ":9090"

说明:

  • MINIO_ROOT_USER:管理员用户名
  • MINIO_ROOT_PASSWORD:管理员密码(最少 8 位)
  • MINIO_VOLUMES:集群地址和数据目录,arc-pro-dc0{4...9} 代表从 arc-pro-dc04 到 arc-pro-dc09 这 6 台机器,每个 minio 容器内的数据盘都是 /root/minio/data

2.5 start-minio-container.yml

---
- name: Start Minio Containerhosts: miniobecome: truegather_facts: falsevars:minio_owner: adminminio_group: admincompose_file_dir: /opt/app/miniodata_dir: /data/minio/datatasks:- name: Remove old minio container if existscommand: docker rm -f minioignore_errors: true- name: Remove minio directories if they existfile:path: "{{ item }}"state: absentloop:- "{{ compose_file_dir }}"- "{{ data_dir }}"- name: Create minio directoriesfile:path: "{{ item }}"state: directoryowner: "{{ minio_owner }}"group: "{{ minio_group }}"mode: '0755'loop:- "{{ compose_file_dir }}"- "{{ data_dir }}"- name: Deploy docker-compose.ymltemplate:src: docker-compose.yml.j2dest: "{{ compose_file_dir }}/docker-compose.yml"owner: "{{ minio_owner }}"group: "{{ minio_group }}"mode: '0644'- name: Start minio containercommand: docker-compose -f {{ compose_file_dir }}/docker-compose.yml up -d

3. 部署

在 arc-pro-dc01(Ansible 管理节点) 服务器执行

$ pwd
/home/admin/ansible# 部署并启动 Minio 集群
$ ansible-playbook nifi/start-minio-container.yml

查看任一一个节点的容器日志,查看登录信息:docker logs minio

INFO: IAM load(startup) finished. (duration: 4.164028ms)
---------------------------
MinIO Object Storage Server
Copyright: 2015-2025 MinIO, Inc.
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Version: RELEASE.2025-09-07T16-13-09Z (go1.24.6 linux/amd64)API: http://10.0.0.16:9000  http://172.17.0.1:9000  http://172.18.0.1:9000  http://127.0.0.1:9000 
WebUI: http://10.0.0.16:9090 http://172.17.0.1:9090 http://172.18.0.1:9090 http://127.0.0.1:9090        Docs: https://docs.min.io
---------------------------
# 这里说建议内核版本升级到 4.0 以上,生产环境要考虑升级
WARN: Detected Linux kernel version older than 4.0 release, there are some known potential performance problems with this kernel version. MinIO recommends a minimum of 4.x linux kernel version for best performance

5. 访问页面

访问任一节点:

  • http://10.0.0.16:9090
  • http://10.0.0.17:9090
  • http://10.0.0.18:9090
  • http://10.0.0.19:9090
  • http://10.0.0.20:9090
  • http://10.0.0.21:9090

image

image

相关新闻

  • 自动遍历测试利器:开源工具AppCrawler 配置全解析
  • 250928
  • window 安全模式卸载任何软件

最新新闻

  • Go应用安全开发指南:从依赖扫描到运行时防护的完整实践
  • 2026年口碑好的河北工业研磨机/工业研磨机/河北数控双头前角研磨机/数控一体研磨机精选厂家推荐 - 行业平台推荐
  • 2026年正规的四川铣床机械加工/四川数控连床机械加工定制加工厂家推荐 - 品牌宣传支持者
  • 2026年知名的太仓视觉非标自动化设备/太仓单端热敏非标自动化设备/IGBT非标自动化设备厂家哪家好 - 行业平台推荐
  • 2026年可靠的郑州代账报税/郑州代账性价比高的公司 - 品牌宣传支持者
  • 2026荆州漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号