sql >> Databasteknik >  >> RDS >> Mysql

MySQL Database Deployment Automation

Automation är på modet nu för tiden. Tekniken utvecklas snabbt och fler människor bidrar till befintliga tillgängliga plattformar för automatisering av tredje part. Som säsongen av snabba implementeringar är automatisering nu nödvändig och betraktas som de facto; du kan inte bli av med att automatisera saker som anses nödvändiga. Dessa nödvändigheter är viktiga för att få saker gjorda snabbt och eliminera överflödiga uppgifter. När detta väl är närvarande kan organisationer och företag fokusera på de logiska affärssaker som gör det mer intressant för tillväxt. Den här bloggen täcker en kort översikt av verktyg och överväganden för databasautomatisering följt av ett ämne om hur man använder ClusterControl för databasautomatisering.

Teknologier för automatisering av databasdistribution

Sofistikerade verktyg för Infrastructure as Code (IaC) som Puppet, Chef, Ansible, SaltStack och Terraform är vanligtvis de vanliga teknikerna att välja mellan. Dessa verktyg hjälper DBA:er med uppgifter som är lätta att replikera, som att distribuera en MySQL. Genom att automatisera din MySQL-distribution sparar du mycket tid, särskilt om du har omfattande plattformar för att stödja och följa stegen i programvaruutvecklingscyklerna för att distribuera för dina QA-, staging- eller utvecklingsmiljöer.

Att använda automation gör dessa saker snabbare och enklare att hantera när det behövs.

Välja din automatiseringsprogramvara

I den här bloggen, låt oss försöka använda Ansible. Som nämnts tidigare gör det enklare och snabbare att använda programvara från tredje part att tillhandahålla automatisering, särskilt för att distribuera ditt MySQL-kluster. Nu kommer vi att använda befintliga moduler, särskilt Ansible-roller som är tillgängliga. Som det stod i vår tidigare blogg kan vi använda Ansible Galaxy (förråd för ansible samlingar och roller).

Innan dess måste du deklarera värden som ska påverkas av distributionen. I den här bloggen har jag till exempel följande:

$ cat /etc/hosts
192.168.30.40 debnode4
192.168.30.50 debnode5

Sedan i min /etc/ansible/hosts-fil,

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

debnode4
debnode5

Skapa sedan filen main.yml precis som nedan,

[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

Eftersom jag använder Ubuntu 16.04 för denna enkla MySQL-distribution med Ansible för min automatisering, slutar jag med detta,

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

Nu visar testning av MySQL-distributionen,

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

Automatisera och formulera sedan

Som vi har visat ovan är det bättre att automatisera och dra nytta av befintliga. I den här bloggen valde jag Ansible eftersom det är lättare att dra nytta av befintliga moduler som roller i det här exemplet och bara några få steg för att distribuera en MySQL-server.

Självklart är det inte så enkelt det är. Det finns befintliga roller, som den här, som stöder replikering och fler variabler att ställa in. Vad de befintliga modulerna än kan göra, dra nytta av det istället för att återuppfinna din egen. Du kan bara använda de befintliga och sedan ändra dem efter dina behov.

ClusterControl for Automation

ClusterControl automatiserar distributionen av MySQL på ett skickligt sätt. Istället för att skapa din egen är ClusterControl fritt nedladdningsbar och du kan använda den för att distribuera din MySQL hur många gånger du vill. Du kan använda programvaran för att ställa in en writer-reader-replikering eller en writer-writer-replikering. Kolla in skärmdumpen nedan:

Du behöver bara ange källvärden/IP-adressen för din önskade MySQL servrar.

ClusterControl-distributionsautomatisering gör en förkontroll för att avgöra om servern är redo att hantera jobbet som ska distribueras. Detta involverar tillgänglighet, lagringstillgänglighet och hårdvarukapacitet. Kontrollerna är anpassade till de variabler som ska trimmas upp när den är redo att köra jobbet. Kolla in skärmdumpen nedan:

Baserat på jobbaktivitetsloggen ser du att den justerar variabler eller parametrar i de Linux-system vi stödjer. Om du också tittar på exemplet på skärmdumpen vi har nedan, kontrollerar den minnet och disktillgängligheten och förbereder för MySQL-distributionen. Således installerar den de nödvändiga paketen, inte bara för att MySQL ska köras normalt utan också för att ClusterControl ska övervaka och registrera servern och dess tjänster som vi samlar in för övervakning.

ClusterControl Developer Tools

ClusterControl har sin funktion där du kan skapa dina egna skript specifikt för rådgivare. Hur viktigt är detta för din MySQL-databasdistributionsautomatisering är att när databasen väl är registrerad och distribuerad kan du ytterligare förbättra eller skapa dina egna rådgivare. Kolla till exempel vår tidigare blogg med titeln Using ClusterControl Advisor för att skapa checkar för SELinux och Meltdown/Spectre:Part One. Efter implementeringen kan du skriva dina första rådgivare och sedan kontrollera regelbundet efter utnyttjande. Inte bara det, du kan också kontrollera anpassade parametrar som är unika för dina behov.

ClusterControl s9s CLI-verktyg

ClusterControl har CLI-verktyg som vi kallar s9s CLI-verktyg som kan hittas här på vårt github-förråd. s9s CLI-verktygen gör att du kan distribuera MySQL med bara ett kommando. Till exempel,

$ 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

Kommandot ovan låter dig distribuera ett MySQL-replikeringskluster med följande IP-adresser med dess argument, oavsett om det är en master eller en slav.

Det här verktyget ger mer kraftfulla och effektiva funktioner förutom automatisk distribution av din favoritdatabas som vi stöder, som MySQL. Kolla in vår dokumentation för ClusterControl för att lära dig mer om s9s CLI-verktyg


  1. VBA:s funktion för att ändra fall

  2. Flera räkningar med olika villkor i en enda MySQL-fråga

  3. Hur konverterar man tomma utrymmen till null-värden med hjälp av SQL Server?

  4. 10 Användbara Microsoft Access-genvägar när du arbetar med kontroller på formulär och rapporter