Cluster Control On AlmaLinux 9 / Ubuntu 22.04 Menggunakan Podman

Maklumat lanjut tentang Clustercontrol

https://docs.severalnines.com/docs/clustercontrol/getting-started/next-generation-of-clustercontrols-web-application/

1. Pastikan masa dan tarikh pada GMT local server.

timedatectl set-timezone "Asia/Kuala_Lumpur"
timedatectl --adjust-system-clock

* contoh *  timedatectl set-time 02:12:35

2. Pasangkan software  packages yang diperlukan

# Ubuntu

apt install podman buildah git etckeeper

# Centos Streams / AlmaLinux / RockyLinux

dnf install -y buildah podman git podman-docker etckeeper

Tarik image ClusterControl

podman pull severalnines/clustercontrol

podman image ls

### Mula ###  Ini untuk simpanan sejarah sahaja

### Untuk Ubuntu pasang podman buildah dan git. Pastikan Ubuntu versi 20.04 dan ke atas

### https://linoxide.com/how-to-install-podman-on-ubuntu-20-04/

Untuk Ubuntu 22.04,  podman boleh dipasang secara terus

# Ubuntu

apt install podman buildah git etckeeper

# Centos Streams / AlmaLinux / RockyLinux

dnf install -y buildah podman git podman-docker etckeeper

3. Buat direktori yang sesuai. Biasanya dalam $HOME username ada sudo

mkdir clustercontrol

cd clustercontrol/

Sekiranya mahu jalankan semula Pod clustercontrol daripada asal (full reset) namakan direktori sedia ada kepada nama sesuai

 pastikan yourpassword tukarkan kepada password yang bersesuaian (tukarkan backupsebelumdelete)

mv /clustercontrol /backupsebelumdelete

Contoh

mv /clustercontrol /clustercontrol-backup-20220229

4. Dapatkan source clustercontrol

git clone https://github.com/severalnines/docker

5. Bina Pod dengan buildah

cd docker/

(dot at the end of command - meaning current directory)

buildah bud -f Dockerfile -t severalnines/clustercontrol .

Sekiranya tidak mahu build dalam host, boleh tarik terus dari docker.io

===>

https://www.how2shout.com/linux/how-to-install-podman-on-ubuntu-22-04-lts-jammy-linux/

edit /etc/containers/registries.conf

[registries.search]

registries=["registry.access.redhat.com", "registry.fedoraproject.org", "docker.io"]

#===> run this

podman info

podman search clustercontrol

podman pull docker.io/severalnines/clustercontrol

podman images

### Akhir ###  Ini untuk simpanan sejarah sahaja

6. Konfigurasi sebelum jalankan Pod Custercontrol

salin root dan pentadbir atau yang berkaitan cert ssh daripada server ini ke semua mariadb node.

Gunakan pentadbir atau berkaitan untuk ssh gunakan SSH certs

Gunakan arahan ssh-copy-id ke server-server lain bagi membolehkan SSH dijalankan dalam scripts tanpa masukkan password.

Pastikan semua ID sama dan ID itu mempunyai keupayaan sudo.

7. Sediakan ruang simpan data clustercontrol

Buat direktori ini, ini akan digunakan untuk menyimpan data. Pastikan dalam mount point yang mempunyai ruang yang besar contoh ini menggunakan mount point /storage  :-

mkdir -p /storage/clustercontrol
mkdir /storage/clustercontrol/cmon.d
mkdir /storage/clustercontrol/datadir
mkdir /storage/clustercontrol/sshkey
mkdir /storage/clustercontrol/cmonlib
mkdir /storage/clustercontrol/backups
mkdir /storage/clustercontrol/prom_data
mkdir /storage/clustercontrol/prom_conf

8. Sediakan passwordless SSH dengan SSH certs

Jangan dilakukan ini  jika rerun Pod. Ia akan rosakkan konfigurasi SSH Certs asal. Terus jalankan Pod dengan arahan podman run pada arahan seterusnya.

Salin rsa_key.pub server servercontrol pentadbir (yang berkaitan) kepada direktori yang username root podman pod servercontrol, sekali sahaja. Ini akan dibaca oleh pod berkenaan apabila bermula. Dalam contoh ini adalah /storage/clustercontrol/sshkey

Apabila menggunakan Podman SSH keys berdasarkan user yang anda gunakan. Dalam contoh ini saya menjalankan podman dalam root, maka podman akan rujuk sshnya sebagai di direktori  /root/.ssh/

cd /storage/clustercontrol/sshkey (buat backup id_rsa dan id_rsa.pub)

cp /home/pentadbir/.ssh/id_rsa* /storage/clustercontrol/sshkey

# ini jika rerun balik clustercontrol, perlu buat salinan backup sebelum jalankan kerja ini.

cp backupsebelumdelete /storage/clustercontrol/sshkey

9. Jalankan Pod ClusterControl dengan arahan berikut

Pastikan yourpassword tukarkan kepada password yang bersesuaian (jika perlu) Jika tiada diberikan, clustercontrol akan janakan sendiri

===> Jalankan podman untuk clustercontrol

===> Gantikan IP dalam contoh ini 192.168.0.10 dengan IP, HOST server podman/clustercontrol dan jalan dengan arahan ini

podman run -d --privileged --restart on-failure --name clustercontrol \
-h clustercontrol \
--network db-cluster \
--ip
192.168.10.10 \
-e DOCKER_HOST_ADDRESS=
"192.168.0.10" \
-p
5000:80 \
-p
5001:443 \
-p
9443:9443 \
-p
19501:19501 \
-p
9999:9999 \
-v /storage/clustercontrol/cmon.
d:/etc/cmon.d \
-v /storage/clustercontrol/
datadir:/var/lib/mysql \
-v /storage/clustercontrol/
sshkey:/root/.ssh \
-v /storage/clustercontrol/
cmonlib:/var/lib/cmon \
-v /storage/clustercontrol/
backups:/root/backups \
-v /storage/clustercontrol/
prom_data:/var/lib/prometheus \
-v /storage/clustercontrol/
prom_conf:/etc/prometheus \
severalnines/clustercontrol

Periksa proses dengan arahan

podman ps -a

10. Buat Capaian melalui Web Browser (contohnya Mozilla Firefox)

Tunggu dalam lebih 5 minit untuk podman mulakan pod

Melalui web gui Web browser https://192.168.0.10:5001/ perlu dibuat dahulu untuk aktifkan setting.

===> Web Access - Contoh

https://192.168.0.10:5001/ (v1)

https://192.168.0.10:9443/ (v2) Elasticsearch

Jika pertama kali run V2 capai dahulu https://192.168.0.10:19501/ untuk “allow” melalui browser. Jika tidak dibuat, login akan gagal.

11. Salin SSH Certs kepada semua nodes yang Clustercontrol  hendak kawal

Pastikan semua nodes dalam /etc/hosts dan /etc/cloud/template/host.redhat.tpl (jika gunakan cloudinit) ada. Gantikan Ip Address dengan alamat IP, base server servercontrol.

ipaddress clustercontrol (Contoh)

192.168.0.10 clustercontrol

Buat salinan ssh-copyid ke semua hosts (pentadbir atau yang berkaitan) termasuk dalam container

12. Terminal Pod Clustercontrol

Arahan ini adalah untuk mendapatkan terminal untuk Pod clustercontrol

podman exec -it clustercontrol /bin/bash

(ia dalam podman container)

Pastikan /etc/hosts dalam podman container sama dengan /etc/hosts dalam host server.

Maklumat untuk Web GUi ClusterControl

ssh user pentadbir (sekiranya username SSH antara hosts adalah pentadbir. Tukarkan ikut kesesuaian)

ssh key dir /root/.ssh

sudo password adalah pentadbir atau yang bersesuaian.

13. Untuk stop dan restart Pod Clustercontrol

untuk stop podman pod, dapatkan container id dahulu..

podman ps -a

Kemudian ...

podman stop containerid

Untuk mula semula gunakan podman start containerid

14. Untuk Elasticsearch gunakan Web Gui V2

Sebelum menjalankan pemasangan elasticsearch, pastikan sharing directory yang nama sama telah dibuat. Sama ada NFS atau GlusterFS

https://ahelpme.com/software/nfs-ganesha/simple-export-of-a-ext4-directory-with-nfs-ganesha-3-5-server-in-centos-8-without-selinux/ 


Rujukan

https://severalnines.com/download-clustercontrol-database-management-system 

https://severalnines.com/docs/user-guide/ui.html#import-existing-server-cluster 

https://severalnines.com/docs/installation.html 

https://severalnines.com/product/clustercontrol/clustercontrol-community-edition 

https://severalnines.com/download-clustercontrol-database-management-system 

https://severalnines.com/database-blog/clustercontrol-docker 

https://blog.carroarmato0.be/2020/05/08/exposing-podman-container-on-the-network/ 

https://severalnines.com/clustercontrol 

https://severalnines.com/blog/free-open-source-database-deployment-monitoring-clustercontrol-community-edition/ 

https://docs.severalnines.com/docs/clustercontrol/ 

Docker Image used by Podman

https://github.com/severalnines/docker 

Harisfazillah Jamel

19 Feb 2022 V 1

26 Oct 2022 V 2 - Untuk Elasticsearch

5 Ogos 2023 V 2.1

LinuxMalaysia

http://blog.harisfazillah.info

Simpanan pelbagai nota-nota saya https://t.me/linuxmalaysiamy

Perancangan Latihan 3-tier

https://docs.google.com/document/d/1ZNgl1TbHpwdcoJ9UzBk82UVwJLP4IGm1h2pL89XzUfw/edit?usp=sharing