sql >> Base de Datos >  >> RDS >> Mysql

Automatización de la implementación de la base de datos MySQL

La automatización está de moda en estos días. La tecnología evoluciona rápidamente y cada vez más personas contribuyen a las plataformas de software de automatización de terceros disponibles. Como la temporada de implementaciones aceleradas, la automatización ahora es necesaria y se considera de facto; no puede deshacerse de la automatización de las cosas que se consideran necesarias. Estas necesidades son importantes para hacer las cosas rápidamente y eliminar las tareas redundantes. Una vez que esto está presente, las organizaciones y empresas pueden enfocarse en las cosas lógicas del negocio que lo hacen más interesante para el crecimiento. Este blog cubre una breve descripción general de las herramientas y los puntos a considerar para la automatización de bases de datos, seguido de un tema sobre cómo usar ClusterControl para la automatización de bases de datos.

Tecnologías para la automatización de la implementación de bases de datos

Las herramientas sofisticadas para infraestructura como código (IaC) como Puppet, Chef, Ansible, SaltStack y Terraform suelen ser las principales tecnologías para elegir. Estas herramientas ayudan a los DBA con tareas que se replican fácilmente, como implementar un MySQL. La automatización de su implementación de MySQL le ahorra una gran cantidad de tiempo, especialmente si tiene plataformas extensas para admitir y sigue los pasos de los ciclos de ingeniería de software para implementar para sus entornos de control de calidad, ensayo o desarrollo.

El uso de la automatización hace que estas cosas sean más rápidas y fáciles de administrar cuando es necesario.

Elegir su software de automatización

En este blog, intentemos usar Ansible. Como se indicó anteriormente, el uso de software de terceros hace que sea más fácil y rápido proporcionar automatización, especialmente para implementar su clúster de MySQL. Ahora usaremos los módulos existentes, en particular los roles de Ansible que están disponibles. Como se indicó en nuestro blog anterior, podemos usar Ansible Galaxy (repositorio para colecciones y roles de ansible).

Antes de eso, debe declarar el host que se verá afectado por la implementación. Por ejemplo, en este blog tengo lo siguiente:

$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5

Luego, en mi archivo /etc/ansible/hosts,

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

debnode4
debnode5

Luego, cree el archivo main.yml como se muestra a continuación,

[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

Ya que uso Ubuntu 16.04 para esta implementación simple de MySQL usando Ansible para mi automatización, termino teniendo esto,

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

Ahora, la prueba de la implementación de MySQL muestra,

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

Automatizar, luego formular

Como mostramos anteriormente, es mejor automatizar y aprovechar los existentes. En este blog, elegí Ansible porque es más fácil aprovechar los módulos existentes, como los roles en este ejemplo, y solo unos pocos pasos para implementar un servidor MySQL.

Por supuesto, no es tan simple. Hay roles existentes, como este, que admiten la replicación y más variables para ajustar. Independientemente de lo que puedan hacer los módulos existentes, aprovéchelo en lugar de reinventar el suyo propio. Puede usar los existentes y luego modificarlos según sus necesidades.

ClusterControl para Automatización

ClusterControl automatiza la implementación de MySQL de manera competente. En lugar de crear el suyo propio, ClusterControl se puede descargar gratuitamente y puede usarlo para implementar su MySQL tantas veces como desee. Puede utilizar el software para configurar una replicación de escritor-lector o una configuración de replicación de escritor-escritor. Mira la captura de pantalla a continuación:

Solo tiene que especificar el servidor de origen/dirección IP de su MySQL deseado servidores.

La automatización de implementación de ClusterControl realiza comprobaciones previas para determinar si el servidor está listo para administrar el trabajo que se implementará. Esto implica accesibilidad, disponibilidad de almacenamiento y capacidad de hardware. Las comprobaciones se alinean con las variables que se ajustarán una vez que esté listo para ejecutar el trabajo. Mira la captura de pantalla a continuación:

Según el registro de actividad del trabajo, verá que ajusta el variables o parámetros en los sistemas Linux que admitimos. Si también observa la captura de pantalla de ejemplo que tenemos a continuación, verifica la disponibilidad de la memoria y el disco y se prepara para la implementación de MySQL. Por lo tanto, instala los paquetes necesarios, no solo para que MySQL se ejecute normalmente, sino también para que ClusterControl monitoree y registre el servidor y sus servicios que recopilamos para monitorear.

Herramientas para desarrolladores de ClusterControl

ClusterControl tiene su función en la que puede crear sus propios scripts específicamente para asesores. Lo importante que es esto para la automatización de la implementación de su base de datos MySQL es que, una vez que la base de datos está registrada e implementada, puede mejorar aún más o crear sus propios asesores. Por ejemplo, consulte nuestro blog anterior titulado Uso de ClusterControl Advisor para crear comprobaciones para SELinux y Meltdown/Spectre:primera parte. Después de la implementación, puede escribir sus primeros asesores y luego verificar regularmente las vulnerabilidades. No solo eso, sino que también puede verificar los parámetros personalizados que son únicos para sus necesidades.

Herramientas CLI de ClusterControl s9s

ClusterControl tiene herramientas CLI que llamamos herramientas CLI s9s que se pueden encontrar aquí en nuestro repositorio de github. Las herramientas CLI de s9s le permiten implementar MySQL con un solo comando. Por ejemplo,

$ 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

El comando anterior le permite implementar un clúster de replicación de MySQL siempre que se proporcionen las siguientes direcciones IP con sus argumentos, ya sea un maestro o un esclavo.

Esta herramienta proporciona funciones más potentes y eficientes además de la implementación automática de su base de datos favorita que admitimos, como MySQL. Consulte nuestra documentación de ClusterControl para obtener más información sobre las herramientas CLI de s9s