Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Automatyzacja wdrażania bazy danych MySQL

Automatyzacja jest obecnie w modzie. Technologia rozwija się szybko, a coraz więcej osób korzysta z istniejących dostępnych platform oprogramowania do automatyzacji innych firm. W sezonie szybkich wdrożeń automatyzacja jest teraz konieczna i uważana za de facto; nie możesz pozbyć się automatyzacji rzeczy uznanych za konieczne. Te potrzeby są ważne, aby szybko załatwić sprawy i wyeliminować zbędne zadania. Gdy to się stanie, organizacje i firmy mogą skupić się na logicznych rzeczach biznesowych, które czynią go bardziej interesującym dla wzrostu. W tym blogu omówiono krótkie omówienie narzędzi i punkty do rozważenia dotyczące automatyzacji bazy danych, a następnie temat dotyczący korzystania z programu ClusterControl do automatyzacji bazy danych.

Technologie automatyzacji wdrażania baz danych

Wyrafinowane narzędzia dla infrastruktury jako kodu (IaC), takie jak Puppet, Chef, Ansible, SaltStack i Terraform, są zwykle głównymi technologiami do wyboru. Narzędzia te pomagają administratorom baz danych w wykonywaniu zadań, które można łatwo replikować, takich jak wdrażanie bazy danych MySQL. Automatyzacja wdrażania MySQL oszczędza dużo czasu, zwłaszcza jeśli masz rozbudowane platformy do obsługi i postępuj zgodnie z etapami inżynierii oprogramowania, aby wdrożyć w środowiskach QA, testowych lub programistycznych.

Korzystanie z automatyzacji sprawia, że ​​te czynności są szybsze i łatwiejsze w zarządzaniu, gdy jest to potrzebne.

Wybór oprogramowania do automatyzacji

W tym blogu spróbujmy użyć Ansible. Jak wspomniano wcześniej, korzystanie z oprogramowania innych firm ułatwia i przyspiesza automatyzację, zwłaszcza w przypadku wdrażania klastra MySQL. Teraz użyjemy istniejących modułów, w szczególności ról Ansible, które są dostępne. Jak wspomniano w naszym poprzednim blogu, możemy użyć Ansible Galaxy (repozytorium kolekcji i ról ansible).

Wcześniej musisz zadeklarować hosta, którego dotyczy wdrożenie. Na przykład na tym blogu mam następujące informacje:

$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5

Wtedy w moim pliku /etc/ansible/hosts

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

debnode4
debnode5

Następnie utwórz plik main.yml tak jak poniżej,

[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

Ponieważ używam Ubuntu 16.04 do tego prostego wdrożenia MySQL przy użyciu Ansible do mojej automatyzacji, w końcu mam to,

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

Teraz testowanie wdrożenia MySQL pokazuje,

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

Automatyzacja, a następnie formułowanie

Jak pokazaliśmy powyżej, lepiej jest zautomatyzować i wykorzystać istniejące. W tym blogu wybrałem Ansible, ponieważ łatwiej jest skorzystać z istniejących modułów, takich jak role w tym przykładzie i zaledwie kilka kroków do wdrożenia serwera MySQL.

Oczywiście, to nie jest takie proste. Istnieją role, takie jak ta, które obsługują replikację i więcej zmiennych do dostrojenia. Niezależnie od tego, co potrafią istniejące moduły, skorzystaj z nich, zamiast odkrywać własne. Możesz po prostu użyć istniejących, a następnie zmodyfikować je zgodnie z własnymi potrzebami.

ClusterControl do automatyzacji

ClusterControl sprawnie automatyzuje wdrażanie MySQL. Zamiast tworzyć własne, ClusterControl można bezpłatnie pobrać i można go używać do wdrażania bazy danych MySQL, ile razy chcesz. Możesz użyć oprogramowania do skonfigurowania replikacji programu zapisującego i odczytującego lub konfiguracji replikacji programu zapisującego i zapisującego. Sprawdź zrzut ekranu poniżej:

Musisz tylko określić źródłowy host/adres IP żądanego serwera MySQL serwery.

Automatyzacja wdrażania ClusterControl przeprowadza wstępne testy w celu określenia, czy serwer jest gotowy do zarządzania zadaniem, które ma zostać wdrożone. Obejmuje to dostępność, dostępność pamięci i pojemność sprzętu. Kontrole są dopasowywane do zmiennych, które mają być dostrojone, gdy jest gotowe do uruchomienia zadania. Sprawdź zrzut ekranu poniżej:

Na podstawie dziennika aktywności zadania zobaczysz, że dostosowuje on zmienne lub parametry w obsługiwanych przez nas systemach Linux. Jeśli spojrzysz również na przykładowy zrzut ekranu, który mamy poniżej, sprawdza on dostępność pamięci i dysku oraz przygotowuje się do wdrożenia MySQL. W ten sposób instaluje wymagane pakiety, nie tylko dla normalnego działania MySQL, ale także dla ClusterControl do monitorowania i rejestrowania serwera i jego usług, które zbieramy do monitorowania.

Narzędzia programistyczne ClusterControl

ClusterControl ma swoją funkcję, dzięki której możesz tworzyć własne skrypty specjalnie dla doradców. Jak ważne jest to dla automatyzacji wdrażania bazy danych MySQL, to fakt, że po zarejestrowaniu i wdrożeniu bazy danych można dalej ulepszać lub tworzyć własnych doradców. Zajrzyj na przykład do naszego poprzedniego bloga zatytułowanego Używanie ClusterControl Advisor do tworzenia sprawdzeń dla SELinux i Meltdown/Spectre:część pierwsza. Po wdrożeniu możesz napisać swoich pierwszych doradców, a następnie regularnie sprawdzać, czy nie występują luki w zabezpieczeniach. Nie tylko to, ale możesz także sprawdzić niestandardowe parametry, które są unikalne dla Twoich potrzeb.

Narzędzia CLI ClusterControl s9s

ClusterControl ma narzędzia CLI, które nazywamy narzędziami CLI s9s, które można znaleźć tutaj w naszym repozytorium github. Narzędzia CLI s9s umożliwiają wdrożenie MySQL za pomocą tylko jednego polecenia. Na przykład

$ 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

Powyższe polecenie umożliwia wdrożenie klastra replikacji MySQL z argumentami o następujących adresach IP, niezależnie od tego, czy jest to klaster nadrzędny, czy podrzędny.

To narzędzie zapewnia bardziej zaawansowane i wydajne funkcje oprócz automatycznego wdrażania Twojej ulubionej bazy danych, którą obsługujemy, takiej jak MySQL. Sprawdź naszą dokumentację dotyczącą ClusterControl, aby dowiedzieć się więcej o narzędziach CLI s9s


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest lokalizacja klienta mysql .my.cnf w XAMPP dla Windows?

  2. Korzystanie z HHVM z WordPress

  3. Nie udało się zainicjować systemu konfiguracji

  4. MySQL:Jak zezwolić na zdalne połączenie z mysql

  5. Jak włączyć logi powolnych zapytań w AWS RDS MySQL?