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