ClusterControl is infrastructuur-agnostisch - het kan zowel in uw eigen datacenter op fysieke hosts als in gevirtualiseerde cloudomgevingen worden gebruikt. Het enige dat u nodig hebt, is ssh-toegang van de ClusterControl-host tot de databaseknooppunten, en u kunt vervolgens zelfstandige/gerepliceerde/geclusterde MySQL/MariaDB, MongoDB (replicasets of shard-clusters) of PostgreSQL (streamingreplicatie) implementeren. In deze blogpost zullen we u door de stappen leiden om ClusterControl op EC2 te implementeren.
Instanties instellen in EC2
De hardwarevereisten voor ClusterControl worden hier beschreven. Die zijn bedoeld om een performant platform voor de ClusterControl-server te creëren. Dat gezegd hebbende, zullen we een kleine instantie gebruiken voor onze testdoeleinden (t2.micro) - dat zou genoeg moeten zijn voor ons.
Eerst moeten we een AMI kiezen. ClusterControl ondersteunt:
- Redhat/CentOS/Oracle Linux 6 en hoger
- Ubuntu 12.04/14.04/16.04 LTS
- Debian 7.0 en hoger
We gaan Ubuntu 16.04 gebruiken.
Volgende stap - instantietype. We zullen voorlopig t2.micro kiezen, hoewel je grotere exemplaren wilt gebruiken voor productie-instellingen. Kies voor andere cloudproviders instanties met minimaal 1 GB geheugen.
We gaan vier instances tegelijk inzetten, één voor ClusterControl en drie voor Percona XtraDB Cluster. U moet beslissen waar die instanties moeten worden geïmplementeerd (VPC of niet, welk subnet enz.). Voor onze testdoeleinden gaan we een VPC en een enkel subnet gebruiken. Door nodes over de subnetten (beschikbaarheidszones) te implementeren, is de kans groter dat uw installatie overleeft als een van de AZ's niet meer beschikbaar zou zijn.
Voor opslag gebruiken we 100 GB SSD-volume voor algemene doeleinden (GP2). Dit zou voldoende moeten zijn om enkele tests uit te voeren met een redelijke hoeveelheid gegevens.
Volgende - beveiligingsgroepen. SSH-toegang is een vereiste. Anders dan dat, moet u poorten openen die vereist zijn voor de database die u wilt implementeren. U kunt meer informatie vinden over welke poorten vereist zijn in ons ondersteuningsportaal.
Ten slotte moet u een van de bestaande sleutelparen kiezen of u kunt een nieuwe maken. Na deze stap worden uw instanties gelanceerd.
Zodra de instances actief zijn, is het tijd om ClusterControl te installeren. Log daarvoor in op een van de instances en download het ClusterControl-installatiescript, install-cc:
[email protected]:~$ wget http://www.severalnines.com/downloads/cmon/install-cc
--2017-09-06 11:13:10-- http://www.severalnines.com/downloads/cmon/install-cc
Resolving www.severalnines.com (www.severalnines.com)... 107.154.146.155
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:10-- https://www.severalnines.com/downloads/cmon/install-cc
Connecting to www.severalnines.com (www.severalnines.com)|107.154.146.155|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://severalnines.com/downloads/cmon/install-cc [following]
--2017-09-06 11:13:11-- https://severalnines.com/downloads/cmon/install-cc
Resolving severalnines.com (severalnines.com)... 107.154.238.155, 107.154.148.155
Connecting to severalnines.com (severalnines.com)|107.154.238.155|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 56913 (56K) [text/plain]
Saving to: ‘install-cc’
install-cc 100%[=====================================================================================================================>] 55.58K 289KB/s in 0.2s
2017-09-06 11:13:12 (289 KB/s) - ‘install-cc’ saved [56913/56913]
Zorg er vervolgens voor dat het kan worden uitgevoerd voordat u het uitvoert:
[email protected]:~$ chmod +x install-cc
[email protected]:~$ sudo ./install-cc
In het begin krijg je wat informatie over de vereisten voor ondersteunde Linux-distributies:
!!
Only RHEL/Centos 6.x|7.x, Debian 7.x|8.x, Ubuntu 12.04.x|14.04.x|16.04.x LTS versions are supported
Minimum system requirements: 2GB+ RAM, 2+ CPU cores
Server Memory: 990M total, 622M free
MySQL innodb_buffer_pool_size set to 512M
Severalnines would like your help improving our installation process.
Information such as OS, memory and install success helps us improve how we onboard our users.
None of the collected information identifies you personally.
!!
=> Would you like to help us by sending diagnostics data for the installation? (Y/n):
This script will add Severalnines repository server for deb and rpm packages and
install the ClusterControl Web Applicaiton and Controller.
An Apache and MySQL server will also be installed. An existing MySQL Server on this host can be used.
Op een gegeven moment zul je wat vragen moeten beantwoorden over hostnamen, poorten en wachtwoorden.
=> The Controller hostname will be set to 172.30.4.20. Do you want to change it? (y/N):
=> Creating temporary staging dir s9s_tmp
=> Setting up the ClusterControl Web Application ...
=> Using web document root /var/www/html
=> No running MySQL server detected
=> Installing the default distro MySQL Server ...
=> Assuming default MySQL port is 3306. Do you want to change it? (y/N):
=> Enter the MySQL root password:
=> Enter the MySQL root password again:
=> Importing the Web Application DB schema and creating the cmon user.
=> Importing /var/www/html/clustercontrol/sql/dc-schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Set a password for ClusterControl's MySQL user (cmon) [cmon]
=> Enter a CMON user password:
=> Enter the CMON user password again: => Creating the MySQL cmon user ...
mysql: [Warning] Using a password on the command line interface can be insecure.
=> Creating UI configuration ...
Ten slotte krijgt u de bevestiging dat ClusterControl is geïnstalleerd. Het installatiescript zal ook proberen uw openbare IP-adres te detecteren en een link afdrukken die in uw browser kan worden gebruikt om toegang te krijgen tot ClusterControl.
=> ClusterControl installation completed!
Open your web browser to http://172.30.4.20/clustercontrol and
enter an email address and new password for the default Admin User.
Determining network interfaces. This may take a couple of minutes. Do NOT press any key.
Public/external IP => http://34.230.71.40/clustercontrol
Installation successful. If you want to uninstall ClusterControl then run install-cc --uninstall.
Zodra de installatie is voltooid, is er nog één ding om voor te zorgen:SSH-toegang van ClusterControl tot de resterende hosts. Tenzij je al SSH-toegang hebt tussen nodes (en je kunt ssh-copy-id gebruiken), zal dit een handmatig proces zijn. Eerst en vooral moeten we een nieuwe ssh-sleutel genereren:
[email protected]:~# ssh-keygen -C 'galera_cluster' -f id_rsa_galera -t rsa -b 4096
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_galera.
Your public key has been saved in id_rsa_galera.pub.
The key fingerprint is:
SHA256:2tWOGXbrtc0Qh45NhNPzUSVdDzE9ANV1TJ0QBE5QrQY galera_cluster
The key's randomart image is:
+---[RSA 4096]----+
| .o=**X*&|
| Eo + BO|
| ..+ +.o|
| + o +.|
| S = o + o|
| o o * * o |
| . . o + = |
| . . = |
| . . o|
+----[SHA256]-----+
[email protected]:~#
We kunnen controleren of het correct is gemaakt. U zult ook de inhoud van de openbare sleutel willen kopiëren - we zullen deze gebruiken om kopieën te maken op de resterende knooppunten.
[email protected]:~# cat id_rsa_galera.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDYKil17MzTrNc70GIQlVoK6xLop9acfT3W6kBUGO4ybsvIA5Fss+WvT/DLsYMtukq2Eih93eO4amLRYQIeyWSjJ/bBwIF/LXL4v04GF8+wbDgCyiV/t9dSuXna9qFeawkUVcPjnmWnZqUoaP5QeovXTluxl54xEwbFm1oLT+fgWbaim5w9vVUK4+hAHaZ7wVvTPVsIt1B3nJgWJF0Sz+TJN87vSUg7xdshgzhapUotXlguFGVzmNKWLnEFDCK7RT41oh4y4rkKP7YLc+wFfRHYTnKyMIcf0/0VMyL+2AdwQp8RThbBommf2HGimF1hSyA9/fc+tLi7FVTg1bKKeXj4hwexeFAJZwoy3HyD3wQ/NwadpDVk5Pg7YYzdN2aCZfvo27qp3gdQQ2H+LF6LvDyQEkgRpFN+pHoWQvPjJJasjfIcfdaC9WmDiL4s5fXyCTQz/x0NaTXVkLBS9ibfOUw8AGdd36FvdqnNOFOlMLKLa359JhdpqXnH7ksiThcotQuFmV5Dc8M66vTDz9rvVZhNC0nME478RNBP0Bgj1BM26XdQlzozeaRmHGoZXcSQVJTXBC93+QN4+bRmWmxhhj5G5M7bFiQyal1VtugoUt8ZV4NiiG+KDd6yj5um8+CffD/BASGrv3vffH+AK7xtjchIv5su40+unecfSOtO98TiQw== galera_cluster
Nu moet u op elk overgebleven knooppunt deze openbare sleutel toevoegen aan het bestand Authorized_keys. Voor ubuntu wilt u misschien eerst de inhoud opschonen als u een root-login wilt gebruiken. Standaard kan alleen ubuntu-gebruiker worden gebruikt om verbinding te maken via SSH. Een dergelijke setup (gewone gebruiker en sudo) is ook mogelijk om te gebruiken met ClusterControl, maar hier gaan we voor een rootgebruiker.
[email protected]:~# vim ~/.ssh/authorized_keys
Zodra Authorized_keys-bestanden op alle knooppunten onze openbare sleutel bevatten, kopiëren we onze openbare sleutel naar de .ssh-directory en brengen we de nodige wijzigingen aan in toegangsrechten:
[email protected]:~# cp id_rsa_galera /root/.ssh/
[email protected]:~# chmod 600 /root/.ssh/id_rsa_galera
Nu kunnen we testen of SSH-toegang werkt zoals verwacht:
[email protected]:~# ssh -i /root/.ssh/id_rsa_galera 172.30.4.46
Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1022-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
[email protected]:~# logout
Connection to 172.30.4.46 closed.
Alles is goed. Het is tijd om ClusterControl te configureren.
Vul enkele registratiegegevens in.
Nadat u bent ingelogd, verschijnt er een wizard met de optie om een nieuw cluster te implementeren of een bestaand cluster te importeren.
We willen Percona XtraDB Cluster implementeren, dus we gaan voor "Deploy Database Cluster" en kiezen het tabblad "MySQL Galera". Hier moeten we toegangsgegevens invullen die nodig zijn voor SSH-connectiviteit. We stellen SSH-gebruiker in op root en we vullen het pad naar onze SSH-sleutel in.
Vervolgens definiëren we een leverancier, versie, wachtwoord en IP-adressen voor onze databasehosts. Houd er rekening mee dat ClusterControl de SSH-verbinding met de doeldatabasehosts controleert. Als alles goed werkt, zie je groene vinkjes. Als u ziet dat SSH-authenticatie is mislukt, moet u dit onderzoeken omdat de ClusterControl-server geen toegang heeft tot uw databasehosts.
Klik vervolgens op Implementeren om het implementatieproces te starten.
U kunt de voortgang van de implementatie volgen in de activiteitenmonitor.
Onthoud dat implementatie slechts de eerste stap is. Als u een database wilt beheren, moet u de prestaties van uw hosts, database-instances, query's controleren en back-ups beheren, fouten en andere anomalieën oplossen, proxy's, upgrades beheren, enz. ClusterControl kan al deze aspecten voor u beheren, dus probeer het eens en laat ons weten hoe het met je gaat.