TwitterFacebookLinkedIn
Når du administrerer eksisterendeAmazon Web Service (AWS) EC2forekomster fungerer det fint å klikke rundt i administrasjonskonsollen. Men etter hvert som infrastrukturen din vokser, tar det mye tid å administrere forekomster og blir komplekst. Finnes det en bedre måte å administrere forekomster på? Ja! DeAWS Ansible EC2-modulkan hjelpe.
Ikke en leser? Se denne relaterte videoopplæringen!
Ser du ikke videoen? Sørg for at annonseblokkeringen din er deaktivert.
I denne opplæringen vil du lære hvordan Ansible AWS EC2-modulen gir deg et kraftig grep for å administrere AWS EC2-forekomster i en eksempeldrevet tilnærming.
Les videre og kom i gang!
Forutsetninger
Denne opplæringen inneholder trinnvise instruksjoner. Hvis du vil følge med, sørg for at du har følgende på plass:
- AnAnsible kontrollere vert– Denne opplæringen bruker Ansible v2.11.7 på en Ubuntu 20.04.3 LTS-maskin.
I slekt:Slik konfigurerer du Ansible (Ubuntu, RHEL, CentOS, macOS)
- En ekstern Linux-datamaskin for å teste ut amazon.aws.ec2_instance Ansible-modulen. Denne opplæringen bruker Ubuntu 20.04.3 LTS som ekstern node.
- AnAWS-konto.
- En AWS IAM-bruker, entilgangsnøkkel-ID og en hemmelig nøkkel sette opp på din lokale maskinmed tilgang til å opprette og administrere EC2-forekomster. Denne opplæringen vil bruke en IAM-bruker kalt ec2bruker.
Sørg for at IAM-brukeren er konfigurert forprogrammatisk tilgangog at du tilordner den til den eksisterende policyen til AmazonEC2FullAccess.
- Aninventarfilog én eller flere verter er konfigurert til å kjøre Ansible-kommandoer og spillebøker. Den eksterne Linux-datamaskinen kallesmin server,og denne opplæringen bruker en inventargruppe kaltweb.
- Python v3.6 eller nyere installert på din Ansible-kontrollervert og den eksterne nodemaskinen. Denne opplæringen bruker Python v3.8.10 på en Ubuntu-maskin.
I slekt:Hvordan installerer du Python 3.6?
- Python-moduler boto3større enn 1.15.0 ogbotocorestørre enn 1.18.0 bør installeres på Ansible-kontrollerverten og den eksterne nodemaskinen.
Opprette eller starte en EC2-forekomst på nytt med ad hoc-kommandoer
Hvis du planlegger å opprette eller starte en enkelt EC2-forekomst på en AWS-konto, vil det være tilstrekkelig å kjøre ad hoc-kommandoer. Ad hoc-kommandoer er en rask og effektiv måte å kjøre en enkelt kommando for å opprette en EC2-forekomst eller endre en AWS EC2-forekomsts forekomsttype.
Logg på Ansible-kontrolleren og kjør følgendemulig
kommando for å koble til (-m amazon.aws.ec2_instance
) til verten (web
).
Kommandoen sender et argument (-en
) som forteller Ansible å starte AWS EC2-forekomsten på nytt medinstance_tags=Navn=Tag1
) ius-øst-2
region. For å autentisere tilkoblingen til AWS-kontoen, legger du tilaws_access_key
ogaws_secret_key
detaljer i ad hoc-kommandoen.
Opplæringen utfører alle handlingene i us-east-2-regionen, men du kan utføre de samme handlingene ienhver AWS-regionav ditt valg.
ansible web -m amazon.aws.ec2 -a " state=restarted instance_tags=Navn=Tag1 aws_access_key=AKIAVWOJMI5I2DPXXXX aws_secret_key=F9PaprqnPUn/XXXXXXXXXXXX region=us-east-2"
Når kommandoen er fullført, vil du se enENDRETmelding, som vist nedenfor, som bekrefter at Ansible har startet AWS EC2-forekomsten på nytt.
Lansering av en EC2-instans med Ansible Playbook
Du har nettopp lært hvordan du utfører en Ansible ad hoc-kommando, som er flott for en engangshandling! Men kanskje du må utføre flere oppgaver. I så fall oppretter du en Ansible-spillebok som vil starte en EC2-forekomst for å kjøre flere oppgaver.
1. Åpne terminalen i din Ansible-kontrollervert, og kjør deretter følgende kommandoer for å opprette en katalog kalt~/ansible_aws_ec2_module
og bytt til den katalogen.
Denne katalogen vil inneholdelekebokog alle nødvendige konfigurasjonsfiler som du vil bruke til å starte Ansible AWS EC2-modulen.
mkdir ~/ansible_aws_ec2_modulecd ~/ansible_aws_ec2_module
2. Deretter åpner du favoritttekstredigeringsprogrammet, oppretter en fil som heterhoved.ymli~/ansible_aws_ec2_modulekatalog. Fyll uthoved.ymlfil med følgende innhold i YAML-spilleboken.
Spilleboken nedenfor inneholder oppgaven som starter en forekomst med en offentlig IP-adresse innenfor en bestemt VPC i en AWS-konto.
I slekt:Bygg en AWS VPC med Terraform trinn for trinn
Fra dette punktet gjennom hele opplæringen, bytt ut
aws_access_key
,aws_secret_key
verdier med dine egne.
---- navn: Ansible EC2-forekomst Lanseringsmoduldemo# Definerer den eksterne serveren der Ansible EC2-modulen skal administrere objektvertene: web remote_user: ubuntu # Bruke ekstern bruker som ubuntu-oppgaver:# Oppgave for å starte en AWS EC2-forekomst med en offentlig IP - navn: start en forekomst med en offentlig IP-adresse amazon.aws.ec2:# Sette nøkkelnavnet nøkkelnavn: minnøkkel# Definer forekomsttype, bilde, vpc_subnett_id, tilordne_publik_ip, aws_region forekomst_type: t2.micro bilde: ami-0b9064170e32 wait ja-antall: 1 vpc_subnet_id: subnet-0dc9af4c75ad3e2ee assign_public_ip: yes aws_region: us-east-2 aws_access_key: AKIAVWOJMI5XXXXXXXX aws_secret_key: F9Papr8qnXXXXXXXXXXXXQn
3. Kjør kommandoen nedenfor for å starte spilleboken (hoved.yml
). Spilleboken utfører deretter oppgavene for å opprette en ny forekomst ius-øst-2
region med instanstype som t2.micro.
ansible-playbook main.yml
Nedenfor kan du se at noen oppgaver viser enendretstatus, som indikerer at Ansible opprettet forekomsten vellykket og endret oppgavens tilstand for å kjøre kommandoen. Derimot ser du enokstatus siden enkelte oppgaver ikke krever endringer.
4. Åpne nå favorittnettleseren din og logg påAWS-administrasjonskonsoll.
5. Klikk til slu*tt på søkefeltet øverst på konsollen, søk etterEC2, og klikk påEC2menyelement. Hvis du gjør det, omdirigeres nettleseren din til EC2-siden.
På EC2-siden vil du se den nyopprettede forekomsten din, som vist nedenfor.
Stopper flere AWS EC2-forekomster
Kanskje noen AWS EC2-forekomster ikke lenger tjener et formål. I så fall kan du stoppe eller avslu*tte flere forekomster ved å kjøre en Ansible-spillebok. Spesifiser forekomst-ID-ene og deklarer verdier i en oppgave for å angi Ansible EC2 AWS-modulens virkemåte for å stoppe forekomstene.
1. Lag en Ansible-spillebok med navnetstop.ymlog kopier/lim inn koden nedenfor til spilleboken.
Playbooken nedenfor stopper to forekomster (i-0d8c7eb4eb2c643a1 og i-0dbc17a67c0f7577c).
---- navn: Stoppe de allerede lanserte EC2-forekomstene ved å bruke Ansible EC2 Module# Definere den eksterne serveren der Ansible EC2-modulen skal administrere objektvertene: web gather_facts: false # Bruke Remote User som ubuntu remote_user: ubuntu vars: instance_ids: - 'i-0d8c7eb4eb2c643a1' - 'i-0dbc17a67c0f7577c' region: us-east-2 oppgaver: - navn: Stoppe de allerede lanserte AWS EC2-forekomstene amazon.aws.ec2: instance_ids: '{{ instance_ids '{}' region }}' tilstand: stoppet vent: True vpc_subnet_id: subnet-0dc9af4c75ad3e2ee assign_public_ip: yes aws_access_key: AKIAVWOJMI5XXXXXXXXX aws_secret_key: F9PaprqnPUn/NP8lzXXXXXXXXXQ
Hvis du foretrekker å avslu*tte forekomstene i stedet for å stoppe dem, endre
stat
verdi tilfraværende
.
2. Kjør nå kommandoen nedenfor for å kjøre spilleboken (stop.yml
), som vil stoppe forekomstene du spesifiserte i spilleboken.ansible-playbook stop.yml
ansible-playbook stop.yml
3. Til slu*tt, naviger til AWS-forekomstene dine i nettleseren din, og du vil se at to forekomster som ble stoppet, som vist nedenfor.
Opprette en forekomst med Tag-, Volum- og Cloud Watch-overvåking
Kanskje du må utstyre forekomsten din med mer avanserte komponenter som tagging,overvåking med skyklokkealarmer, oglage et volum for lagringformål. I så fall vil bruk av Ansible EC2 AWS-modulen i en spillebok gjøre susen.
Tagger er en utmerket måte å organisere AWS-ressurser og foreta effektive kostnadsberegninger av ressurser i AWS Management Console.
1. Opprett en ny Ansible-spillebok med navnetavansert.ymlog fyll spilleboken med koden nedenfor.
Spilleboken nedenfor vil lansere en AWS EC2-forekomst med (volumer
—>/dev/sdb
, overvåke og merke instansen medForekomst1
).
---- navn: Legge til Tag, Volumes og Cloud Watch Monitoring til en forekomst vert: web remote_user: ubuntu oppgaver: - navn: Legge til Tag, Volumes og Cloud Watch Monitoring til en forekomst amazon.aws.ec2: instance_type : t2.micro-bilde: ami-0b9064170e32bde34 vpc_subnet_id: subnet-0dc9af4c75ad3e2ee region: us-east-2 aws_access_key: AKIAVWOJMI5I2DXXXX aws_secret/ Opprette volumene og knytte til AWS EC2-forekomst av type io1-volumer: - enhetsnavn: /dev/ sdb volume_type: io1 iops: 1000 volume_size: 100# Aktivering av skyklokkeovervåking # av AWS EC2-forekomsten som vil bli lansert overvåking: yes# Tagging av AWS EC2-forekomsten som vil bli lansert instance_tags: Navn: Instance1
2. Kjør nå kommandoen nedenfor for å kjøre spilleboken (avansert.yml
), som vil lansere en AWS EC2-forekomst med tag-, volum- og skyklokkeovervåking.ansible-playbook advanced.yml
ansible-playbook advanced.yml
3. Naviger til fanen Lagring for forekomsten du vil bekrefte i AWS EC2-konsollen. UnderBlokker enheter, klikk på aVolum IDfra listen for å se forekomstens detaljerte informasjon.
4. Til slu*tt klikker du på Tags-fanen på forekomstens side med sammendragsinformasjon. Du vil se taggen du satte for forekomsten i spilleboken (trinn én), som den nedenfor.
Konklusjon
I denne opplæringen har du benyttet deg av Ansible AWS EC2-modulen for å administrere AWS EC2-forekomster med en enkelt kommando. Du lærte også hvordan du justerer AWS EC2-forekomster som å starte på nytt, avslu*tte, legge til tagger og så videre.
Nå som du har god kjennskap til Ansible AWS EC2-modulen, er du villig til å gjøre Ansible EC2 AWS-modulen til en del av instansbehandlingsrutinen din? Kanskje du vil automatisere oppgaven ved å legge til en cron-jobb?
I slekt:Hvordan utføre og liste Cron-jobber for et Linux-system via PHP