Автоматизацията е на мода в наши дни. Технологията се развива бързо и все повече хора допринасят за съществуващите налични софтуерни платформи за автоматизация на трети страни. Тъй като сезонът на бързо развиващите се внедрявания, автоматизацията вече е необходима и се счита за де факто; не можете да се отървете от автоматизирането на неща, които смятате за необходими. Тези нужди са важни, за да свършите нещата бързо и да премахнете излишните задачи. След като това е налице, организациите и компаниите могат да се съсредоточат върху логичните бизнес неща, които го правят по-интересен за растеж. Този блог обхваща кратък преглед на инструменти и точки за разглеждане на автоматизацията на базата данни, последван от тема за това как да използвате ClusterControl за автоматизация на база данни.
Технологии за автоматизиране на разполагане на база данни
Усъвършенстваните инструменти за инфраструктура като код (IaC), като Puppet, Chef, Ansible, SaltStack и Terraform обикновено са основните технологии, от които можете да избирате. Тези инструменти помагат на DBA с задачи, които лесно се репликират, като разгръщане на MySQL. Автоматизирането на внедряването на MySQL ви спестява много време, особено ако имате обширни платформи за поддръжка и следване на стъпките от цикъла на софтуерно инженерство за внедряване за вашите QA, сценични или развойни среди.
Използването на автоматизацията прави тези неща по-бързи и по-лесни за управление, когато е необходимо.
Избор на вашия софтуер за автоматизация
В този блог нека се опитаме да използваме Ansible. Както беше посочено по-рано, използването на софтуер на трети страни прави по-лесно и по-бързо осигуряването на автоматизация, особено за разгръщането на вашия MySQL клъстер. Сега ще използваме съществуващите модули, особено ролите на Ansible, които са налични. Както беше посочено в предишния ни блог, можем да използваме Ansible Galaxy (хранилище за ansible колекции и роли).
Преди това трябва да декларирате хоста, който ще бъде засегнат от разполагането. Например в този блог имам следното:
$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5
След това в моя файл /etc/ansible/hosts,
[email protected]:~# tail -n2 /etc/ansible/hosts
debnode4
debnode5
След това създайте файла main.yml точно както по-долу,
[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
Тъй като използвам Ubuntu 16.04 за това просто внедряване на MySQL, използвайки Ansible за моята автоматизация, в крайна сметка имам това,
[email protected]:~/deploy-mysql# cat vars/main.yml
---
# vars file for deploy-mysql
mysql_root_password: "[email protected]"
mysql_python_package_debian: python-mysqldb
Сега, тестването на внедряването на MySQL показва,
[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!
Автоматизирайте, след това формулирайте
Както показахме по-горе, по-добре е да автоматизирате и да се възползвате от съществуващите. В този блог избрах Ansible, защото е по-лесно да се възползвате от съществуващите модули като роли в този пример и само няколко стъпки за разгръщане на MySQL сървър.
Разбира се, това не е толкова просто. Има съществуващи роли, като тази, която поддържа репликация и повече променливи за настройка. Каквото и да могат съществуващите модули, възползвайте се от него, вместо да преоткривате свои собствени. Можете просто да използвате съществуващите, след което да ги модифицирате според нуждите си.
ClusterControl за автоматизация
ClusterControl автоматизира успешно внедряването на MySQL. Вместо да създавате свой собствен, ClusterControl се изтегля свободно и можете да го използвате, за да разгръщате своя MySQL колко пъти искате. Можете да използвате софтуера, за да настроите репликация на записващо устройство-четец или настройка на репликация на записващо устройство. Вижте екранната снимка по-долу:
Трябва само да посочите изходния хост/IP адреса на желания от вас MySQL сървъри.
Автоматизацията за внедряване на ClusterControl извършва предварителна проверка, за да определи дали сървърът е готов да управлява заданието, което ще бъде разгърнато. Това включва достъпност, наличност на съхранение и хардуерен капацитет. Проверките се привеждат в съответствие с променливите, за да бъдат настроени, след като е готов за изпълнение на заданието. Вижте екранната снимка по-долу:
Въз основа на регистрационния файл на дейностите ще видите, че той коригира променливи или параметри в Linux системите, които поддържаме. Ако погледнете и примерната екранна снимка, която имаме по-долу, тя проверява наличността на паметта и диска и се подготвя за внедряването на MySQL. По този начин той инсталира необходимите пакети не само за нормалното функциониране на MySQL, но и за ClusterControl да наблюдава и регистрира сървъра и неговите услуги, които събираме за наблюдение.
Инструменти за разработчици на ClusterControl
ClusterControl има своя функция, където можете да създавате свои собствени скриптове специално за съветници. Колко важно е това за автоматизацията на внедряването на вашата MySQL база данни е, че след като базата данни е регистрирана и разгърната, можете допълнително да подобрите или създадете свои собствени съветници. Например, разгледайте предишния ни блог, озаглавен Използване на ClusterControl Advisor за създаване на проверки за SELinux и Meltdown/Spectre:Част първа. След внедряването можете да напишете първите си съветници, след което да проверявате редовно за експлойти. Не само това, но можете също да проверите персонализирани параметри, които са уникални за вашите нужди.
Инструменти за CLI на ClusterControl s9s
ClusterControl има CLI инструменти, които наричаме s9s CLI инструменти, които могат да бъдат намерени тук, в нашето хранилище на github. Инструментите на s9s CLI ви позволяват да разгръщате MySQL само с една команда. Например,
$ 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
Командата по-горе ви позволява да разгръщате MySQL репликационен клъстер, при условие че следните IP адреси със своите аргументи, независимо дали е главен или подчинен.
Този инструмент предоставя по-мощни и ефикасни функции освен само автоматично внедряване на любимата ви база данни, която поддържаме, като MySQL. Вижте нашата документация за ClusterControl, за да научите повече за инструментите на s9s CLI