Skip to content

Instantly share code, notes, and snippets.

@linuxmalaysia
Last active October 10, 2025 13:30
Show Gist options
  • Save linuxmalaysia/a1a8b0dfeeb27d88af7eca685d124f9c to your computer and use it in GitHub Desktop.
Save linuxmalaysia/a1a8b0dfeeb27d88af7eca685d124f9c to your computer and use it in GitHub Desktop.
Panduan Ringkas: Pemasangan MinIO di Ubuntu 24.04 Menggunakan Podman

Panduan Ringkas: Pemasangan MinIO di Ubuntu 24.04 Menggunakan Podman

Tujuan: Dokumen ini adalah versi yang sesuai untuk dikongsi secara awam. Semua alamat IP sebenar, nama pengguna, dan kata laluan telah digantikan dengan contoh/tempahan supaya tidak mendedahkan maklumat sensitif.

Nota penting: Sentiasa gantikan nilai contoh di bawah (<...>) dengan nilai sebenar yang selamat dan unik apabila mengimplementasikan pada persekitaran produksi.

Gambaran keseluruhan

Panduan ini menerangkan langkah utama untuk:

  • Memasang Podman dan komponen rangkaian rootless
  • Menala parameter kernel (sysctl)
  • Menyediakan pengguna khusus dan direktori storan
  • Menjana sijil TLS menggunakan CA dalaman (contoh)
  • Membuat unit systemd untuk menjalankan MinIO dalam Podman Pod (rootless)
  • Mengkonfigurasi MinIO Client (mc) dan polisi pengguna

Semua konfigurasi yang mengandungi alamat, nama pengguna, atau kata laluan telah ditukar kepada contoh seperti minio.example.com, exampleuser, dan REPLACE_WITH_STRONG_PASSWORD.

Prasyarat ringkas

  • Ubuntu 24.04
  • Akses sudo
  • Sambungan rangkaian ke repositori pakej

1. Pasang Podman dan alat penting

sudo apt update

sudo apt install -y podman slirp4netns openssl

podman --version

Jika anda merancang untuk prestasi rangkaian lebih baik pada rootless, pertimbangkan pasta apabila tersedia untuk versi Podman anda. slirp4netns adalah lalai tetapi mempunyai batasan prestasi.

2. Penalaan kernel (contoh sysctl)

Tambahkan baris berikut ke /etc/sysctl.conf (nilai contoh; ubah mengikut keperluan):

vm.max_map_count = 262144
vm.overcommit_memory = 1
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
vm.swappiness = 10
fs.file-max = 65536000
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
vm.dirty_bytes = 629145600
vm.dirty_background_bytes = 314572800
fs.inotify.max_user_watches = 500000
net.core.somaxconn = 2147483647
net.ipv4.ip_local_port_range = 1024 65535

Kemudian aktifkan tanpa reboot:

sudo sysctl -p

3. Cipta pengguna khas dan direktori

Gunakan nama pengguna contoh minio atau serupa. Di bawah ialah arahan contoh:

sudo adduser --system --group --no-create-home minio

sudo mkdir -p /data/minio

sudo mkdir -p /etc/minio/certs /etc/minio/certs/CAs

sudo chown -R minio:minio /data/minio /etc/minio

sudo loginctl enable-linger minio

Amaran: Jika anda menjalankan MinIO rootless, pastikan pemilik direktori adalah sama seperti pengguna yang menjalankan Podman rootless.

4. Menjana sijil TLS (contoh)

Fail konfigurasi contoh untuk SAN (/etc/minio/certs/minio_cert.cnf):

[ req ]
default_bits = 4096
prompt = no
default_md = sha256
req_extensions = v3_req
distinguished_name = dn

[ dn ]
C = MY
ST = Wilayah
L = Bandar
O = ExampleOrg
OU = IT
CN = minio.example.com

[ v3_req ]
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = minio.example.com
DNS.2 = localhost
IP.1 = 192.0.2.10
IP.2 = 127.0.0.1

Langkah penjanaan (contoh):

cd /etc/minio/certs

# Jana kunci CA (simpan dengan selamat)

openssl genrsa -aes256 -passout pass:REPLACE_WITH_CA_PASS -out ca.key 4096

openssl req -new -x509 -sha256 -days 3650 -subj "/C=MY/ST=Wilayah/L=Bandar/O=ExampleOrg/OU=IT/CN=Example CA" -passin pass:REPLACE_WITH_CA_PASS -key ca.key -out cacerts.pem

# Kunci pelayan dan CSR

openssl genrsa -out private.key 4096

openssl req -new -sha256 -subj "/CN=minio.example.com" -key private.key -out cert.csr

# Tandatangan sijil pelayan

openssl x509 -req -sha256 -days 3650 -passin pass:REPLACE_WITH_CA_PASS -in cert.csr -CA cacerts.pem -CAkey ca.key -out public.crt -extfile minio_cert.cnf -CAcreateserial

# Salin Root CA untuk MinIO CAs

cp cacerts.pem CAs/ca.crt

# Jadikan sistem hos mempercayai CA (contoh)

sudo cp cacerts.pem /usr/local/share/ca-certificates/minio-ca.crt

sudo update-ca-certificates

sudo chown -R minio:minio /etc/minio/certs

Gantikan REPLACE_WITH_CA_PASS dengan frasa laluan yang selamat. Simpan kunci CA (ca.key) di lokasi yang selamat dan hadkan aksesnya.

5. Unit systemd contoh (Podman Pod rootless)

Contoh fail: /etc/systemd/system/container-minio.service

[Unit]
Description=MinIO Object Storage (Podman Rootless)
After=network-online.target
Wants=network-online.target

[Service]
User=minio
Group=minio
Restart=always
RestartSec=5s
LimitNOFILE=1048576

ExecStartPre=/usr/bin/podman pod create --name minio-pod -p 9000:9000 -p 9001:9001
ExecStart=/usr/bin/podman run --pod minio-pod \
  --name minio-server \
  -v /data/minio:/data \
  -v /etc/minio/certs:/root/.minio/certs:z \
  -e MINIO_ROOT_USER='REPLACE_WITH_ROOT_USER' \
  -e MINIO_ROOT_PASSWORD='REPLACE_WITH_STRONG_PASSWORD' \
  quay.io/minio/minio:latest server /data --console-address ":9001"

ExecStop=/usr/bin/podman pod stop -t 10 minio-pod
ExecStopPost=/usr/bin/podman pod rm -f minio-pod

[Install]
WantedBy=multi-user.target


Penting: Gantikan REPLACE_WITH_ROOT_USER dan REPLACE_WITH_STRONG_PASSWORD dengan nilai sebenar yang kuat. Jangan gunakan kata laluan contoh ini pada sistem produksi.

6. Pasang dan konfigurasi MinIO Client (mc)

curl https://dl.min.io/client/mc/release/linux-amd64/mc --create-dirs -o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc

sudo mv $HOME/minio-binaries/mc /usr/local/bin/

mc --version

# Tetapkan alias (contoh menggunakan HTTPS)

mc alias set minio-local https://minio.example.com:9000 REPLACE_WITH_ROOT_USER REPLACE_WITH_STRONG_PASSWORD

Jika sijil anda self-signed dan belum dipercayai oleh hos, mc akan meminta --insecure. Sasaran ialah agar anda tidak perlu menggunakan --insecure selepas CA ditambahkan ke storan dipercayai hos.

7. Cipta pengguna API dan baldi (contoh)

Gunakan nilai contoh dan gantikan selepas semakan:

# Tambah pengguna API (contoh)

mc admin user add minio-local exampleuser ExamplePassword123!

mc mb minio-local/exampleuser-bucket

# Cipta polisi JSON contoh (had akses kepada bucket sahaja)

cat > exampleuser_policy.json <<
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject","s3:PutObject","s3:DeleteObject","s3:ListBucket"],
      "Resource": [
        "arn:aws:s3:::exampleuser-bucket/*",
        "arn:aws:s3:::exampleuser-bucket"
      ]
    }
  ]
}

mc admin policy create minio-local exampleuser-policy exampleuser_policy.json

mc admin policy attach minio-local exampleuser-policy --user exampleuser

8. Akses Konsol MinIO (contoh)

  • Konsol dalaman (pelayar pada hos): https://localhost:9001

  • Akses dari rangkaian: https://minio.example.com:9001

Kelayakan contoh (JANGAN guna pada produksi):

  • Root user: REPLACE_WITH_ROOT_USER / REPLACE_WITH_STRONG_PASSWORD

  • Pengguna contoh: exampleuser / ExamplePassword123!

9. Amalan Keselamatan & Pengurusan

  • Gunakan kata laluan panjang dan unik; simpan dalam pengurus rahsia (vault).

  • Hadkan capaian kepada kunci CA dan kunci peribadi pelayan.

  • Audit akses dan aktifkan logging MinIO.

  • Uji pemulihan data secara berkala.

  • Pertimbangkan penggunaan pasta atau rangkaian lain untuk peningkatan prestasi rootless.

10. Penutup

Panduan ini menerangkan langkah utama untuk pemasangan Podman, penalaan kernel, penyediaan pengguna dan sijil TLS, serta konfigurasi MinIO dan polisi pengguna. Semua nilai sensitif telah digantikan dengan placeholder contoh.

Prasyarat ringkas

Ubuntu 24.04, akses sudo, dan sambungan rangkaian ke repositori pakej.

1. Pasang Podman dan alat penting

sudo apt update && sudo apt install -y podman slirp4netns openssl

2. Penalaan kernel

Tambahkan nilai sysctl contoh dan aktifkan dengan 'sudo sysctl -p'.

3. Cipta pengguna khas dan direktori

Gunakan contoh pengguna 'minio' dan direktori '/data/minio'.

4. Menjana sijil TLS (contoh)

Gantikan CN dan IP dengan contoh 'minio.example.com' dan '192.0.2.10'.

5. Unit systemd contoh

Fail contoh '/etc/systemd/system/container-minio.service' menggunakan placeholder 'REPLACE_WITH_ROOT_USER'.

6. Pasang dan konfigurasi MinIO Client

Gunakan 'mc alias set minio-local https://minio.example.com:9000 REPLACE_WITH_ROOT_USER REPLACE_WITH_STRONG_PASSWORD'.

7. Cipta pengguna API dan baldi

Contoh pengguna: 'exampleuser' dan polisi akses bucket khusus.

8. Akses Konsol MinIO

https://minio.example.com:9001 (gunakan placeholder selamat).

9. Amalan Keselamatan & Pengurusan

Gunakan kata laluan panjang dan unik, audit akses, uji pemulihan data.

10. Penutup

Gantikan semua placeholder dengan konfigurasi sebenar dan selamat sebelum digunakan.

Harisfazillah Jamel - 10 Okt 2025 - linuxmalaysia [@] gmail dot com

https://docs.google.com/document/d/e/2PACX-1vQOkr_cqHWA-k94qamHxSsT61njd7Uoam-f-mHgz6C3rqCgjbYMUUA-pv0vI6vOW8b-h__sa4zKms2q/pub

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment