如何在Ubuntu 16.04上使用Minio設置對象存儲服務器


介紹

從基於雲的備份解決方案到高可用性內容傳送網絡(CDN),對象存儲已成為現代技術領域不可分割的一部分。 而且,由於其占地面積小,界面簡單,與多個雲存儲服務兼容, Minio對象存儲服務器具有很大的沖擊力。

Minio是一種開源對象存儲服務器,可將非結構化數據(如照片,視頻,虛擬機映像,容器和日志文件)存儲為對象。 在分布式模式下,Minio提供了一個單一的對象存儲服務器,它可以跨多個服務器分布多個驅動器

Minio寫在Go中,附帶命令行客戶端和瀏覽器界面,並支持高級消息隊列協議(AMQP) , 彈性搜索 , Redis , NATSPostgres目標的簡單排隊服務。

在本教程中,您將:

  • 在您的DigitalOcean服務器上安裝Minio服務器,並將其配置為systemd服務。

  • 使用“加密”設置SSL / TLS證書,以確保服務器和客戶端之間的通信安全。

  • 通過HTTPS訪問Minio的瀏覽器界面,以使用和管理服務器。

先決條件

要完成本教程,您將需要:

  • 一個Ubuntu 16.04服務器通過遵循這個Ubuntu 16.04初始服務器設置教程設置 ,包括sudo非root用戶和防火牆。

  • 為您的Minio服務器設置了以下DNS記錄。 有關如何添加它們的詳細信息,請參閱此主機名教程 。

    • 您的服務器名稱(例如, minio-server.example.com )指向您的對象服務器的IPv4地址的記錄。
    • 如果您希望您的服務器可以通過IPv6訪問,則您的服務器名稱指向對象服務器的IPv6地址的AAA​​A記錄。
  • 使用本指南安裝在服務器上,在Ubuntu 16.04上安裝Go 。

第1步 - 安裝和配置Minio服務器

您可以通過編譯源代碼或二進制文件來安裝Minio服務器。 在這一步中,我們將把服務器安裝成最簡單的方法 - 通過二進制文件,然后我們將配置所有的內容。

首先,登錄到您的服務器:

ssh sammy@your_server_ip 

如果最近還沒有更新包數據庫,請立即更新:

sudo apt-get update

接下來,下載Minio服務器的二進制文件:

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

一個名為minio的文件將被下載到您的工作目錄中。 使其可執行:

sudo chmod +x minio

現在,將文件移動到Minio的系統啟動腳本期望找到的/usr/local/bin目錄中:

sudo mv minio /usr/local/bin

出於安全考慮,我們不希望以root身份運行Minio服務器。 而且,由於我們將在第2步中使用的systemd腳本尋找一個名為minio-user的用戶帳戶和組,現在我們來創建它們。

sudo useradd -r minio-user -s /sbin/nologin

將二進制文件的所有權更改為minio-user :

sudo chown minio-user:minio-user /usr/local/bin/minio

接下來,我們需要創建一個Minio將存儲文件的目錄。 這將是您將在第5步中創建的存儲的存儲位置。

sudo mkdir /usr/local/share/minio 

將該目錄的所有權授予minio-user :

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

/etc目錄是服務器配置文件的最常見位置,因此我們將為Minio創建一個地方。

sudo mkdir /etc/minio 

也將該目錄的所有權歸還minio-user :

sudo chown minio-user:minio-user /etc/minio

使用nano或您最喜愛的文本編輯器創建修改默認配置所需的環境文件:

sudo nano /etc/default/minio 

並添加以下變量:

在/ etc /默認/ minio
MINIO_VOLUMES="/usr/local/share/minio/" MINIO_OPTS="-C /etc/minio --address your-server-ip:9000"
  • MINIO_VOLUMES :指向您之前創建的存儲目錄。

  • MINIO_OPTS :修改服務器的行為。 -C標志將Minio指向應該使用的配置目錄,而--address標志告訴Minio要綁定的IP地址和端口。 如果未指定IP地址,Minio將綁定服務器上配置的每個地址,包括localhost和任何與Docker相關的IP地址,因此最好在該文件中明確指定IP地址。 默認端口為9000 ,但可以選擇其他端口。

最后,完成更改后,保存並關閉環境文件。

Minio現已安裝,所以接下來,我們將配置服務器作為系統服務運行。

第2步 - 安裝Minio Systemd啟動腳本

在此步驟中,我們將配置要作為systemd服務進行管理的Minio服務器。 首先,使用以下命令下載Minio服務描述符文件:

curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

下載完成后,一個名為minio.service的文件應該在你的工作目錄中。

要在應用之前對minio.service的內容進行審核,請在文本編輯器中打開它以查看其內容:

nano minio.service

一旦你熟悉腳本的內容,關閉你的文本編輯器。

Systemd要求將單位文件存儲在systemd配置目錄中,因此在minio.service移動minio.service :

sudo mv minio.service /etc/systemd/system

然后,運行以下命令重新加載所有systemd設備:

sudo systemctl daemon-reload

最后,啟動Minio啟動:

sudo systemctl enable minio

現在安裝並配置了systemd腳本,讓我們啟動服務器。

第3步 - 啟動Minio服務器

在此步驟中,您將啟動服務器並修改防火牆以允許通過瀏覽器界面進行訪問。

首先,啟動Minio服務器:

sudo systemctl start minio

您可以使用命令驗證Minio的狀態,其綁定的IP地址,其內存使用情況等。

sudo systemctl status minio

你應該得到如下輸出:

minio.service - Minio Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2017-04-07 00:26:10 UTC; 11min ago Docs: https://docs.minio.io Process: 25069 ExecStartPre=/bin/bash -c [ -n "${MINIO_VOLUMES}" ] || echo "Variable MINIO_VOLUMES not set in /etc/default/minio" (code=exit Main PID: 25073 (minio) Tasks: 6 Memory: 20.7M CPU: 544ms CGroup: /system.slice/minio.service └─25073 /usr/local/bin/minio server -C /etc/minio --address :9000 /usr/local/share/minio/ Apr 07 00:26:11 ashtonandgray minio[25073]: Browser Access: Apr 07 00:26:11 ashtonandgray minio[25073]: http://174.138.67.91:9000 

接下來,您需要啟用通過防火牆訪問配置端口上的Minio服務器。 在本教程中,這是端口9000 。

所以,先添加規則:

sudo ufw allow 9000 

然后重新啟動防火牆:

sudo systemctl restart ufw

Minio現在已經准備好接受流量,但在連接到服務器之前,通過安裝SSL / TLS證書來確保通信。

第4步 - 使用加密SSL / TLS證書保護對Minio服務器的訪問

在此步驟中,我們將使用基於控制台的證書生成客戶端Concert ,使用開放源代碼來加密證書頒發機構來創建SSL / TLS證書。 雖然還有其他方法可以生成Let's Encrypt證書,Concert由Minio的開發人員編寫,也是由官方安裝說明的一部分 。

首先,使用命令下載Concert:

go get -u github.com/minio/concert 

一旦完成,一個名為concert的文件應該在你的GOPATHbin目錄中。

接下來,我們將生成證書。

注意:要生成證書, concert要求通過防火牆允許通過端口443的流量。

使用--dirs標志運行以下命令來告訴Concert要使用的輸出目錄,電子郵件地址和域名:

sudo GOPATH/bin/concert gen --dir minio-certs sammy@example.com example.com 

輸出將如下所示:

2017/04/09 01:21:08 Generated certificates for example.com under minio-certs will expire in 89 days.

而且,Concert將會生成一個private.key和一個public.crt文件,您可以通過在指定的目錄中運行ls進行驗證。

接下來,我們將這兩個文件復制到Minio的服務器配置文件夾下的certs目錄中,這是本教程的/etc/minio 。

sudo cp minio-certs/private.key /etc/minio/certs/ sudo cp minio-certs/public.crt /etc/minio/certs/

現在,將文件的所有權更改為minio-user :

sudo chown minio-user:minio-user /etc/minio/certs/private.key sudo chown minio-user:minio-user /etc/minio/certs/public.crt

重新啟動Minio服務器,以便它知道證書並開始使用HTTPS:

sudo systemctl restart minio

由於生成的Let's Encrypt證書有效期為90天,手動重復更新將無效率,請在服務器模式下啟動Concert以設置自動更新證書的系統:

sudo concert server --dir minio-certs sammy@example.com example.com 

因此,Minio的連接現在是安全的,SSL / TLS證書將自動為您續訂。 在下一步中,您將通過瀏覽器連接到Minio來使用和管理服務器。

第5步 - 使用HTTPS安全連接Minio的Web界面

在此步驟中,您將通過HTTPS安全地連接到Minio Web界面,然后創建桶並將對象上傳到其中。

通過將瀏覽器指向https:// example.com : 9000來訪問Web界面。

接下來,您需要找到您的登錄憑據。 當您在第3步中啟動服務器時, /etc/minio將其配置文件寫入/etc/minio目錄。該配置文件config.json包含您現在需要訪問服務器的accessKeysecretKey值。 確保將兩個密鑰復制並保存在易於接近和安全的地方,以備將來。

/etc/minio/config.json
{ "version": "19", "credential": { "accessKey": "8ngv6i97QZV959Y87Y007FP", "secretKey": "C6hK8ytyBe3Q952bght65434JiZN08itG49jG5RX" }, "region": "us-east-1", ... }

現在,通過輸入您的憑據登錄到主界面,並使用輸入字段下方的箭頭單擊圓形按鈕。

從那里點擊主界面右下角的淺紅色+按鈕,彈出兩個黃色按鈕。

Minio的主界面

單擊中間,黃色按鈕,並在提示符中輸入新的桶的名稱,按ENTER鍵保存您的響應。 您的新的桶現在已准備好用於存儲!

當您要將對象添加到存儲桶中時,請單擊與之前相同的指示燈,然后單擊頂部的黃色按鈕以打開文件上傳提示。

注意: Minio對象存儲服務器上的一個對象的大小可以高達5 TB,遠遠超過單個DigitalOcean服務器可以容納的數據,但是通過DigitalOcean的塊存儲服務 ,您可以將可用存儲量大大擴展到獨立的Minio服務器。

在這一點上,您已經完成了整個基本的Web界面,但除了創建存儲桶和上傳對象之外,還可以生成新的登錄憑據,在對象的可共享鏈接上設置過期日期,並完全刪除對象。

結論

您現在擁有使用Minio的自己的對象存儲服務器,您可以使用我們加密SSL / TLS證書從Web界面安全地連接。 或者,您可能需要查看FreeBSD,Linux,Mac和Windows的Minio桌面客戶端 ,作為使用和管理對象存儲服務器的替代方法。

另外,如果您希望將Minio安裝的存儲容量增加到服務器的磁盤大小之外,可以使用DigitalOcean的塊存儲服務將卷附加到服務器,將存儲容量擴展多達80 TB,成本僅為成本的一小部分旋轉同樣大小的Droplet。

有關Minio的更多信息,請參見項目文檔網站 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM