Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use strict;
- use warnings;
- my $usuario = 'univalle';
- # Función para ejecutar comandos del sistema
- sub run_command {
- my ($cmd) = @_;
- print "Ejecutando: $cmd\n";
- system($cmd) == 0 or die "Error al ejecutar el comando: $cmd\n";
- }
- # Actualizar e instalar paquetes básicos
- run_command('apt update && apt upgrade -y');
- run_command('apt install -y net-tools wget gpg git openssh-server curl software-properties-common apt-transport-https ca-certificates gnupg lsb-release');
- run_command('apt install -y build-essential libncursesw5-dev libreadline-dev libssl-dev libsqlite3-dev tk-dev libc6-dev libbz2-dev libffi-dev');
- run_command('apt install -y python3 python3-pip python3-virtualenv libgl1-mesa-glx libegl1-mesa libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6');
- run_command('apt install -y libtbb-dev libboost-thread-dev');
- # Instalar Docker
- run_command('for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt-get remove $pkg; done');
- run_command('install -m 0755 -d /etc/apt/keyrings');
- run_command('curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc');
- run_command('chmod a+r /etc/apt/keyrings/docker.asc');
- my $arch = qx(dpkg --print-architecture);
- chomp($arch);
- my $version_codename = qx(. /etc/os-release && echo \$VERSION_CODENAME);
- chomp($version_codename);
- my $docker_repo = "deb [arch=$arch signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $version_codename stable";
- run_command("echo '$docker_repo' | tee /etc/apt/sources.list.d/docker.list > /dev/null");
- run_command('apt update');
- run_command('apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin');
- run_command("usermod -aG docker $usuario");
- # Instalar Kubernetes (kubectl y Minikube)
- run_command('curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg');
- run_command('echo \'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /\' | tee /etc/apt/sources.list.d/kubernetes.list');
- run_command('apt-get update');
- run_command('apt-get install -y kubectl');
- run_command('curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb');
- run_command('dpkg -i minikube_latest_amd64.deb');
- run_command('curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64');
- run_command('install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64');
- print "Minikube instalado correctamente.\n";
- # Instalar Visual Studio Code
- run_command('wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o packages.microsoft.gpg');
- run_command('install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg');
- my $vscode_repo = 'deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main';
- run_command("echo '$vscode_repo' | tee /etc/apt/sources.list.d/vscode.list > /dev/null");
- run_command('rm -f packages.microsoft.gpg');
- run_command('apt update');
- run_command('apt install -y code');
- # Instalar Azure CLI
- run_command('curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft.gpg');
- run_command('chmod go+r /etc/apt/keyrings/microsoft.gpg');
- my $az_dist = qx(lsb_release -cs);
- chomp($az_dist);
- my $azure_cli_repo = "Types: deb\nURIs: https://packages.microsoft.com/repos/azure-cli/\nSuites: $az_dist\nComponents: main\nArchitectures: $arch\nSigned-by: /etc/apt/keyrings/microsoft.gpg";
- run_command("echo '$azure_cli_repo' | tee /etc/apt/sources.list.d/azure-cli.sources");
- run_command('apt update');
- run_command('apt install -y azure-cli');
- # Instalar AWS CLI
- run_command('apt install -y awscli');
- # Instalar Google Cloud CLI
- run_command('curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg');
- run_command('echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list');
- run_command('apt update');
- run_command('apt install -y google-cloud-cli');
- # Instalar Terraform
- run_command('curl -fsSL https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg');
- run_command("echo \"deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com \$(lsb_release -cs) main\" | tee /etc/apt/sources.list.d/hashicorp.list");
- run_command('apt update');
- run_command('apt install -y terraform');
- # Instalar navegadores y utilidades
- run_command('apt update');
- run_command('apt install -y chromium chromium-l10n');
- # Configurar Docker y iptables
- run_command('echo "export PATH=\$PATH:/usr/sbin" >> /etc/profile');
- run_command('systemctl enable docker --now');
- run_command('iptables -I INPUT -j ACCEPT');
- # Añadir backports y fasttrack
- run_command('echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib" | tee /etc/apt/sources.list.d/backports.list');
- run_command('apt install -y fasttrack-archive-keyring');
- run_command('echo "deb http://fasttrack.debian.net/debian-fasttrack/ $(lsb_release -cs)-fasttrack main contrib" | tee /etc/apt/sources.list.d/fasttrack.list');
- run_command('echo "deb http://fasttrack.debian.net/debian-fasttrack/ $(lsb_release -cs)-backports-staging main contrib" | tee -a /etc/apt/sources.list.d/fasttrack.list');
- run_command('apt update');
- # Instalar VirtualBox y minizinc
- run_command('apt install -y virtualbox virtualbox-guest-x11');
- run_command('apt install -y minizinc minizinc-ide');
- print "Instalación completada correctamente.\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement