Configuration d’Ansible pour EC2 avec inventaire dynamique🙂

Poojan Mehta
Poojan Mehta

Follow

25 sept, 2020 – 5 min lu

→ PrĂ©-requis :

– >RedHat Ansible tĂ©lĂ©chargĂ© et configurĂ© dans le systĂšme local.

>VĂ©rifiez mon article prĂ©cĂ©dent pour Ansible👇👇:

~ÉnoncĂ© du problĂšme:

♊ DĂ©ployer un serveur Web sur AWS par ANSIBLE!

đŸ”č Provisionner une instance EC2 par ansible.

đŸ”č RĂ©cupĂ©rer l’adresse IP de l’instance en utilisant le concept d’inventaire dynamique.

đŸ”č Configurer le serveur web Ă  travers ansible!

  • Comme Ansible est construit au-dessus de python, un kit de dĂ©veloppement logiciel (SDK) Python est nĂ©cessaire qui permet la configuration des services AWS. Ce kit est une API orientĂ©e objet nommĂ©e boto3.
pip3 install boto3 //assuming python3 is installed

→STEP-1)

  • Dans la premiĂšre Ă©tape, j’ai provisionnĂ© une instance ec2 avec ce playbook.
  • Ici, le systĂšme RedHat lui-mĂȘme appelle l’API pour la configuration sur AWS, et cette procĂ©dure est faite sur la machine locale c’est pourquoi l’hĂŽte est censĂ© ĂȘtre localhost.
  • Pour l’authentification au compte AWS, crĂ©ez un utilisateur IAM qui a moins de privilĂšges que le compte root. Les clĂ©s AWS_ACCESS_KEY et AWS_SECRET sont passĂ©es explicitement par un coffre-fort Ansible nommĂ© secret.yml

EncryptĂ©. 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🚀

Le registre Ansible permet Ă  l’utilisateur de capturer la sortie et de la stocker en tant que variables et peut ĂȘtre utilisĂ© dans diffĂ©rents scĂ©narios. Les variables contiendront la valeur retournĂ©e par la tĂąche.

La variable register imprimera l’adresse IP publique de l’instance Ă  partir des faits Ansible qu’elle recueille.

→STEP-2)

> L’instance a Ă©tĂ© lancĂ©e ! Et ensuite ? đŸ€”đŸ€”

Nous devons dĂ©verser l’adresse IP de cette instance dans le fichier d’inventaire et faire la suite de la procĂ©dure !

Je me demande si je vais simplement Ă©crire l’IP dans le fichier d’hĂŽteđŸ€­ ? ? NAH ! Pas manuellementđŸ€«đŸ€«

ET C’EST LÀ QUE đŸ”„DYNAMIC INVENTORYđŸ”„ ENTRE EN JEU :

→L’inventaire dynamique ansible est un concept qui contient des scripts qui fonctionnent comme des API externes et tire les informations(faits) d’un fournisseur particulier.

→Les faits rassemblĂ©s seront dĂ©versĂ©s dynamiquement dans le fichier d’hĂŽtes et en outre, nous pouvons crĂ©er des groupes de ces hĂŽtes selon les besoins.

→Copiez les fichiers suivants dans le nƓud du contrĂŽleur pour activer l’inventaire dynamique.

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

→Les deux fichiers doivent ĂȘtre au format exĂ©cutable :

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

→De plus, pour l’authentification du compte, passez AWS_ACCESS_KEY et AWS_SECRET_KEY dans le fichier ec2.ini. Cela permettra de contacter AWS en notre nom et de rĂ©cupĂ©rer les informations de l’instance ec2.

→Modifiez Ă©galement le fichier d’inventaire dans les fichiers de configuration ANSIBLE.CFG.

→Maintenant, pour voir la sortie, exĂ©cutez ./ec2.py - - list

.

Laisser un commentaire