I de tidigare inläggen i den här bloggserien har vi behandlat distribution av klustring/replikering (MySQL / Galera, MySQL-replikering, MongoDB &PostgreSQL), hantering och övervakning av dina befintliga databaser och kluster, prestandaövervakning och hälsa, hur du gör din installation högt tillgängligt via HAProxy och MaxScale, hur du förbereder dig mot katastrofer genom att schemalägga säkerhetskopior, hur du hanterar dina databaskonfigurationer och i det sista inlägget hur du hanterar dina loggfiler.
En av de viktigaste aspekterna av att bli en ClusterControl DBA är att kunna delegera uppgifter till teammedlemmar och kontrollera åtkomst till ClusterControl-funktionalitet. Detta kan uppnås genom att använda funktionen User Management, som låter dig kontrollera vem som kan göra vad. Du kan till och med gå ett steg längre genom att lägga till team eller organisationer till ClusterControl och mappa dem till dina DevOps-roller.
Lag
Team kan ses antingen som en fullständig organisation eller grupper av användare. Kluster kan tilldelas team och på så sätt är klustret endast synligt för användarna i teamet det har tilldelats. Detta gör att du kan köra flera team eller organisationer inom en ClusterControl-miljö. Uppenbarligen kommer ClusterControl-administratörskontot fortfarande att kunna se och hantera alla kluster.
Du kan skapa ett nytt team via sidomenyn -> Användarhantering -> Team och klicka på plustecknet på vänster sida under avsnittet Team:
När du har lagt till ett nytt team kan du tilldela användare till teamet.
Användare
Efter att ha valt det nyskapade teamet kan du lägga till nya användare till detta team genom att trycka på plustecknet i den högra dialogrutan:
Genom att välja rollen kan du begränsa användarens funktionalitet till antingen en Super Admin, Admin eller Användare. Du kan utöka dessa standardroller i avsnittet Åtkomstkontroll.
Åtkomstkontroll
Standardroller
Inom ClusterControl är standardrollerna:Super Admin, Admin och User. Superadministratören är det enda kontot som kan administrera team, användare och roller. Superadministratören kan också migrera kluster mellan team eller organisationer. Administratörsrollen tillhör en specifik organisation och kan se alla kluster i denna organisation. Användarrollen kan bara se de kluster han/hon skapat.
Användarroller
Du kan lägga till nya roller på den rollbaserade åtkomstkontrollskärmen. Du kan definiera privilegier per funktionalitet om rollen är tillåten (skrivskyddad), nekad (neka), hantera (tillåta ändring) eller modifiera (utökad hantering).
Om vi skapar en roll med begränsad åtkomst:
Som du kan se kan vi skapa en användare med begränsade åtkomsträttigheter (oftast skrivskyddad) och säkerställa att denna användare inte bryter någonting. Detta innebär också att vi kan lägga till icke-tekniska roller som Manager här.
Observera att rollen Super Admin inte listas här eftersom det är en standardroll med den högsta nivån av privilegier inom ClusterControl och därför inte kan ändras.
LDAP-åtkomst
ClusterControl stöder Active Directory, FreeIPA och LDAP-autentisering. Detta gör att du kan integrera ClusterControl inom din organisation utan att behöva återskapa användarna. I tidigare blogginlägg har vi beskrivit hur man ställer in ClusterControl för att autentisera mot OpenLDAP, FreeIPA och Active Directory.
När detta har ställts in kommer autentisering mot ClusterControl att följa diagrammet nedan:
I grund och botten är den viktigaste delen här att mappa LDAP-gruppen till ClusterControl-rollen. Detta kan göras ganska enkelt på sidan LDAP-inställningar under Användarhantering.
Dialogen ovan skulle mappa DevopsTeam till rollen som begränsad användare i ClusterControl. Upprepa sedan detta för alla andra grupper du vill kartlägga. Efter detta kommer alla användare som autentiseras mot ClusterControl att autentiseras och auktoriseras via LDAP-integreringen.
Sluta tankar
Genom att kombinera allt ovanstående kan du integrera ClusterControl bättre i din befintliga organisation, skapa specifika roller med begränsad eller full åtkomst och koppla användare till dessa roller. Det fina med detta är att du nu är mycket mer flexibel i hur du organiserar dig kring din databasinfrastruktur:vem får göra vad? Du kan till exempel ladda ner uppgiften att säkerhetskopiera till en webbplatstillförlitlighetsingenjör istället för att låta DBA kontrollera dem dagligen. Tillåt dina utvecklare att kontrollera MySQL-, Postgres- och MongoDB-loggfilerna för att korrelera dem med deras övervakning. Du kan också tillåta en senior utvecklare att skala databasen genom att lägga till fler noder/skärvor eller låta en erfaren DevOps-ingenjör skriva rådgivare.
Som du kan se är möjligheterna här oändliga, det är bara en fråga om hur man låser upp dem. I bloggserien Developer Studio dyker vi djupare in i automatisering med ClusterControl och för DevOps-integration släppte vi nyligen CCBot.