Setting Up Ansible for EC2 With Dynamic Inventory🙂

Poojan Mehta
Poojan Mehta

Seuraa

syyskuu 25, 2020 – 5 min read

→Edellytykset:

– >RedHat Ansible ladattu ja konfiguroitu paikalliseen jĂ€rjestelmÀÀn.

>Katso edellinen artikkelini Ansiblea varten👇👇:

~Obgelmanratkaisu:

♊ Aseta Web-palvelin AWS:lle ANSIBLE:n avulla!”

đŸ”č Provisionoi EC2-instanssi Ansiblen avulla.

đŸ”č Hae instanssin IP-osoite dynaamisen inventaariokonseptin avulla.

đŸ”č Konfiguroi verkkopalvelin ansiblen kautta!

  • Koska Ansible on rakennettu pythonin pÀÀlle, tarvitaan Python Software Development Kit (SDK), joka mahdollistaa AWS-palveluiden konfiguroinnin. Paketti on objektisuuntautunut API nimeltĂ€ boto3.
pip3 install boto3 //assuming python3 is installed

→STEP-1)

  • EnsimmĂ€isessĂ€ vaiheessa provisioin ec2-instanssin tĂ€llĂ€ playbookilla.
  • TĂ€ssĂ€ RedHat-jĂ€rjestelmĂ€ itse kutsuu API:ta AWS:n konfigurointia varten, ja tĂ€mĂ€ toimenpide tehdÀÀn paikallisella koneella, minkĂ€ vuoksi hostin on tarkoitus olla localhost.
  • Luo AWS-tilin tunnistautumista varten yksi IAM-kĂ€yttĂ€jĂ€, jolla on vĂ€hemmĂ€n oikeuksia kuin root-tilillĂ€. AWS_ACCESS_KEY ja AWS_SECRET-avain vĂ€litetÀÀn eksplisiittisesti secret-nimisen Ansible-holvin kautta.yml

Enkrypted Holvi🔒
- hosts: localhost
vars_files:
- secret.yml
tasks:
- name: Provision os in AWS
ec2:
key_name: "keytask" //keypair to be attached to the instance
instance_type: "t2.micro"
image: "ami-0ebc1ac48dfd14136" //amazon linux
count: 1
wait: yes
vpc_subnet_id: "subnet-e7780dab"
region: "ap-south-1" //asia-pecific-south region of AWS
state: present
assign_public_ip: yes
group_id: "sg-0512d293cfb4af6e4" //security group
aws_access_key: "{{ myuser }}"
aws_secret_key: "{{ mypass }}"
register: ec2 - debug:
var: ec2.instances.public_ip

vastaava-playbook ec2.py – ask-vault-pass🚀

Ansible-rekisterin avulla kÀyttÀjÀ voi kaapata ulostulon ja tallentaa sen muuttujiksi ja sitÀ voidaan kÀyttÀÀ eri skenaarioissa. Muuttujat sisÀltÀvÀt tehtÀvÀn palauttaman arvon.

Rekisterimuuttuja tulostaa instanssin julkisen IP-osoitteen Ansiblen kerÀÀmistÀ faktoista.

→STEP-2)

> Instanssi on kĂ€ynnistetty! MitĂ€ seuraavaksi?đŸ€”đŸ€”

PitÀisi dumpata tÀmÀn instanssin IP-osoite inventaariotiedostoon ja tehdÀ jatkotoimenpiteet!

Ajattelen, ettĂ€ kirjoitan IP:n yksinkertaisesti host-tiedostoonđŸ€­?? NAH ! Ei manuaalisestiđŸ€«đŸ€«

JA TÄMÄ ON SIITÄ, JOSTA đŸ”„DYNAMIC INVENTORYđŸ”„ TULEE PELIIN:

→Ansible dynaaminen inventaario on kĂ€site, joka sisĂ€ltÀÀ skriptejĂ€, jotka toimivat ulkoisina API:ina ja vetĂ€vĂ€t tietyn palveluntarjoajan tiedot(faktat).

→KerĂ€tyt faktat dumpataan dynaamisesti isĂ€ntĂ€tiedostoon, ja lisĂ€ksi voimme luoda nĂ€istĂ€ isĂ€nnistĂ€ ryhmiĂ€ tarpeen mukaan.

→Kopioi seuraavat tiedostot ohjaussolmuun dynaamisen inventaarion kĂ€yttöönottamiseksi.

https://raw.githubusercontent.com/ansible/ansible/stable-1.9/plugins/inventory/ec2.pyhttps://raw.githubusercontent.com/ansible/ansible/stable-1.9/plugins/inventory/ec2.ini

→Kummankin tiedoston on oltava suoritettavassa muodossa:

chmod +x ec2.py
chmod +x ec2.ini

→Tilin todennusta varten vĂ€litĂ€ myös AWS_ACCESS_KEY ja AWS_SECRET_KEY ec2.ini-tiedostossa. TĂ€mĂ€ ottaa puolestamme yhteyttĂ€ AWS:ÀÀn ja hakee ec2-instanssin tiedot.

→Muokkaa inventaariotiedostoa myös ANSIBLE.CFG-konfiguraatiotiedostoissa.

→Nyt, nĂ€hdĂ€ksesi tuloksen, suorita ./ec2.py - - list

.

JÀtÀ kommentti