Introducció

La Infraestructura com a Codi (IaC) és una pràctica que implica la gestió i el subministrament de la infraestructura mitjançant codi, en lloc de processos manuals. Aquesta tècnica permet als administradors de sistemes i als enginyers de DevOps automatitzar la configuració, el desplegament i la gestió de la infraestructura, garantint consistència i eficiència.

Objectius del Tema

  • Entendre els conceptes bàsics de IaC.
  • Conèixer les eines principals utilitzades en IaC.
  • Aprendre a escriure i desplegar configuracions d'infraestructura mitjançant codi.
  • Identificar els beneficis i els reptes de la implementació de IaC.

Conceptes Bàsics de IaC

Definició

La Infraestructura com a Codi és el procés de gestionar i aprovisionar els recursos informàtics mitjançant fitxers de definició que poden ser editats per humans, en lloc de configuracions físiques o eines de configuració interactives.

Beneficis

  • Consistència: Redueix els errors humans i garanteix que la infraestructura sigui consistent en tots els entorns.
  • Automatització: Permet automatitzar el desplegament i la gestió de la infraestructura.
  • Escalabilitat: Facilita l'escalabilitat de la infraestructura de manera eficient.
  • Documentació: El codi serveix com a documentació viva de la infraestructura.

Eines Principals

  • Terraform: Una eina de codi obert per a la construcció, el canvi i la versió de la infraestructura de manera segura i eficient.
  • Ansible: Una eina d'automatització que gestiona la configuració i el desplegament de servidors.
  • Chef: Una plataforma d'automatització que tracta la infraestructura com a codi.
  • Puppet: Una eina que permet la gestió de la configuració i l'automatització de la infraestructura.

Exemples Pràctics

Exemple amb Terraform

Instal·lació de Terraform

# Per a sistemes basats en Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y terraform

Fitxer de Configuració de Terraform

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleInstance"
  }
}

Desplegament de la Infraestructura

# Inicialitzar el directori de treball
terraform init

# Crear un pla d'execució
terraform plan

# Aplicar el pla d'execució
terraform apply

Exemple amb Ansible

Instal·lació d'Ansible

# Per a sistemes basats en Debian/Ubuntu
sudo apt-get update && sudo apt-get install -y ansible

Fitxer de Playbook d'Ansible

- name: Configurar i desplegar un servidor web
  hosts: webservers
  become: yes
  tasks:
    - name: Instal·lar Apache
      apt:
        name: apache2
        state: present

    - name: Iniciar el servei d'Apache
      service:
        name: apache2
        state: started

Execució del Playbook

ansible-playbook -i inventari.ini playbook.yml

Beneficis i Reptes de IaC

Beneficis

  • Desplegament Ràpid: Permet desplegar la infraestructura de manera ràpida i eficient.
  • Control de Versions: El codi de la infraestructura es pot versionar, permetent un seguiment dels canvis.
  • Reutilització: Les configuracions es poden reutilitzar en diferents entorns.

Reptes

  • Complexitat Inicial: Pot requerir una corba d'aprenentatge inicial significativa.
  • Manteniment del Codi: El codi de la infraestructura necessita manteniment i actualitzacions constants.
  • Seguretat: Cal garantir que les configuracions no exposin informació sensible.

Exercicis Pràctics

Exercici 1: Crear una Instància EC2 amb Terraform

  1. Instal·la Terraform al teu sistema.
  2. Escriu un fitxer de configuració per crear una instància EC2 a AWS.
  3. Desplega la instància utilitzant Terraform.

Exercici 2: Configurar un Servidor Web amb Ansible

  1. Instal·la Ansible al teu sistema.
  2. Escriu un playbook per instal·lar i configurar un servidor web Apache.
  3. Executa el playbook per desplegar el servidor web.

Solucions

Solució Exercici 1

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleInstance"
  }
}
terraform init
terraform plan
terraform apply

Solució Exercici 2

- name: Configurar i desplegar un servidor web
  hosts: webservers
  become: yes
  tasks:
    - name: Instal·lar Apache
      apt:
        name: apache2
        state: present

    - name: Iniciar el servei d'Apache
      service:
        name: apache2
        state: started
ansible-playbook -i inventari.ini playbook.yml

Resum

En aquesta secció, hem explorat el concepte de la Infraestructura com a Codi (IaC), els seus beneficis i reptes, i hem après a utilitzar eines com Terraform i Ansible per gestionar la infraestructura. La IaC és una pràctica poderosa que pot millorar significativament l'eficiència i la consistència de la gestió de la infraestructura TI.

Curs d'Infraestructures TI

Mòdul 1: Introducció a les Infraestructures TI

Mòdul 2: Gestió de Servidors

Mòdul 3: Gestió de Xarxes

Mòdul 4: Gestió d'Emmagatzematge

Mòdul 5: Alta Disponibilitat i Recuperació davant Desastres

Mòdul 6: Monitoratge i Rendiment

Mòdul 7: Seguretat en Infraestructures TI

Mòdul 8: Automatització i Gestió de Configuració

Mòdul 9: Tendències i Futur de les Infraestructures TI

© Copyright 2024. Tots els drets reservats