Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Automatisierung der MySQL-Datenbankbereitstellung

Automatisierung ist heutzutage im Trend. Die Technologie entwickelt sich schnell weiter und immer mehr Menschen tragen zu bestehenden verfügbaren Automatisierungssoftwareplattformen von Drittanbietern bei. In der Zeit der schnelllebigen Bereitstellungen ist die Automatisierung jetzt notwendig und wird de facto als de facto angesehen. Sie können die Automatisierung von Dingen, die für notwendig erachtet werden, nicht loswerden. Diese Notwendigkeiten sind wichtig, um Dinge schnell zu erledigen und redundante Aufgaben zu eliminieren. Sobald dies vorhanden ist, können sich Organisationen und Unternehmen auf die logischen geschäftlichen Dinge konzentrieren, die es für das Wachstum interessanter machen. Dieser Blog enthält einen kurzen Überblick über Tools und Überlegungen zur Datenbankautomatisierung, gefolgt von einem Thema zur Verwendung von ClusterControl für die Datenbankautomatisierung.

Technologien für die Automatisierung der Datenbankbereitstellung

Hochentwickelte Tools für Infrastructure as Code (IaC) wie Puppet, Chef, Ansible, SaltStack und Terraform sind normalerweise die Mainstream-Technologien, aus denen Sie wählen können. Diese Tools helfen DBAs bei Aufgaben, die leicht repliziert werden können, z. B. bei der Bereitstellung von MySQL. Durch die Automatisierung Ihrer MySQL-Bereitstellung sparen Sie viel Zeit, insbesondere wenn Sie über umfangreiche Plattformen verfügen, die unterstützt werden müssen, und die Schritte der Softwareentwicklungszyklen befolgen, um sie für Ihre QA-, Staging- oder Entwicklungsumgebungen bereitzustellen.

Durch die Verwendung von Automatisierung lassen sich diese Dinge bei Bedarf schneller und einfacher verwalten.

Auswahl Ihrer Automatisierungssoftware

Lassen Sie uns in diesem Blog versuchen, Ansible zu verwenden. Wie bereits erwähnt, vereinfacht und beschleunigt die Verwendung von Software von Drittanbietern die Automatisierung, insbesondere für die Bereitstellung Ihres MySQL-Clusters. Jetzt verwenden wir vorhandene Module, insbesondere verfügbare Ansible-Rollen. Wie in unserem vorherigen Blog erwähnt, können wir Ansible Galaxy (Repository für Ansible-Sammlungen und -Rollen) verwenden.

Davor müssen Sie den Host angeben, der von der Bereitstellung betroffen sein soll. In diesem Blog habe ich zum Beispiel Folgendes:

$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5

Dann in meiner /etc/ansible/hosts-Datei,

[email protected]:~# tail -n2 /etc/ansible/hosts

debnode4
debnode5

Erstellen Sie dann die Datei main.yml wie unten,

[email protected]:~/deploy-mysql# cat main.yml
---
# tasks file for deploy-mysql
- hosts: all
  become: yes
  vars_files:
    - vars/main.yml
  roles:
    - role: geerlingguy.mysql

Da ich Ubuntu 16.04 für diese einfache MySQL-Bereitstellung verwende und Ansible für meine Automatisierung verwende, habe ich am Ende Folgendes,

[email protected]:~/deploy-mysql# cat vars/main.yml
---
# vars file for deploy-mysql
mysql_root_password: "[email protected]"
mysql_python_package_debian: python-mysqldb

Jetzt zeigt das Testen der MySQL-Bereitstellung,

[email protected]:~/deploy-mysql# ansible all -a  "mysql -Nse 'select concat(\"hello world at \", @@hostname,\"\!\");' " 2>/dev/null
debnode4 | CHANGED | rc=0 >>
hello world at debnode4!
debnode5 | CHANGED | rc=0 >>
hello world at debnode5!

Automatisieren, dann formulieren

Wie wir oben gezeigt haben, ist es besser, vorhandene zu automatisieren und Vorteile daraus zu ziehen. In diesem Blog habe ich mich für Ansible entschieden, da es einfacher ist, vorhandene Module wie Rollen in diesem Beispiel zu nutzen, und nur wenige Schritte zum Bereitstellen eines MySQL-Servers.

So einfach ist es natürlich nicht. Es gibt vorhandene Rollen, wie diese, die die Replikation und weitere abzustimmende Variablen unterstützen. Was auch immer die vorhandenen Module können, nutzen Sie sie, anstatt Ihre eigenen neu zu erfinden. Sie können einfach die vorhandenen verwenden und sie dann an Ihre Bedürfnisse anpassen.

ClusterControl für Automatisierung

ClusterControl automatisiert den Einsatz von MySQL kompetent. Anstatt Ihr eigenes zu erstellen, kann ClusterControl kostenlos heruntergeladen werden, und Sie können es verwenden, um Ihr MySQL so oft bereitzustellen, wie Sie möchten. Sie können die Software verwenden, um eine Writer-Reader-Replikation oder eine Writer-Writer-Replikation einzurichten. Sehen Sie sich den folgenden Screenshot an:

Sie müssen nur den Quellhost/die IP-Adresse Ihres gewünschten MySQL angeben Server.

ClusterControl-Bereitstellungsautomatisierung führt Vorabprüfungen durch, um festzustellen, ob der Server bereit ist, den bereitzustellenden Auftrag zu verwalten. Dies betrifft Zugänglichkeit, Speicherverfügbarkeit und Hardwarekapazität. Die Überprüfungen sind auf die zu optimierenden Variablen ausgerichtet, sobald der Auftrag ausgeführt werden kann. Sehen Sie sich den folgenden Screenshot an:

Basierend auf dem Auftragsaktivitätsprotokoll sehen Sie, dass es die Variablen oder Parameter in den von uns unterstützten Linux-Systemen. Wenn Sie sich auch den Beispiel-Screenshot unten ansehen, prüft er die Speicher- und Festplattenverfügbarkeit und bereitet die MySQL-Bereitstellung vor. Daher installiert es die erforderlichen Pakete, nicht nur, damit MySQL normal läuft, sondern auch, damit ClusterControl den Server und seine Dienste, die wir zur Überwachung erfassen, überwacht und registriert.

ClusterControl-Entwicklertools

ClusterControl hat eine Funktion, mit der Sie Ihre eigenen Skripte speziell für Berater erstellen können. Wie wichtig ist dies für die Automatisierung Ihrer MySQL-Datenbankbereitstellung, dass Sie, sobald die Datenbank registriert und bereitgestellt ist, Ihre eigenen Advisors weiter verbessern oder erstellen können. Sehen Sie sich beispielsweise unseren vorherigen Blog mit dem Titel Using ClusterControl Advisor to Create Checks for SELinux and Meltdown/Spectre:Part One an. Nach der Bereitstellung können Sie Ihre ersten Advisors schreiben und dann regelmäßig nach Exploits suchen. Darüber hinaus können Sie auch benutzerdefinierte Parameter überprüfen, die Ihren Anforderungen entsprechen.

ClusterControl s9s CLI-Tools

ClusterControl verfügt über CLI-Tools, die wir als s9s-CLI-Tools bezeichnen und die hier in unserem Github-Repository zu finden sind. Mit den s9s-CLI-Tools können Sie MySQL mit nur einem Befehl bereitstellen. Zum Beispiel

$ s9s cluster --create \
        --cluster-type=mysqlreplication \     --nodes="192.168.1.117?master;192.168.1.113?slave;192.168.1.115?slave;192.168.1.116?master;192.168.1.118?slave;192.168.1.119?slave;" \
        --vendor=oracle \
        --db-admin="root" \
        --db-admin-passwd="root123" \
        --cluster-name=ft_replication_23986 \
        --provider-version=5.7 \
        --log

Mit dem obigen Befehl können Sie einen MySQL Replication-Cluster bereitstellen, der die folgenden IP-Adressen mit seinen Argumenten bereitstellt, unabhängig davon, ob es sich um einen Master oder einen Slave handelt.

Dieses Tool bietet neben der automatischen Bereitstellung Ihrer bevorzugten Datenbank, die wir unterstützen, wie MySQL, leistungsfähigere und effizientere Funktionen. Sehen Sie sich unsere Dokumentation für ClusterControl an, um mehr über die CLI-Tools von s9s zu erfahren