→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
- 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
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