Advertisement
cardel

script

Aug 9th, 2024 (edited)
730
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 5.85 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4.  
  5. my $usuario = 'univalle';
  6.  
  7. # Función para ejecutar comandos del sistema
  8. sub run_command {
  9.     my ($cmd) = @_;
  10.     print "Ejecutando: $cmd\n";
  11.     system($cmd) == 0 or die "Error al ejecutar el comando: $cmd\n";
  12. }
  13.  
  14. # Actualizar e instalar paquetes básicos
  15. run_command('apt update && apt upgrade -y');
  16. run_command('apt install -y net-tools wget gpg git openssh-server curl software-properties-common apt-transport-https ca-certificates gnupg lsb-release');
  17. run_command('apt install -y build-essential libncursesw5-dev libreadline-dev libssl-dev libsqlite3-dev tk-dev libc6-dev libbz2-dev libffi-dev');
  18. run_command('apt install -y python3 python3-pip python3-virtualenv libgl1-mesa-glx libegl1-mesa libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6');
  19. run_command('apt install -y libtbb-dev libboost-thread-dev');
  20.  
  21. # Instalar Docker
  22. run_command('for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do apt-get remove $pkg; done');
  23. run_command('install -m 0755 -d /etc/apt/keyrings');
  24. run_command('curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc');
  25. run_command('chmod a+r /etc/apt/keyrings/docker.asc');
  26.  
  27. my $arch = qx(dpkg --print-architecture);
  28. chomp($arch);
  29. my $version_codename = qx(. /etc/os-release && echo \$VERSION_CODENAME);
  30. chomp($version_codename);
  31.  
  32. my $docker_repo = "deb [arch=$arch signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $version_codename stable";
  33. run_command("echo '$docker_repo' | tee /etc/apt/sources.list.d/docker.list > /dev/null");
  34. run_command('apt update');
  35. run_command('apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin');
  36. run_command("usermod -aG docker $usuario");
  37.  
  38. # Instalar Kubernetes (kubectl y Minikube)
  39. 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');
  40. 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');
  41. run_command('apt-get update');
  42. run_command('apt-get install -y kubectl');
  43.  
  44. run_command('curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb');
  45. run_command('dpkg -i minikube_latest_amd64.deb');
  46.  
  47. run_command('curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64');
  48. run_command('install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64');
  49. print "Minikube instalado correctamente.\n";
  50.  
  51. # Instalar Visual Studio Code
  52. run_command('wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o packages.microsoft.gpg');
  53. run_command('install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg');
  54. my $vscode_repo = 'deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main';
  55. run_command("echo '$vscode_repo' | tee /etc/apt/sources.list.d/vscode.list > /dev/null");
  56. run_command('rm -f packages.microsoft.gpg');
  57. run_command('apt update');
  58. run_command('apt install -y code');
  59.  
  60. # Instalar Azure CLI
  61. run_command('curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /etc/apt/keyrings/microsoft.gpg');
  62. run_command('chmod go+r /etc/apt/keyrings/microsoft.gpg');
  63.  
  64. my $az_dist = qx(lsb_release -cs);
  65. chomp($az_dist);
  66. 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";
  67. run_command("echo '$azure_cli_repo' | tee /etc/apt/sources.list.d/azure-cli.sources");
  68. run_command('apt update');
  69. run_command('apt install -y azure-cli');
  70.  
  71. # Instalar AWS CLI
  72. run_command('apt install -y awscli');
  73.  
  74. # Instalar Google Cloud CLI
  75. run_command('curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg');
  76. 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');
  77. run_command('apt update');
  78. run_command('apt install -y google-cloud-cli');
  79.  
  80. # Instalar Terraform
  81. run_command('curl -fsSL https://apt.releases.hashicorp.com/gpg | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg');
  82. 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");
  83. run_command('apt update');
  84. run_command('apt install -y terraform');
  85.  
  86. # Instalar navegadores y utilidades
  87. run_command('apt update');
  88. run_command('apt install -y chromium chromium-l10n');
  89.  
  90. # Configurar Docker y iptables
  91. run_command('echo "export PATH=\$PATH:/usr/sbin" >> /etc/profile');
  92. run_command('systemctl enable docker --now');
  93. run_command('iptables -I INPUT -j ACCEPT');
  94.  
  95. # Añadir backports y fasttrack
  96. run_command('echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib" | tee /etc/apt/sources.list.d/backports.list');
  97. run_command('apt install -y fasttrack-archive-keyring');
  98. run_command('echo "deb http://fasttrack.debian.net/debian-fasttrack/ $(lsb_release -cs)-fasttrack main contrib" | tee /etc/apt/sources.list.d/fasttrack.list');
  99. 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');
  100. run_command('apt update');
  101.  
  102. # Instalar VirtualBox y minizinc
  103. run_command('apt install -y virtualbox virtualbox-guest-x11');
  104. run_command('apt install -y minizinc minizinc-ide');
  105.  
  106. print "Instalación completada correctamente.\n";
  107.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement