A automação está em voga nos dias de hoje. A tecnologia evolui rapidamente e mais pessoas estão contribuindo para as plataformas de software de automação de terceiros disponíveis. Como a temporada de implantações em ritmo acelerado, a automação agora é necessária e considerada de fato; você não pode se livrar de automatizar coisas consideradas necessárias. Essas necessidades são importantes para fazer as coisas rapidamente e eliminar tarefas redundantes. Uma vez que isso esteja presente, organizações e empresas podem se concentrar nas coisas lógicas de negócios que o tornam mais interessante para o crescimento. Este blog abrange uma breve visão geral das ferramentas e pontos de consideração para automação de banco de dados, seguido de um tópico sobre como usar o ClusterControl para automação de banco de dados.
Tecnologias para automação de implantação de banco de dados
Ferramentas sofisticadas para Infraestrutura como Código (IaC), como Puppet, Chef, Ansible, SaltStack e Terraform, geralmente são as principais tecnologias disponíveis. Essas ferramentas ajudam os DBAs com tarefas que são facilmente replicadas, como implantar um MySQL. Automatizar sua implantação do MySQL economiza muito tempo, especialmente se você tiver plataformas extensas para dar suporte e seguir as etapas dos ciclos de engenharia de software para implantar em seus ambientes de controle de qualidade, preparação ou desenvolvimento.
O uso da automação torna essas coisas mais rápidas e fáceis de gerenciar quando necessário.
Escolhendo seu software de automação
Neste blog, vamos tentar usar o Ansible. Conforme declarado anteriormente, o uso de software de terceiros torna mais fácil e rápido fornecer automação, especialmente para implantar seu cluster MySQL. Agora usaremos os módulos existentes, principalmente as funções do Ansible que estão disponíveis. Conforme afirmado em nosso blog anterior, podemos usar o Ansible Galaxy (repositório para coleções e funções ansible).
Antes disso, você precisa declarar o host que será afetado pela implantação. Por exemplo, neste blog, eu tenho o seguinte:
$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5
Então no meu arquivo /etc/ansible/hosts,
[email protected]:~# tail -n2 /etc/ansible/hosts
debnode4
debnode5
Em seguida, crie o arquivo main.yml como abaixo,
[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
Como estou executando o Ubuntu 16.04 para esta implantação simples do MySQL usando o Ansible para minha automação, acabo tendo isso,
[email protected]:~/deploy-mysql# cat vars/main.yml
---
# vars file for deploy-mysql
mysql_root_password: "[email protected]"
mysql_python_package_debian: python-mysqldb
Agora, testar a implantação do MySQL mostra,
[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!
Automatize e formule
Como mostramos acima, é melhor automatizar e aproveitar os existentes. Neste blog, escolhi o Ansible porque é mais fácil aproveitar os módulos existentes, como funções neste exemplo, e apenas algumas etapas para implantar um servidor MySQL.
Claro, não é tão simples assim. Existem funções existentes, como esta, que suportam replicação e mais variáveis para ajustar. O que quer que os módulos existentes possam fazer, aproveite-os em vez de reinventar os seus. Você pode simplesmente usar os existentes e modificá-los de acordo com suas necessidades.
Controle de cluster para automação
ClusterControl automatiza a implantação do MySQL de forma eficiente. Em vez de criar o seu próprio, o ClusterControl pode ser baixado gratuitamente e você pode usá-lo para implantar seu MySQL quantas vezes quiser. Você pode usar o software para configurar uma replicação de gravador-leitor ou uma configuração de replicação de gravador-gravador. Confira a captura de tela abaixo:
Você só precisa especificar o host/endereço IP de origem do MySQL desejado servidores.
A automação de implantação do ClusterControl faz uma pré-verificação para determinar se o servidor está pronto para gerenciar o trabalho a ser implantado. Isso envolve acessibilidade, disponibilidade de armazenamento e capacidade de hardware. As verificações são alinhadas às variáveis a serem ajustadas quando estiver pronto para executar o trabalho. Confira a captura de tela abaixo:
Com base no log de atividades do trabalho, você verá que ele ajusta o variáveis ou parâmetros nos sistemas Linux que suportamos. Se você também observar a captura de tela de exemplo que temos abaixo, ela verifica a disponibilidade de memória e disco e se prepara para a implantação do MySQL. Assim, ele instala os pacotes necessários, não apenas para que o MySQL funcione normalmente, mas também para que o ClusterControl monitore e registre o servidor e seus serviços que coletamos para monitoramento.
Ferramentas do desenvolvedor do ClusterControl
ClusterControl tem seu recurso onde você pode criar seus próprios scripts especificamente para orientadores. Quão importante é isso para a automação de implantação de banco de dados MySQL é que, uma vez que o banco de dados é registrado e implantado, você pode aprimorar ainda mais ou criar seus próprios Advisors. Por exemplo, confira nosso blog anterior intitulado Using ClusterControl Advisor to Create Checks for SELinux and Meltdown/Spectre:Part One. Após a implantação, você pode escrever seus primeiros Advisors e verificar regularmente se há exploits. Além disso, você também pode verificar parâmetros personalizados exclusivos para suas necessidades.
Ferramentas CLI do ClusterControl s9s
ClusterControl tem ferramentas CLI que chamamos de ferramentas CLI s9s que podem ser encontradas aqui em nosso repositório github. As ferramentas s9s CLI permitem que você implante o MySQL com apenas um comando. Por exemplo,
$ 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
O comando acima permite que você implante um cluster de Replicação MySQL com os seguintes endereços IP com seus argumentos, seja um mestre ou um escravo.
Essa ferramenta fornece recursos mais poderosos e eficientes além da implantação automática de seu banco de dados favorito que suportamos, como o MySQL. Confira nossa documentação do ClusterControl para saber mais sobre as ferramentas s9s CLI