Ubuntu 22.04’e MinIO Server Kurulumu
Tags: minio, server, ubuntu, opensource
Published: 2024-03-17 21:12:55

# Adım 1: MinIO Sunucusunun Kurulması ve Yapılandırılması

Bu yazı, MinIO'nun nasıl kurulacağı ve yapılandırılacağı konusunda temel bir rehber sunmaktadır. 
>MinIO, açık kaynak kodlu, yüksek performanslı bir nesne depolama çözümüdür. Veri depolama ve yönetim ihtiyaçlarınız için ideal bir seçenektir. MinIO, ikincil depolama, felaket kurtarma ve arşivleme gibi geleneksel nesne depolama kullanım durumlarında güzel bir performans sergiler.


## MinIO Avantajları
1.	**Ölçeklenebilirlik:** MinIO, artan veri taleplerini karşılamak için depolama kapasitesinin kolayca ölçeklendirilmesini sağlar.
2.	**Maliyet etkinliği:** MinIO'nun açık kaynak yapısı, satıcıya bağlılığı ortadan kaldırır ve depolama maliyetlerini azaltır.
3.	**Uyumluluk:** MinIO, Amazon S3 ile API uyumludur ve mevcut uygulamalar ve araçlarla kusursuz entegrasyon sağlar.
4.	**Güvenlik:** MinIO, saklanan bilgilerin güvenliğini sağlayan veri şifreleme, erişim kontrolü ve denetim yetenekleri sunar.
5.	**Güvenilirlik:** Veri sürümü oluşturma ve çoğaltma gibi özelliklerle MinIO, güvenilir depolama için yüksek kullanılabilirlik ve veri yedekliliği sağlar.

## MinIO Kurulumu
Mevcut sistemimizi güncelleyelim:
```sh
sudo apt update && sudo apt upgrade -y
```

Minio'yu **wget** ile indirip çalıştırılabilir hale getirelim:
```sh
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio 
sudo mv minio /usr/local/bin
```

Şu çıktıyı görmelisiniz:
```sh
Output

--2023-06-30 10:57:35--  https://dl.min.io/server/minio/release/linux-amd64/minio_20230629051228.0.0_amd64.deb
Resolving dl.min.io (dl.min.io)... 178.128.69.202, 138.68.11.125
Connecting to dl.min.io (dl.min.io)|178.128.69.202|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 37578640 (36M) [application/vnd.debian.binary-package]
Saving to: ‘minio_20230629051228.0.0_amd64.deb’

minio_20230629051228.0.0_amd64.deb               100%[=======================================================================================================>]  35.84M  14.3MB/s    in 2.5s    

2023-06-30 10:57:37 (14.3 MB/s) - ‘minio_20230629051228.0.0_amd64.deb’ saved [37578640/37578640]
```

Şimdi **dpkg** veya **apt** kullanarak yükleyin:
```sh
sudo dpkg -i minio_20230629051228.0.0_amd64.deb
```

Minio'nun kullanacağı sistem user'ını oluşturalım:
```sh
sudo groupadd -r minio-user
sudo useradd -M -r -g minio-user minio-user -s /sbin/nologin
```


Bu komutta **-s** bayrağı, **/sbin/nologin**'i **minio-user** için kabuk olarak ayarlamak anlamına gelir. Bu, **minio-user** için gerekli olmayan, kullanıcı oturum açmaya izin vermeyen bir kabuktur. **-M** flag, o kullanıcı için bir giriş dizini oluşturulmaması talimatını verir. **-g**, o kullanıcıyı belirli bir gruba eklemek anlamına gelir. **-r** bir sistem kullanıcısı oluşturma talimatını verir.

Bundan sonra dosyaları depolamak için bir dizin oluşturmanız gerekir. MinIO sunucuları daha sonra depoladığınız nesneleri bu depolama konumunda paketler halinde düzenler. Bu derste dizini minio olarak adlandıracağız:
```sh
sudo mkdir /usr/local/share/minio
```

Şimdi minio kullanıcısının bu dizinin sahipliğini almasına izin verin:
```sh
sudo chown minio-user:minio-user /usr/local/share/minio
```

Bundan sonra **/etc** dizininde MinIO yapılandırma dosyanızı oluşturun:
```sh
sudo mkdir /etc/minio
```

Şimdi yine bu dizinin sahipliğini minio-user'a verelim:
```sh
sudo chown minio-user:minio-user /etc/minio
```

Nano'yu kullanarak varsayılan yapılandırmayı değiştirmek için gereken ortam dosyasını oluşturun (istediğiniz gibi herhangi bir metin düzenleyiciyi kullanabilirsiniz):
```sh
sudo nano /etc/default/minio
```

Konfigrasyon dosyasında bulunması gerekenler;
```sh
MINIO_ACCESS_KEY="minio" # Minio'ya bağlanılacak olan kullanıcı adı
MINIO_VOLUMES="/usr/local/share/minio/" # Minionun verileri depolayacağı path
MINIO_OPTS="--certs-dir /etc/minio --address your_server_ip:9000" # Service'in çalıştıracağı minio komutu
# Yukarıda your_server_ip yerine server ip adresi verilmelidir.
MINIO_SECRET_KEY="miniostorage" #Minio'ya bağlanacak olan kullanıcının şifresi
```

Şimdi, **your_server_ip** kısmını yerel IP adresinizle değiştirin, ardından değişiklik yaptıktan sonra dosyayı kaydedip kapatın.


_MINIO_ACCESS_KEY olan kullanıcı adının minimum 3 karakter, MINIO_SECRET_KEY olan şifrenin de minimum 8 karakter olması gerektiğini unutmayınız._

Minio'yu service şeklinde çalıştıracak sistem dosyasını çekelim:
```sh
wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
```
Servisi başlatalım:
```sh
sudo systemctl start minio
```

Güvenlik duvarı yapılandırması yapacaksanız servis başlatma işlemini o adımdan sonra yapabilirsiniz.





# Adım 2 : MinIO Sunucusu İçin Güvenlik Duvarı Yapılandırma
İlk olarak, yapılandırılmış bağlantı noktasındaki MinIO sunucusuna güvenlik duvarı üzerinden erişimi etkinleştirin. Bu eğitimde bu bağlantı noktası 9000 numaralı bağlantı noktası olacaktır.

-İlk önce kuralı ekleyin:
-Şimdi güvenlik duvarını etkinleştirin:
-Aşağıdaki çıktıyı görmelisiniz:
-Aşağıdaki çıktıyı oluşturmak için **y** ve **ENTER** tuşuna basın:

```sh
sudo ufw allow 9000
sudo ufw allow 22
```

```sh
sudo ufw enable
```

```sh
Output

Command may disrupt existing ssh connections. Proceed with operation (y|n)?
```

```sh
Output

Firewall is active and enabled on system startup
```



# Adım 3 : MinIO'nun Web Arayüzüne HTTPS Kullanarak Güvenli Bağlantı
Öncelikle MinIO web arayüzüne HTTPS üzerinden bağlanın. Tarayıcınızı **https://minio-server.your_domain:9000** veya **http://your_ip:9000** adresine yönlendirerek web arayüzlerine erişebilirsiniz.



Aşağıda MinIO sunucusunun giriş ekranını görebilirsiniz:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvktedcfuv1jdewbar1e.png)


Artık kimlik bilgilerinizi kullanarak giriş yapabilirsiniz. Kullanıcı Adı için **Adım 1**'de **/etc/default/minio** ortam dosyasına ayarladığınız **MINIO_ACCESS_KEY**'i girin. Şifre için aynı dosyaya belirlediğiniz **MINIO_SECRET_KEY**'i girin ve giriş yapın.


Şimdi nesneleri saklayabileceğiniz yeni bir yapılacaklar listesi oluşturun, ana arayüzde **Create a Bucket**'a tıklayın.
 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r1rmq5ml90gz0v7t1r4h.png)



_MinIO bucket adlandırırken adınızın yalnızca küçük harf, rakam veya kısa çizgi içerdiğinden emin olun. MinIO, AWS S3 standartlarıyla uyumlu olacak şekilde paket adlandırma kurallarını sınırlar._




İyi çalışmalar.