Az Ansible beállítása az EC2-hez dinamikus leltárral🙂

Poojan Mehta
Poojan Mehta

Follow

Sep 25, 2020 – 5 min olvasni

→Előfeltételek:

– >RedHat Ansible letöltve és konfigurálva a helyi rendszerben.

>Nézd meg a korábbi cikkemet az Ansible-ról👇👇:

~Problémafelvetés:

♦️ Webszerver telepítése az AWS-en az ANSIBLE segítségével!

🔹 EC2 példány biztosítása az ansible segítségével.

🔹 Szerezze be a példány IP-címét a dinamikus leltár koncepció segítségével.

🔹 Konfigurálja a webkiszolgálót az ansible segítségével!

  • Mivel az Ansible pythonra épül, szükség van egy Python szoftverfejlesztő készletre (SDK), amely lehetővé teszi az AWS szolgáltatások konfigurálását. A csomag egy boto3 nevű objektumorientált API.
pip3 install boto3 //assuming python3 is installed

→STEP-1)

  • Az első lépésben ezzel a playbookkal egy ec2 példányt provokáltam.
  • Itt a RedHat rendszer maga hívja meg az AWS-en a konfigurációhoz szükséges API-t, és ez a művelet a helyi gépen történik, ezért a hostnak localhostnak kell lennie.
  • Az AWS fiók hitelesítéséhez hozzunk létre egy IAM felhasználót, amely a root fióknál kisebb jogosultságokkal rendelkezik. Az AWS_ACCESS_KEY és az AWS_SECRET kulcsot kifejezetten egy secret nevű Ansible trezoron keresztül adjuk át.yml

Encrypted Vault🔒
- 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

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

Az ansible regiszter lehetővé teszi a felhasználó számára a kimenet rögzítését és változóként való tárolását, és különböző forgatókönyvekben használható. A változók tartalmazzák a feladat által visszaadott értéket.

A register változó kiírja a példány nyilvános IP-címét az Ansible által gyűjtött tényekből.

→STEP-2)

> A példány elindult! Most mi következik?🤔🤔

Ez a példány IP címét kell a leltárfájlba dumpolnunk és elvégezni a további eljárást!

Gondolom, egyszerűen beírom az IP-t a host fájlba🤭?? NAH ! Nem kézzel🤫🤫🤫

És itt jön a képbe a 🔥DYNAMIC INVENTORY🔥:

→Ansible dinamikus leltár egy olyan koncepció, amely olyan szkripteket tartalmaz, amelyek külső API-ként működnek, és egy adott szolgáltató adatait(tényeit) hívják elő.

→A begyűjtött tények dinamikusan kerülnek a host fájlba, és a továbbiakban igény szerint csoportokat hozhatunk létre ezekből a hostokból.

→A dinamikus leltár engedélyezéséhez másolja a következő fájlokat a vezérlő csomópontba.

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

→Mindkét fájlnak futtatható formátumban kell lennie:

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

→Az account hitelesítéshez adjuk meg az ec2.ini fájlban az AWS_ACCCESS_KEY és az AWS_SECRET_KEY azonosítót. Ez felveszi a kapcsolatot az AWS-szel a nevünkben, és lekérdezi az ec2 példány adatait.

→Az ANSIBLE.CFG konfigurációs fájlokban is módosítsuk az inventory fájlt.

→Most, a kimenet megtekintéséhez futtassuk le a ./ec2.py - - list

Szólj hozzá!