En aquest tema, explorarem com Ansible pot ser utilitzat per gestionar i automatitzar entorns en el núvol. Aprendrem a interactuar amb diferents proveïdors de serveis de núvol com AWS, Azure i Google Cloud Platform (GCP) utilitzant Ansible. També veurem exemples pràctics i exercicis per consolidar els coneixements adquirits.

Objectius del Tema

  • Entendre com Ansible pot ser utilitzat en entorns de núvol.
  • Aprendre a configurar Ansible per treballar amb AWS, Azure i GCP.
  • Escriure Playbooks per gestionar recursos en el núvol.
  • Realitzar exercicis pràctics per aplicar els coneixements.

  1. Introducció a Ansible en el Núvol

Ansible és una eina potent per a la gestió de configuracions i l'automatització de tasques en entorns de núvol. Amb Ansible, pots:

  • Provisió de màquines virtuals.
  • Configurar xarxes i altres recursos.
  • Desplegar aplicacions.
  • Gestionar serveis i infraestructures.

  1. Configurant Ansible per AWS

2.1. Instal·lació del Mòdul AWS

Per treballar amb AWS, necessitem instal·lar el mòdul boto3 i botocore:

pip install boto3 botocore

2.2. Configuració de les Credencials

Ansible utilitza les credencials d'AWS per autenticar-se. Pots configurar les credencials utilitzant el fitxer ~/.aws/credentials:

[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY

2.3. Exemple de Playbook per AWS

---
- name: Provisió d'una instància EC2 a AWS
  hosts: localhost
  gather_facts: no
  tasks:
    - name: Llençar una instància EC2
      ec2:
        key_name: my-key
        instance_type: t2.micro
        image: ami-0abcdef1234567890
        wait: yes
        region: us-west-2
        count: 1
      register: ec2

    - name: Mostrar informació de la instància
      debug:
        var: ec2

  1. Configurant Ansible per Azure

3.1. Instal·lació del Mòdul Azure

Per treballar amb Azure, necessitem instal·lar el mòdul azure:

pip install ansible[azure]

3.2. Configuració de les Credencials

Ansible utilitza les credencials d'Azure per autenticar-se. Pots configurar les credencials utilitzant el fitxer ~/.azure/credentials:

[default]
subscription_id = YOUR_SUBSCRIPTION_ID
client_id = YOUR_CLIENT_ID
secret = YOUR_SECRET
tenant = YOUR_TENANT_ID

3.3. Exemple de Playbook per Azure

---
- name: Provisió d'una màquina virtual a Azure
  hosts: localhost
  tasks:
    - name: Crear una màquina virtual
      azure_rm_virtualmachine:
        resource_group: myResourceGroup
        name: myVM
        vm_size: Standard_DS1_v2
        admin_username: azureuser
        admin_password: Password1234!
        image:
          offer: UbuntuServer
          publisher: Canonical
          sku: 18.04-LTS
          version: latest

  1. Configurant Ansible per GCP

4.1. Instal·lació del Mòdul GCP

Per treballar amb GCP, necessitem instal·lar el mòdul google-auth i google-api-python-client:

pip install google-auth google-api-python-client

4.2. Configuració de les Credencials

Ansible utilitza les credencials de GCP per autenticar-se. Pots configurar les credencials utilitzant el fitxer ~/.gcp/credentials.json:

{
  "type": "service_account",
  "project_id": "YOUR_PROJECT_ID",
  "private_key_id": "YOUR_PRIVATE_KEY_ID",
  "private_key": "YOUR_PRIVATE_KEY",
  "client_email": "YOUR_CLIENT_EMAIL",
  "client_id": "YOUR_CLIENT_ID",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "YOUR_CLIENT_X509_CERT_URL"
}

4.3. Exemple de Playbook per GCP

---
- name: Provisió d'una instància a GCP
  hosts: localhost
  tasks:
    - name: Crear una instància
      gcp_compute_instance:
        name: my-instance
        machine_type: n1-standard-1
        zone: us-central1-a
        disks:
          - auto_delete: true
            boot: true
            initialize_params:
              source_image: projects/debian-cloud/global/images/family/debian-9
        network_interfaces:
          - network: default
            access_configs:
              - name: External NAT
                type: ONE_TO_ONE_NAT

Exercicis Pràctics

Exercici 1: Provisió d'una Instància EC2 a AWS

  1. Configura les teves credencials d'AWS.
  2. Escriu un Playbook per crear una instància EC2.
  3. Executa el Playbook i verifica que la instància ha estat creada.

Exercici 2: Provisió d'una Màquina Virtual a Azure

  1. Configura les teves credencials d'Azure.
  2. Escriu un Playbook per crear una màquina virtual a Azure.
  3. Executa el Playbook i verifica que la màquina virtual ha estat creada.

Exercici 3: Provisió d'una Instància a GCP

  1. Configura les teves credencials de GCP.
  2. Escriu un Playbook per crear una instància a GCP.
  3. Executa el Playbook i verifica que la instància ha estat creada.

Resum

En aquest tema, hem après com utilitzar Ansible per gestionar i automatitzar entorns en el núvol amb AWS, Azure i GCP. Hem vist com configurar les credencials i hem escrit Playbooks per crear recursos en aquests entorns. Els exercicis pràctics ens han ajudat a consolidar els coneixements adquirits. En el següent tema, explorarem les millors pràctiques d'Ansible per assegurar-nos que el nostre codi és eficient i segur.

© Copyright 2024. Tots els drets reservats