1
+ # -*- mode: ruby -*-
2
+ # vi: set ft=ruby :
3
+
4
+ # Ejecute `vagrant up` para iniciar el proyecto actual
5
+ # con Docker y docker-compose
6
+
7
+ Vagrant . configure ( "2" ) do |config |
8
+ # Establecer el nombre de la caja
9
+ config . vm . define "box-libhubtec"
10
+ #config.vm.hostname = "abc"
11
+
12
+ # Usar la caja de Ubuntu 20.04 LTS 64-bit
13
+ # ver más box https://app.vagrantup.com/boxes/search
14
+ config . vm . box = "ubuntu/focal64"
15
+ config . vm . box_check_update = false
16
+
17
+ # Montar el dicrectorio actual a la ruta absoluta
18
+ config . vm . synced_folder "./" , "/home/vagrant/workspace"
19
+
20
+ # La persistencia de datos no funciona si está sincronizado
21
+ # use disabled: true
22
+ config . vm . synced_folder "./data" , "/home/vagrant/data" ,
23
+ owner : "root" , group : "root" , create : true , disabled : true
24
+
25
+ # Configurar clave de acceso pública con ssh
26
+ #config.ssh.insert_key = false
27
+
28
+ # Configurar sistema de virtualbox
29
+ config . vm . provider "virtualbox" do |vb |
30
+ # Mostrar la vetana de logs
31
+ vb . gui = true
32
+
33
+ # Personaliza la cantidad de memoria y cpus
34
+ vb . memory = "2080"
35
+ vb . cpus = "4"
36
+ end
37
+
38
+ # Crear una red privada estática, para acceder usando una dirección IP especifica
39
+ config . vm . network "private_network" , ip : "192.168.93.88"
40
+
41
+ # Actualizar repositorio la caja de Ubuntu 20.04LTS
42
+ config . vm . provision "shell" , inline : "sudo apt-get update -qq -y"
43
+
44
+ # Instalar docker y descagar imagen de docker (node:16.20-slim)
45
+ # *OJO* : Corre solo una vez usando `vagrant up`
46
+ config . vm . provision "install-docker" ,
47
+ type : "docker" ,
48
+ images : [ "mysql:5.7" , "openjdk:17.0.2-jdk" , "shinsenter/laravel:php8.2-alpine" , "node:20.11.1-alpine" ]
49
+
50
+ #config.vm.provider "vmware_fusion" do |v|
51
+ # v.vmx["vhv.enable"] = "TRUE"
52
+ #end
53
+
54
+ # Instalar docker-compose
55
+ # ver: https://github.com/docker/compose/releases
56
+ # *OJO* : Corre solo una vez usando `vagrant up`
57
+ config . vm . provision "install-docker-compose" ,
58
+ type : "shell" ,
59
+ inline : <<-SCRIPT
60
+ sudo rm -rf /usr/local/bin/docker-compose
61
+ sudo rm -rf /usr/bin/docker-compose
62
+ sudo curl -SL https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
63
+ sudo chmod +x /usr/local/bin/docker-compose
64
+ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
65
+ docker-compose --version
66
+ echo 'alias doc=docker-compose' >> ~/.bashrc
67
+ echo 'alias doc-again="docker-compose stop && docker-compose rm --force && docker-compose build --no-cache && docker-compose up"' >> ~/.bashrc
68
+ source ~/.bashrc
69
+ SCRIPT
70
+
71
+ # Instalar herramientas de desarrollo
72
+ # *OJO* : Corre solo una vez usando `vagrant up`
73
+ config . vm . provision "install-tools" ,
74
+ type : "shell" ,
75
+ inline : <<-SHELL
76
+ apt-get update
77
+ apt-get install -y vim nano curl wget tmux net-tools screenfetch zip unzip htop aptitude
78
+ apt-get install -y dos2unix tar build-essential software-properties-common ufw fail2ban
79
+ apt-get install -y gdb httpie jq netcat nmap tree openssh-client software-properties-common gnupg2
80
+ SHELL
81
+
82
+ # Ejecutar el proyecto actual con Docker y docker-compose
83
+ # *OJO* : Siempre corre usando `vagrant up`
84
+ config . vm . provision "run-workspace" ,
85
+ type : "shell" ,
86
+ path : "./vagrant.sh" ,
87
+ run : "always"
88
+
89
+ # Mostrar información de la caja
90
+ # *OJO* : Corre solo una vez usando `vagrant up`
91
+ config . vm . provision "show-information" ,
92
+ type : "shell" ,
93
+ inline : <<-SHELL
94
+ screenfetch
95
+ netstat -rn
96
+ ss -tuln
97
+ lsblk
98
+ ip route
99
+ ipconfig
100
+ echo "==================================="
101
+ echo "==================================="
102
+ echo "Nombre de usuario:"
103
+ whoami
104
+ echo "Distribución de Linux y versión:"
105
+ lsb_release -a
106
+ echo "Versión del kernel:"
107
+ uname -r
108
+ echo "Memoria RAM:"
109
+ free -h
110
+ echo "Número de CPUs y detalles del procesador:"
111
+ lscpu
112
+ echo "Información de almacenamiento:"
113
+ df -h
114
+ echo "Puertos habilitados y servicios en escucha:"
115
+ netstat -tuln
116
+ echo "Interfaces de red y configuración:"
117
+ ip a
118
+ echo "Servicios habilitados y en ejecución:"
119
+ systemctl list-units --type=service --state=running
120
+ SHELL
121
+ end
0 commit comments