Har du hørt om Ansible, men er usikker på hva det egentlig er? Ikke bekymre deg, i løpet av de neste fem minuttene vil du få en god forståelse av hva Ansible innebærer.
Hva er Ansible?
Ansible er et åpen kildekode DevOps-verktøy som forenkler konfigurasjonsadministrasjon, distribusjon og klargjøring. Det er lett å implementere; Ansible kommuniserer med servere via SSH. Automatiseringsoppgaver beskrives i «playbooks», som er skrevet i det brukervennlige språket YAML.
Ansible bidrar til pålitelighet, konsistens og skalerbarhet i din IT-infrastruktur. Du kan automatisere konfigurasjonen av databaser, lagring, nettverk og brannmurer. Ansible sikrer at nødvendige pakker og programvare er konsekvent installert på alle servere, slik at applikasjonen din fungerer som den skal.
La oss ta et eksempel: Du har en feilsøkingsversjon av et program utviklet i Visual C++. For at dette programmet skal fungere på en datamaskin, må visse forutsetninger være på plass, som Microsoft Visual C++ biblioteks-DLL-er og selve Visual C++ installert. Her kommer Ansible inn i bildet. Ansible sørger for at alle disse nødvendige pakkene og programvaren er installert, slik at applikasjonen din kjører problemfritt, uansett om det er i test- eller produksjonsmiljø.
Ansible lagrer også historisk data for applikasjonen din. Dette gjør det enkelt å gå tilbake til en tidligere versjon eller oppgradere til en ny, når som helst.
La oss se nærmere på noen av funksjonene:
Agentløs: Ansible krever ingen installasjon av programvare eller agenter på nodene, i motsetning til andre løsninger som Docker og Chef.
Python: Ansible er bygget på Python, et raskt og robust programmeringsspråk som er mye brukt i dagens IT-verden.
SSH: Ansible benytter SSH, en sikker og passordløs protokoll for nettverksautentisering. Du må sørge for at SSH-nøkkelen er kopiert til klienten.
Push-arkitektur: Ansible overfører nødvendige konfigurasjoner direkte til klientene. Du lager playbooks med de ønskede konfigurasjonene og sender dem til alle nodene samtidig. Dette gjør det mulig å implementere endringer på tusenvis av servere i løpet av få minutter.
Enkelt oppsett: Ansible har et minimalt sett med krav og konfigurasjon for å fungere.
Ansible Arkitektur
Ansible kan brukes med både offentlige og private skyløsninger som Linux-servere. Den kan også fungere som et sentralt sted for alle IT-installasjoner og konfigurasjoner.
Arkitekturen består av et sett med vertsmaskiner som Ansible-serveren kobler seg til og distribuerer playbooks via SSH.
Den har en automatiseringsmotor som lar brukere kjøre playbooks direkte på vertene. Det er flere komponenter i denne motoren. Først er det en vertsfortegnelse, en liste over IP-adressene til alle vertene.
Deretter kommer modulene. Ansible leveres med hundrevis av innebygde moduler, som er kodebiter som utføres når en playbook kjøres. En playbook inneholder «plays», en «play» inneholder forskjellige oppgaver, og en oppgave inneholder moduler.
Modulene utføres på vertene og inneholder handlingene som skal utføres. Du kan også lage egne, tilpassede moduler. Alt du trenger å gjøre er å skrive kode og gjøre den om til en modul, som du kan bruke når som helst.
Playbooks definerer arbeidsflyten. Oppgavene du skriver i en playbook, utføres i samme rekkefølge. For eksempel vil en playbook installere en pakke og deretter starte den, i denne rekkefølgen. Playbooks er skrevet i enkel YAML-kode. YAML er et lettlest dataserialiseringsspråk, som er nesten som engelsk.
Plugins er en type moduler som utføres før andre moduler på nodene. Plugins utføres på hovedkontrollmaskinen for loggingsformål. Ansible har «callback plugins» som kobler til forskjellige hendelser for visning og logging. «Cache plugins» lagrer fakta for å unngå ressurskrevende innsamling av informasjon. Det finnes også «action plugins», som er front-end-moduler og kan utføre oppgaver på kontrollmaskinen før modulene utføres på nodene.
Ansible har også «connection plugins», siden det ikke alltid er nødvendig å bruke SSH. Du kan for eksempel bruke en plugin for Docker-containere, og dermed enkelt koble til alle Docker-beholderne dine og starte konfigurasjonen.
Dette var alt om arkitekturen. La oss nå se på hvordan Ansible fungerer.
Hvordan fungerer Ansible?
Ansible kobler seg til nodene og distribuerer små programmer som kalles Ansible-moduler. Disse modulene kjøres over SSH og fjernes når de er ferdige.
Ansible-administrasjonsnoden er den kontrollerende noden, som styrer utførelsen av playbooks. Det er noden du kjører installasjonen fra. Inventarfilen inneholder en liste over vertene hvor modulene skal kjøres. Administrasjonsnoden etablerer en SSH-tilkobling, kjører modulene på vertene, installerer produktene og fjerner modulene etter at installasjonen er fullført. Dette er hvordan Ansible fungerer.
Du er kanskje interessert i å lære hvordan du installerer og konfigurerer Ansible.
Konklusjon
Jeg håper du nå har fått et godt inntrykk av Ansible. Ansible endrer måten infrastruktur administreres på. Hvis du er systemadministrator eller utvikler, kan du se nærmere på denne praktiske treningen for å utvikle dine ferdigheter.