Cluster Control On Centos 8 / Ubuntu 20.04 Using Podman
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
### Untuk Ubuntu pasang podman buildah dan git. Pastikan Ubuntu 20.04
### https://linoxide.com/how-to-install-podman-on-ubuntu-20-04/
# Ubuntu
apt install podman buildah git etckeeper
# Centos Streams / AlmaLinux
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.git
5. Bina Pod dengan buildah
cd docker/
(dot at the end of command - meaning current directory)
buildah bud -f Dockerfile -t severalnines/clustercontrol .
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
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
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.
podman run -d --privileged --restart on-failure --name clustercontrol \
-h clustercontrol \
-e CMON_PASSWORD=yourpassword \
-e MYSQL_ROOT_PASSWORD=yourpassword \
-e DOCKER_HOST_ADDRESS="192.168.10.10" \
-p 5000:80 \
-p 5001:443 \
-p 19501:19501 \
-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
Ralat :-
Bagi versi baru clustercontrol akan ada error ini, gantikan alamat IP 192.168.10.10 dengan IP host
podman logs aaaef5a3b74a
>> Unable to start because DOCKER_HOST_ADDRESS is empty.
>> New in ClusterControl 1.9.1:
Kindly specify the DOCKER_HOST_ADDRESS environment variable.
This value should be the same as the Docker host primary IP address (or hostname/FQDN) where you will connect.
If the container is running on a bridge network, do publish port 9443 and 19501 as well.
This is mandatory for ClusterControl GUI v2 to operate correctly.
Example:
-e DOCKER_HOST_ADDRESS="192.168.10.10" \
-p 9443:9443 \
-p 19501:19501 \
10. Buat Capaian melalui Web Browser (contohnya Mozilla Firefox)
Tunggu dalam lebih seminit untuk podman mulakan pod
Melalui webgui Web browser
https://ipserver:5001/
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 servercontrol
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)
ssh user pentadbir/
ssh key dir /root/.ssh
sudo password adalah pentadbir atau yang berkaitan.
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. Clustercontrol2 (Beta)
Capaian melalui port 19501
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://docs.severalnines.com/docs/clustercontrol/getting-started/next-generation-of-clustercontrols-web-application/
19 Feb 2022
LinuxMalaysia
http://blog.harisfazillah.info