sql >> Databáze >  >> RDS >> Mysql

Automatizace nasazení databáze MySQL

Automatizace je v dnešní době v módě. Technologie se rychle vyvíjí a stále více lidí přispívá ke stávajícím dostupným platformám automatizačního softwaru třetích stran. Vzhledem k období rychlého zavádění je nyní automatizace nezbytná a de facto považována za; nemůžete se zbavit automatizace věcí, které považujete za nezbytné. Tyto nezbytnosti jsou důležité pro rychlé vyřízení věcí a odstranění nadbytečných úkolů. Jakmile to bude přítomno, organizace a společnosti se mohou soustředit na logické obchodní věci, které je činí zajímavějšími pro růst. Tento blog obsahuje krátký přehled nástrojů a úvah o automatizaci databází, po kterém následuje téma, jak používat ClusterControl pro automatizaci databází.

Technologie pro automatizaci nasazení databáze

Sofistikované nástroje pro Infrastructure as Code (IaC), jako jsou Puppet, Chef, Ansible, SaltStack a Terraform, jsou obvykle hlavními technologiemi, ze kterých si můžete vybrat. Tyto nástroje pomáhají správcům databází s úkoly, které se snadno replikují, jako je nasazení MySQL. Automatizace nasazení MySQL vám ušetří spoustu času, zvláště pokud máte rozsáhlé platformy na podporu a dodržujete kroky softwarového inženýrství při nasazení pro vaše QA, staging nebo vývojová prostředí.

Pomocí automatizace jsou tyto věci rychlejší a jednodušší, když je to potřeba.

Výběr automatizačního softwaru

V tomto blogu se pokusíme použít Ansible. Jak již bylo uvedeno dříve, použití softwaru třetích stran usnadňuje a urychluje poskytování automatizace, zejména pro nasazení clusteru MySQL. Nyní použijeme stávající moduly, zejména role Ansible, které jsou k dispozici. Jak bylo uvedeno v našem předchozím blogu, můžeme použít Ansible Galaxy (úložiště pro kolekce a role ansible).

Předtím musíte deklarovat hostitele, kterého se bude nasazení týkat. Například v tomto blogu mám následující:

$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5

Potom v mém souboru /etc/ansible/hosts

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

debnode4
debnode5

Potom vytvořte soubor main.yml stejně jako níže

[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

Protože používám Ubuntu 16.04 pro toto jednoduché nasazení MySQL pomocí Ansible pro mou automatizaci, nakonec mám toto,

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

Teď testování nasazení MySQL ukazuje,

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

Automatizujte a poté formulujte

Jak jsme si ukázali výše, je lepší automatizovat a využívat stávající. V tomto blogu jsem si vybral Ansible, protože je snazší využít stávající moduly, jako jsou role v tomto příkladu, a jen pár kroků k nasazení serveru MySQL.

Samozřejmě to není tak jednoduché. Existují role, jako je tato, které podporují replikaci a více proměnných k vyladění. Ať už existující moduly dokážou cokoli, využijte toho, spíše než přetvářejte svůj vlastní. Stačí použít ty stávající a upravit je podle svých potřeb.

ClusterControl for Automation

ClusterControl efektivně automatizuje nasazení MySQL. Namísto vytváření vlastních je ClusterControl volně ke stažení a můžete jej použít k nasazení MySQL, kolikrát chcete. Software můžete použít k nastavení replikace zapisovače a zapisovače nebo replikace zapisovače a zapisovače. Podívejte se na snímek obrazovky níže:

Stačí zadat zdrojového hostitele/IP adresu požadovaného MySQL servery.

Automatizace nasazení ClusterControl provádí předběžné kontroly, aby zjistila, zda je server připraven spravovat úlohu, která má být nasazena. To zahrnuje dostupnost, dostupnost úložiště a kapacitu hardwaru. Kontroly jsou zarovnány s proměnnými, které mají být vyladěny, jakmile bude připravena ke spuštění úlohy. Podívejte se na snímek obrazovky níže:

Na základě protokolu činnosti úlohy uvidíte, že upravuje proměnné nebo parametry v systémech Linux, které podporujeme. Pokud se také podíváte na ukázkový snímek obrazovky, který máme níže, zkontroluje dostupnost paměti a disku a připraví se na nasazení MySQL. To znamená, že nainstaluje požadované balíčky nejen pro normální běh MySQL, ale také pro ClusterControl pro monitorování a registraci serveru a jeho služeb, které shromažďujeme pro monitorování.

Nástroje pro vývojáře ClusterControl

ClusterControl má svou funkci, ve které můžete vytvářet vlastní skripty speciálně pro poradce. Pro automatizaci nasazení databáze MySQL je to důležité v tom, že jakmile je databáze zaregistrována a nasazena, můžete dále vylepšovat nebo vytvářet své vlastní poradce. Podívejte se například na náš předchozí blog s názvem Using ClusterControl Advisor to Create Checks for SELinux and Meltdown/Spectre:Part One. Po nasazení můžete napsat své první poradce a poté pravidelně kontrolovat, zda neobsahují exploity. Nejen to, ale můžete také zkontrolovat vlastní parametry, které jsou jedinečné pro vaše potřeby.

Nástroje CLI ClusterControl s9s

ClusterControl má nástroje CLI, které nazýváme s9s CLI nástroje, které lze nalézt zde v našem úložišti github. Nástroje CLI s9s vám umožňují nasadit MySQL pomocí jediného příkazu. Například,

$ 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

Výše uvedený příkaz vám umožňuje nasadit cluster replikace MySQL s následujícími IP adresami s argumenty, ať už je to hlavní nebo podřízený.

Tento nástroj poskytuje výkonnější a efektivnější funkce kromě pouhého automatického nasazení vaší oblíbené databáze, kterou podporujeme, jako je MySQL. Prohlédněte si naši dokumentaci pro ClusterControl, kde se dozvíte více o nástrojích CLI s9s


  1. Jak se připojit k MySQL pomocí Pythonu

  2. Nejlepší typ pole databáze pro adresu URL

  3. Datový model správy událostí

  4. Dotazovací jazyk Neo4j – Cypher