Benvigut/da al meu portafoli digital, on podràs veure els treballs que fem al CFGM de sistemes microinformàtics i xarxes
Erik Amigó Kuhn - SMX
Automatitzar configuracions bàsiques amb scripts

Automatitzar configuracions bàsiques amb scripts

Introducció

He creat scripts per automatitzar configuracions bàsiques en Windows i Linux. Concretament he fet dos scripts per sistema operatiu:

  1. Script base (actualització del sistema + instal·lació de paquets essencials).
  2. Script de gestió d’usuaris i seguretat (creació d’usuari administrador + configuració bàsica de firewall).

He seguit un procés iteratiu amb l’IA, he documentat totes les evidències i he organitzat el portafoli amb enllaços funcionals. L’objectiu era arribar a un nivell professional però senzill i robust.

Justificació de les decisions tècniques

He justificat totes les decisions tècniques perquè es vegi clarament el perquè de cada comanda, variable, condició i bucle.

Scripts per Linux (Bash)

He triat Bash perquè és l’intèrpret natiu a gairebé totes les distribucions Linux i permet scripts molt portables. Estructura general: shebang, set -e (per aturar el script si hi ha error), funció de logging, variables i comprovacions.

1. setup-base.sh

  • #!/bin/bash i set -e: Assegura que el script s’atura immediatament si falla qualsevol comanda (bona pràctica que vaig aprendre consultant guies de scripting).
  • LOG_FILE=»/var/log/automatitzacio-setup.log»: Variable per guardar el log.
  • Funció log(): Bucle implícit amb tee -a per escriure al fitxer i a la consola.
  • apt-get update -y && apt-get upgrade -y: Actualitza repositoris i paquets. He escollit apt-get en lloc d’apt perquè és més estable en scripts no interactius.
  • apt-get install -y git curl vim ufw: Instal·la eines essencials.
  • ufw default deny incoming, ufw allow ssh, ufw –force enable: Configuració bàsica de firewall.

2. gestio-usuaris.sh

  • Variable $USERNAME i $PASSWORD.
  • Condició if id «$USERNAME» &>/dev/null: Comprova si l’usuari ja existeix per evitar errors.
  • useradd -m -s /bin/bash «$USERNAME»: Crea usuari amb home i shell.
  • echo «$USERNAME:$PASSWORD» | chpasswd: Assigna contrasenya de forma segura.
  • usermod -aG sudo «$USERNAME»: Afegeix permisos administratius.

Fonts consultades:

  • Documentació oficial Ubuntu
  • GNU Bash Manual
  • Guia de UFW
  • Stack Overflow i fòrums de scripting.

Alternatives descartades:

  • Utilitzar Ansible: massa pesant per a una tasca bàsica.
  • Fer-ho amb crontab per actualitzacions automàtiques: no era l’objectiu (volíem un script executable manualment).
  • Utilitzar iptables directament: UFW és més senzill i recomanat per principiants.

Scripts per Windows (PowerShell)

He escollit PowerShell perquè és la ferramenta moderna de Microsoft, molt més potent que el CMD antic i permet objectes, try/catch i integració nativa.

1. Setup-Base.ps1

  • #Requires -RunAsAdministrator: Obliga a executar com a administrador.
  • Funció Write-Log: Similar a la de Linux, amb timestamp.
  • winget upgrade –all –accept-source-agreements: Actualitza totes les apps.
  • winget install –id Git.Git -e –silent: Instal·la paquets de forma silenciosa.

2. Setup-User.ps1

  • Variables $User i $Pass = ConvertTo-SecureString ….
  • Condició if (Get-LocalUser -Name $User -ErrorAction SilentlyContinue).
  • New-LocalUser + Add-LocalGroupMember -Group «Administrators».

Fonts: Microsoft Learn – PowerShell scripting, documentació de winget. Alternatives descartades: CMD (massa limitat), Chocolatey (requereix instal·lació prèvia). Vaig triar winget perquè ja ve instal·lat per defecte a Windows 10/11.

Implementació – Els scripts (plenament funcionals i testejats)

Linux – setup-base.sh

Linux – gestio-usuaris.sh

Windows – Setup-Base.ps1

Windows – Setup-User.ps1

Procés d’iteració amb la IA (mínim 3 vegades per script)

Primera ronda: Vaig demanar scripts bàsics senzills. Sortien bé però sense logging ni gestió d’errors.

Segona ronda: Vaig demanar afegir logging, condicions i comprovacions (com el if per l’usuari).

Tercera ronda: Vaig demanar optimitzacions finals (set -e, funcions, comentaris exhaustius i bones pràctiques). Vaig ajustar les converses i vaig guardar tot al portafoli.

    Els scripts s’han executat correctament en màquines virtuals (Ubuntu 22.04 i Windows 11).