Hvordan administrere virtuelle maskiner med Ansible EC2 AWS-modul (2024)

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:

I slekt:Slik konfigurerer du Ansible (Ubuntu, RHEL, CentOS, macOS)

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ølgendemuligkommando 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-2region. For å autentisere tilkoblingen til AWS-kontoen, legger du tilaws_access_keyogaws_secret_keydetaljer 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.

How to Manage Virtual Machines With Ansible EC2 AWS Module (1)

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_moduleog 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 utaws_access_key,aws_secret_keyverdier 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-2region 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.

How to Manage Virtual Machines With Ansible EC2 AWS Module (2)

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.

How to Manage Virtual Machines With Ansible EC2 AWS Module (3)

På EC2-siden vil du se den nyopprettede forekomsten din, som vist nedenfor.

How to Manage Virtual Machines With Ansible EC2 AWS Module (4)

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, endrestatverdi 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
How to Manage Virtual Machines With Ansible EC2 AWS Module (5)

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.

How to Manage Virtual Machines With Ansible EC2 AWS Module (6)

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
How to Manage Virtual Machines With Ansible EC2 AWS Module (7)

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.

How to Manage Virtual Machines With Ansible EC2 AWS Module (8)

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.

How to Manage Virtual Machines With Ansible EC2 AWS Module (9)

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

Hvordan administrere virtuelle maskiner med Ansible EC2 AWS-modul (2024)

References

Top Articles
Latest Posts
Article information

Author: Greg O'Connell

Last Updated:

Views: 6680

Rating: 4.1 / 5 (62 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Greg O'Connell

Birthday: 1992-01-10

Address: Suite 517 2436 Jefferey Pass, Shanitaside, UT 27519

Phone: +2614651609714

Job: Education Developer

Hobby: Cooking, Gambling, Pottery, Shooting, Baseball, Singing, Snowboarding

Introduction: My name is Greg O'Connell, I am a delightful, colorful, talented, kind, lively, modern, tender person who loves writing and wants to share my knowledge and understanding with you.