→Precondiții:
– >RedHat Ansible descărcat și configurat în sistemul local.
>Verificați articolul meu anterior pentru Ansible👇👇:
~Enunțarea problemei:
♦️ Deploy Web Server on AWS through ANSIBLE!
🔹 Provisionați instanța EC2 prin ansible.
🔹 Recuperați adresa IP a instanței folosind conceptul de inventar dinamic.
🔹 Configurați serverul web prin ansible!
- Deoarece Ansible este construit pe python, este necesar un kit de dezvoltare software (SDK) Python care să permită configurarea serviciilor AWS. Pachetul este un API orientat pe obiecte numit boto3.
pip3 install boto3 //assuming python3 is installed
→STEP-1)
- În primul pas, am provizionat o instanță ec2 cu acest playbook.
- Aici, sistemul RedHat însuși apelează API-ul pentru configurarea pe AWS, iar această procedură se face pe mașina locală, de aceea se presupune că gazda este localhost.
- Pentru autentificarea la contul AWS, creați un utilizator IAM care are mai puține privilegii decât contul root. Cheia AWS_ACCESS_KEY și cheia AWS_SECRET sunt transmise în mod explicit prin intermediul unui seif Ansible numit secret.yml
Și aici intervine 🔥DYNAMIC INVENTORY🔥DYNAMIC INVENTORY🔥:
→Inventarul dinamic accesibil este un concept care conține scripturi care funcționează ca API-uri externe și extrage informațiile (faptele) unui anumit furnizor.
→Factele adunate vor fi descărcate în mod dinamic în fișierul gazdă și, mai departe, putem crea grupuri ale acestor gazde în funcție de cerințe.
→Copiați următoarele fișiere în nodul controler pentru a activa inventarul dinamic.
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
→Ambele fișiere trebuie să fie în format executabil:
chmod +x ec2.py
chmod +x ec2.ini
→De asemenea, pentru autentificarea contului, treceți AWS_ACCESS_KEY și AWS_SECRET_KEY în fișierul ec2.ini. Acest lucru va contacta AWS în numele nostru și va prelua informațiile instanței ec2.
→Editați și fișierul de inventar în fișierele de configurare ANSIBLE.CFG.
→Acum, pentru a vedea rezultatul, rulați ./ec2.py - - list