部署minio使用python联合shell脚本进自动化部署

部署minio使用python联合shell脚本进自动化部署

操作系统ip地址cpu内存
centos7.9192.168.42.1031c2G

1. 下载wget

yum -y install wget

2. 下载minio

wget https://dl.min.io/server/minio/release/linux-amd64/minio

3. 授权可执行权限

chmod +x minio

4. 移动文件位置

mv minio /usr/local/bin

5. 编写系统启动文件.service文件

vim /usr/lib/systemd/system/minio.service
[Unit]
Description=minio
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
# 配置 minio 二进制文件地址
AssertFileIsExecutable=/usr/local/bin/minio  
[Service]
#指定配置文件路径
EnvironmentFile=/home/minio/conf/minio.conf  
#按照配置文件方式指定运行
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES 
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target

下面路径根据自己需要可自行修改
EnvironmentFile=/home/minio/conf/minio.conf
ExecStart=/usr/local/bin/minio server $MINIO_OPTS

6. 创建minio数据及配置文件目录

mkdir -pv /home/minio/{data,conf}

7. 配置文件内容

vim /home/minio/conf/minio.conf
# 用户名
MINIO_ACCESS_KEY=minioadmin
# 密码
MINIO_SECRET_KEY=minioadmin
# 存放数据的路径
MINIO_VOLUMES="/home/minio/data"
# 启动端口
MINIO_OPTS="--console-address :19000"

8. 启动minio

# 8.1 启动minio
systemctl restart minio  
# 8.2 设置开机自启
systemctl enable minio

9. 安装python3

这个python脚本主要内容为监听bucket桶下,上传后缀.jar文件,自动去执行/root/test.sh脚本,在脚本中可以定义一些自动发布流程

yum -y install python3
# 编辑python文件
vim minio-service.py

from minio import Minio
from minio.commonconfig import CopySource
import subprocess, sys
import os
from configparser import ConfigParser
import paramiko

# -*- coding: utf-8 -*-
# 定义MinIO服务器信息
minio_endpoint = "192.168.42.103:9000"
minio_access_key = "minioadmin"
minio_secret_key = "minioadmin"
minio_secure = False

# 定义要监听的存储桶名称和事件
bucket_name = "services"
events = ["s3:ObjectCreated:*"]

def handle_event(event):
    # 从事件中获取文件信息
    object_name = event['Records'][0]['s3']['object']['key']
    # 打印文件名称
    file_name = os.path.split(object_name)[1].replace(".jar", "")
    print(f"文件名称: {file_name}")
    # 执行shell脚本
    os.system(f'sh /root/test.sh {file_name}')
    
# 创建MinIO客户端
minio_client = Minio(
    minio_endpoint,
    access_key=minio_access_key,
    secret_key=minio_secret_key,
    secure=minio_secure
)

# 使用listen_bucket_notification方法监听存储桶事件
bucket_notifications = minio_client.listen_bucket_notification(
    bucket_name,
    prefix='',
    suffix='',
    events=events
)

# 处理监听到的事件
for event in bucket_notifications:
    handle_event(event)

10. 安装minio依赖库

pip3 install minio paramiko

11. 启动.py

nohup python3 minio-service.py > minio.log 2>&1 &

问题记录

1. 如果系统开启防火墙需要加入端口

1.1 临时添加

firewalld-cmd --add-port=19000/tcp

1.2 永久添加

firewall-cmd --add-port=19000/tcp --permanent
#重新载入配
firewall-cmd --reload
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值