在 Ubuntu 18.04 LTS 上安装 Minio在 Ubuntu 18.04 LTS 上安装 Minio在 Ubuntu 18.04 LTS 上安装 Minio在 Ubuntu 18.04 LTS 上安装 Minio
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Ubuntu 18.04 LTS 上安装 Minio

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Minio 是一个用于创建您自己的对象存储的自托管解决方案。如果您以前使用过 AWS S3 服务,那么它是 AWS S3 的替代方案。 Minio 软件本身以纯二进制形式提供,甚至官方文档也建议您以这种方式使用它,而不是使用包管理器。当然,如果您希望使用 Docker 镜像在 VPS 上运行 minio,也可以使用 Docker 镜像。

在本教程中,我们将在 Ubuntu 18.04 LTS 服务器上安装并演示 Minio 的使用。该 VPS 有一个静态 IP,我将设置 DNS 记录和 TLS 连接,以使该对象存储尽可能安全并做好生产准备。

先决条件

如果您想继续操作,则需要满足以下先决条件:

  1. 运行 Ubuntu 或任何其他具有静态 IP 的 Linux 发行版的 VPS(IP_ADDRESS 将是我们的占位符,将其替换为您的 VPS 的实际 IP 地址)

  2. 完全合格的域名 [FQDN]。 example.com 将是我们的占位符。

安装和其他设置

让我们登录到我们的 VPS 并为 Minio 正常运行做好准备。

1. DNS 设置

转到维护域 DNS 记录的名称服务器,很可能可以在域注册商的网站上找到该服务器。添加一条 A 记录,将您选择的 FQDN(例如 minio.example.com )指向您的 VPS 的 IP_ADDRESS。

2. Minio 用户

在安装 Minio 之前,让我们创建一个新的 UNIX 用户帐户,minio 将在该帐户下运行。我们不想以 root 或可能具有 sudo 访问权限或在其下运行其他应用程序的普通用户身份运行它。我们创建一个minio系统帐户,名为minio-user:

$ sudo useradd --system minio-user --shell /sbin/nologin

3.Minio下载

接下来我们下载 minio 二进制文件(它是用 Go 编写的,可以编译成一个小型的轻量级二进制文件)。

获取二进制文件

$ curl -O https://dl.minio.io/server/minio/release/linux-amd64/minio

将二进制文件移动到二进制文件通常所在的位置:

$ sudo mv minio /usr/local/bin

使二进制文件可执行并赋予 minio-user 用户和组其所有权:

$ sudo chmod +x /usr/local/bin/minio
$ sudo chown minio-user:minio-user /usr/local/bin/minio

4.  /etc 配置文件、启动脚本和存储设备

我们需要 Minio 在系统重新引导时启动,并被操作系统识别为正在运行的服务。不这样做会导致灾难,例如当 OOM-killer 看到这个过程并认为它不够有用时。我们还需要一个目录来保存对象存储的实际数据:

$ sudo mkdir /usr/local/share/minio
$ sudo mkdir /etc/minio

确保 minio 完全控制这些目录:

$ sudo chown minio-user:minio-user /usr/local/share/minio
$ sudo chown minio-user:minio-user /etc/minio

在 /etc/default 目录中,我们需要创建一个 minio 文件来指定环境变量,例如我们将侦听的端口号以及应保存数据的目录(卷)。我们之前创建的卷是 /usr/local/share/minio 目录。因此,使用您最喜欢的文本编辑器创建一个文件 /etc/default/minio 并在其中添加以下内容:

MINIO_VOLUMES="/usr/local/share/minio/"
MINIO_OPTS="-C /etc/minio --address minio.example.com:443"

确保您写的是 VPS 实际指定的 FDQN,而不是上面的文字字符串 minio.example.com。端口号 9000 是他们在文档中通常使用的端口号,但我们将使用正确的 TLS 安装在端口 443 上侦听。由于该端口号小于 1024,因此我们需要明确告诉操作系统,minio 可以侦听在这些端口上:

$ sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/minio

最后,我们需要配置 minio 服务。幸运的是,执行此操作的脚本可以在他们的 GitHub 存储库中找到,我们将把它放在适当的位置:

$ curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/
minio.service
$ sudo mv minio.service /etc/systemd/system

重新加载所有 systemd 单元并启用 minio 在启动时启动

$ sudo systemctl daemon-reload
$ sudo systemctl enable minio

最后,确保您的防火墙允许端口 443 进行通信。

LetsEncrypt 使用 Certbot 的 TLS 证书

我们需要在 Minio 服务器和 LetsEncrypt 之间协商 TLS 证书。 Certbot 是为我们执行此操作并自动更新证书的客户端。我们首先安装 Certbot:

$ sudo apt update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot

然后安装证书,如 Minio 文档所述:

$ sudo certbot certonly --standalone -d minio.example.com --staple-ocsp -m
username@email.com --agree-tos

在这里,您可以在 -d 标志后输入 Minio 服务器的 FQDN,并在 -m 标志后输入您的电子邮件地址。电子邮件地址很重要,因为它允许 LetsEncrypt 通知您有关待续订的信息。

您的电子邮件现在将显示在 /etc/letsencrypt/live/minio.example.com 中。当然,最后一个目录名称取决于您选择的 FQDN。现在将证书复制到 Minio 的 /etc/minio 目录并授予其访问权限。

$ cp /etc/letsencrypt/live/minio.ranvirslog.com/fullchain.pem /etc/minio/certs/public.crt
$ cp /etc/letsencrypt/live/minio.ranvirslog.com/privkey.pem /etc/minio/certs/private.key
$ chown minio-user:minio-user /etc/minio/certs/public.crt
$ chown minio-user:minio-user /etc/minio/certs/private.key

现在您可以使用该服务了:

$ sudo service minio start
$ sudo service minio status

输出:

  • minio.service – Minio

Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2018-10-09 11:54:41 PDT; 5s ago
Docs: https://docs.minio.io
Process: 15874 ExecStartPre=/bin/bash -c [ -n "${MINIO_VOLUMES}" ] && echo "Variable
MINIO_VOLUMES not set in /etc/default/minio" (code=exited, status=0/SUCCESS)
Main PID: 15877 (minio)
Tasks: 13 (limit: 4915)
CGroup: /system.slice/minio.service
└─15877 /usr/local/bin/minio server -C /etc/minio --address minio.example.com:443 /usr/
local/share/minio/
 
Oct 09 11:54:41 hostname minio[15877]: Browser Access:
Oct 09 11:54:41 hostname minio[15877]: https://minio.example.com
Oct 09 11:54:41 hostname minio[15877]: Command-line Access: https://docs.minio.io/docs/
minio-client-quickstart-guide
Oct 09 11:54:41 hostname minio[15877]: $ mc config host add myminio
https://minio.example.com
PAMH22LU3YJIFLU82H2E IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg
…

此命令的输出将包含 minio 的访问密钥 (PAMH22LU3YJIFLU82H2E) 和秘密密钥 (IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg),如上面粗体字母所示。您的密钥可能会有所不同,因此请勿复制此处提到的密钥。

使用Minio

打开浏览器并访问 https://minio.example.com(确保使用您分配的 FQDN),然后使用服务 minio status 命令中列出的访问权限和密钥登录第一次。

Minio UI 将会迎接您。

在这里您可以使用左下角的加号上传文件或创建新存储桶。我创建了一个名为 mybucket 的新存储桶。

您可以编辑其读写策略,然后将一些文件(例如图像)上传到此存储桶中。 Minio 将为存储桶中的每个对象创建一个唯一的 URL。您可以设置每个存储桶的读写策略以及单个对象 URL 的到期日期。

结论

这是开始使用对象存储的基础知识。理想情况下,对象本身不应被修改,而只是从存储桶中读取或添加到存储桶中。您可以按照官方文档将其集成到您的应用程序中。它支持多种编程语言,从 Go、Python、JavaScript 到 .NET。

©2015-2025 Norria support@alaica.com