系列文章目录
ansible相关知识入门文章
rpmbuild构建minio
文章目录
前言
首先,查看本文章前先阅读一下顶部的两篇文章,因为本篇文章主要依赖于ansible-playbook和通过rpmbuild构建好的minio安装包进行编写的,如果需要用我构建好的minioRPM包,可以在该地址自行下载(https://download.csdn.net/download/weixin_50902636/89642252
)。同时,写该篇文章不仅是为了加深playbook的使用,更是为了交付团队更好的交付。使得客户安装部署更加简洁明了,维护中间件更加方便。
一、部署目标
1、部署过程中可以指定部署服务器IP,并对这些ip进行存活性验证
2、部署过程中可以指定minio的数据目录和安装目录
3、结合构建好的minio-RPM包快速的部署出一个四节点的minio集群
二、部署流程
主要思想: 通过指定hosts文件中安装minio服务器IP的数量来判断,如果只有一个ip,则执行单节点minio安装,如果是多个ip,则执行集群minio安装。其中安装和启动单点或者集群都通过ip数量来控制
1.部署清单目录结构
├── hosts
├── minio
│ ├── files
│ │ └── minio-RELEASE_2023_05_18-1.x86_64.rpm
│ ├── handlers
│ ├── meta
│ ├── tasks
│ │ ├── check.yml
│ │ ├── config.yml
│ │ ├── install.yml
│ │ ├── main.yml
│ │ ├── setup.yml
│ │ └── start.yml
│ ├── templates
│ │ ├── cluster_run.sh.j2
│ │ ├── minio_restart.sh.j2
│ │ ├── single_run.sh.j2
│ │ └── stop.sh.j2
│ └── vars
│ └── main.yml
└── minio.yml
2.files目录解析
files目录一般用于存放安装包源文件
3.tasks目录解析
3.1、main.yml
指定在执行ansible-playbook过程中yml文件的执行顺序和名称。即执行哪些yml文件,就以下方的形式添加在此处即可
- include: setup.yml
- include: install.yml
- include: config.yml
- include: start.yml
- include: check.yml
3.2、setup.yml
在此处的作用是根据vars目录main.yml文件中定义的变量创建目录
- name: create data dir
file:
path: "{
{DATA_DIR}}"
state: directory
3.3、install.yml
执行RPM包安装的步骤,将rpm包拷贝到对应主机目录下,执行安装并删除对应主机上的rpm包,并判断安装命令是否执行成功
- name: copy minio rpm
copy:
src: "{
{Package_Name}}"
dest: /tmp/"{
{
Package_Name}}"
- name: install minio rpm package
yum:
name: /tmp/"{
{
Package_Name}}"
state: present
register: