Nastavení Ansible pro EC2 s dynamickým inventářem🙂

Poojan Mehta
Poojan Mehta

Sledovat

25. září, 2020 – 5 minut čtení

→Předpoklady:

– >RedHat Ansible stažen a nakonfigurován v lokálním systému.

>Podívejte se na můj předchozí článek o Ansible👇👇:

~Popis problému:

♦️ Nasazení webového serveru na AWS prostřednictvím ANSIBLE!

🔹 Zajištění instance EC2 prostřednictvím ansible.

🔹 Získejte IP adresu instance pomocí konceptu dynamické inventury.

🔹 Nakonfigurujte webový server prostřednictvím ansible!

  • Jelikož je ansible postaven na pythonu, je zapotřebí sada pro vývoj softwaru v pythonu (SDK), která umožňuje konfiguraci služeb AWS. Tímto balíčkem je objektově orientované rozhraní API s názvem boto3.
pip3 install boto3 //assuming python3 is installed

→KROK-1)

  • V prvním kroku jsem pomocí tohoto playbooku zajistil instanci ec2.
  • Zde systém RedHat sám volá API pro konfiguraci na AWS a tento postup se provádí na lokálním počítači, proto má být hostitelem localhost.
  • Pro ověření k účtu AWS vytvořte jednoho uživatele IAM, který má menší oprávnění než účet root. Klíče AWS_ACCESS_KEY a AWS_SECRET se předávají explicitně prostřednictvím trezoru Ansible s názvem secret.yml

Šifrování Trezor🔒
- 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

anonymní-playbook ec2.py – ask-vault-pass🚀

Ansible register umožňuje uživateli zachytit výstup a uložit jej jako proměnné a lze jej použít v různých scénářích. Proměnné budou obsahovat hodnotu vrácenou úlohou.

Proměnná register vypíše veřejnou IP adresu instance z faktů, které Ansible shromažďuje.

→STEP-2)

> Instance byla spuštěna! Co dál?🤔🤔

Potřebujeme vypsat IP adresu této instance do inventárního souboru a provést další postup!

Přemýšlím, že IP jednoduše zapíšu do hostitelského souboru🤭? NAH ! Ne ručně🤫🤫

A TADY PŘICHÁZÍ DO HRY 🔥DYNAMICKÁ INVENTÁŘ🔥:

→Dynamická inventura je koncept, který obsahuje skripty, které fungují jako externí API a stahují informace(fakta) konkrétního poskytovatele.

→Shromážděná fakta se budou dynamicky vypisovat do souboru hostitele a dále můžeme vytvářet skupiny těchto hostitelů podle požadavku.

→Zkopírujte následující soubory do uzlu řadiče, abyste umožnili dynamickou inventuru.

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

→Oba soubory musí být ve spustitelném formátu:

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

→Také pro ověření účtu předejte AWS_ACCESS_KEY a AWS_SECRET_KEY v souboru ec2.ini. Tím se naším jménem spojíme se službou AWS a získáme informace o instanci ec2.

→Upravte také soubor inventory v konfiguračních souborech ANSIBLE.CFG.

→Pro zobrazení výstupu nyní spusťte ./ec2.py - - list

.

Napsat komentář