Mysql
 sql >> Base de données >  >> RDS >> Mysql

Automatisation du déploiement de la base de données MySQL

L'automatisation est à la mode ces jours-ci. La technologie évolue rapidement et de plus en plus de personnes contribuent aux plates-formes logicielles d'automatisation tierces existantes disponibles. A l'heure des déploiements rapides, l'automatisation est désormais nécessaire et considérée comme de facto; vous ne pouvez pas vous débarrasser de l'automatisation des choses jugées nécessaires. Ces nécessités sont importantes pour faire avancer les choses rapidement et éliminer les tâches redondantes. Une fois que cela est présent, les organisations et les entreprises peuvent se concentrer sur les choses commerciales logiques qui le rendent plus intéressant pour la croissance. Ce blog couvre un bref aperçu des outils et des points de considération pour l'automatisation de la base de données, suivi d'un sujet sur l'utilisation de ClusterControl pour l'automatisation de la base de données.

Technologies pour l'automatisation du déploiement de bases de données

Les outils sophistiqués pour l'infrastructure en tant que code (IaC) tels que Puppet, Chef, Ansible, SaltStack et Terraform sont généralement les technologies courantes parmi lesquelles choisir. Ces outils aident les administrateurs de base de données à effectuer des tâches facilement réplicables, comme le déploiement d'un MySQL. L'automatisation de votre déploiement MySQL vous fait gagner beaucoup de temps, en particulier si vous disposez de plates-formes étendues à prendre en charge et suivez les étapes des cycles d'ingénierie logicielle à déployer pour vos environnements d'assurance qualité, de préproduction ou de développement.

L'automatisation rend ces choses plus rapides et plus faciles à gérer en cas de besoin.

Choisir votre logiciel d'automatisation

Dans ce blog, essayons d'utiliser Ansible. Comme indiqué précédemment, l'utilisation d'un logiciel tiers facilite et accélère l'automatisation, en particulier pour le déploiement de votre cluster MySQL. Nous allons maintenant utiliser les modules existants, en particulier les rôles Ansible disponibles. Comme indiqué dans notre blog précédent, nous pouvons utiliser Ansible Galaxy (dépôt pour les collections et les rôles ansible).

Avant cela, vous devez déclarer l'hôte qui sera affecté par le déploiement. Par exemple, dans ce blog, j'ai ceci :

$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5

Puis dans mon fichier /etc/ansible/hosts,

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

debnode4
debnode5

Ensuite, créez le fichier main.yml comme ci-dessous,

[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

Depuis que j'utilise Ubuntu 16.04 pour ce déploiement MySQL simple en utilisant Ansible pour mon automatisation, je finis par avoir ceci,

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

Maintenant, le test du déploiement de MySQL montre,

[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!

Automatiser, puis formuler

Comme nous l'avons montré ci-dessus, il est préférable d'automatiser et de tirer parti de ceux qui existent déjà. Dans ce blog, j'ai choisi Ansible car il est plus facile de tirer parti des modules existants tels que les rôles dans cet exemple et seulement quelques étapes pour déployer un serveur MySQL.

Bien sûr, ce n'est pas si simple. Il existe des rôles existants, tels que celui-ci, qui prennent en charge la réplication et davantage de variables à régler. Quoi que les modules existants puissent faire, profitez-en plutôt que de réinventer les vôtres. Vous pouvez simplement utiliser ceux qui existent déjà, puis les modifier selon vos besoins.

ClusterControl pour l'automatisation

ClusterControl automatise le déploiement de MySQL avec compétence. Au lieu de créer le vôtre, ClusterControl est téléchargeable gratuitement et vous pouvez l'utiliser pour déployer votre MySQL autant de fois que vous le souhaitez. Vous pouvez utiliser le logiciel pour configurer une réplication écrivain-lecteur ou une configuration de réplication écrivain-écrivain. Regardez la capture d'écran ci-dessous :

Il vous suffit de spécifier l'hôte source/l'adresse IP de votre MySQL souhaité serveurs.

L'automatisation du déploiement de ClusterControl effectue des vérifications préalables pour déterminer si le serveur est prêt à gérer la tâche à déployer. Cela implique l'accessibilité, la disponibilité du stockage et la capacité matérielle. Les vérifications sont alignées sur les variables à régler une fois qu'il est prêt à exécuter le travail. Regardez la capture d'écran ci-dessous :

Selon le journal d'activité du travail, vous verrez qu'il ajuste le variables ou paramètres dans les systèmes Linux que nous prenons en charge. Si vous regardez également l'exemple de capture d'écran que nous avons ci-dessous, il vérifie la disponibilité de la mémoire et du disque et prépare le déploiement de MySQL. Ainsi, il installe les packages requis, non seulement pour que MySQL s'exécute normalement, mais également pour que ClusterControl surveille et enregistre le serveur et ses services que nous collectons pour la surveillance.

Outils de développement ClusterControl

ClusterControl a sa fonctionnalité où vous pouvez créer vos propres scripts spécifiquement pour les conseillers. À quel point cela est-il important pour l'automatisation du déploiement de votre base de données MySQL, c'est qu'une fois la base de données enregistrée et déployée, vous pouvez encore améliorer ou créer vos propres conseillers. Par exemple, consultez notre blog précédent intitulé Utilisation de ClusterControl Advisor pour créer des vérifications pour SELinux et Meltdown/Spectre :première partie. Après le déploiement, vous pouvez écrire vos premiers Advisors puis vérifier régulièrement les exploits. Non seulement cela, mais vous pouvez également vérifier les paramètres personnalisés qui sont uniques à vos besoins.

Outils CLI ClusterControl s9s

ClusterControl dispose d'outils CLI que nous appelons outils CLI s9s qui peuvent être trouvés ici dans notre référentiel github. Les outils CLI s9s vous permettent de déployer MySQL avec une seule commande. Par exemple,

$ 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

La commande ci-dessus vous permet de déployer un cluster de réplication MySQL fourni les adresses IP suivantes avec ses arguments, qu'il s'agisse d'un maître ou d'un esclave.

Cet outil fournit des fonctionnalités plus puissantes et efficaces en plus du simple déploiement automatique de votre base de données préférée que nous prenons en charge, telle que MySQL. Consultez notre documentation pour ClusterControl pour en savoir plus sur les outils CLI s9s