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
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
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
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
- Instal·la Terraform al teu sistema.
- Escriu un fitxer de configuració per crear una instància EC2 a AWS.
- Desplega la instància utilitzant Terraform.
Exercici 2: Configurar un Servidor Web amb Ansible
- Instal·la Ansible al teu sistema.
- Escriu un playbook per instal·lar i configurar un servidor web Apache.
- 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" } }
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
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
- Conceptes Bàsics d'Infraestructures TI
- Components Principals d'una Infraestructura TI
- Models d'Infraestructura: On-Premise vs. Cloud
Mòdul 2: Gestió de Servidors
- Tipus de Servidors i els seus Usos
- Instal·lació i Configuració de Servidors
- Monitoratge i Manteniment de Servidors
- Seguretat en Servidors
Mòdul 3: Gestió de Xarxes
- Fonaments de Xarxes
- Disseny i Configuració de Xarxes
- Monitoratge i Manteniment de Xarxes
- Seguretat en Xarxes
Mòdul 4: Gestió d'Emmagatzematge
- Tipus d'Emmagatzematge: Local, NAS, SAN
- Configuració i Gestió d'Emmagatzematge
- Monitoratge i Manteniment d'Emmagatzematge
- Seguretat en Emmagatzematge
Mòdul 5: Alta Disponibilitat i Recuperació davant Desastres
- Conceptes d'Alta Disponibilitat
- Tècniques i Eines per a l'Alta Disponibilitat
- Plans de Recuperació davant Desastres
- Proves i Simulacions de Recuperació
Mòdul 6: Monitoratge i Rendiment
- Eines de Monitoratge
- Mètriques Clau de Rendiment
- Optimització d'Infraestructura
- Alertes i Notificacions
Mòdul 7: Seguretat en Infraestructures TI
- Principis de Seguretat en TI
- Gestió de Vulnerabilitats
- Implementació de Polítiques de Seguretat
- Auditories i Compliment
Mòdul 8: Automatització i Gestió de Configuració
- Introducció a l'Automatització
- Eines d'Automatització
- Gestió de Configuració
- Cases d'Ús i Exemples Pràctics