Skip to content

Commit a62ff08

Browse files
committed
* Se agrega Vagrantización
1 parent 8068f3a commit a62ff08

File tree

3 files changed

+150
-0
lines changed

3 files changed

+150
-0
lines changed

Vagrantfile

+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
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

setup.sh

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash
2+
echo "[setup.sh] Provision iniciando [...]"
3+
# Instalar Node Manager Version
4+
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
5+
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
6+
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
7+
source /home/vagrant/.bashrc
8+
nvm install node
9+
10+
# Crear alias para usarlo dentro vagrant
11+
echo " "
12+
echo ">>>>>>>>>>> [ Creando Alias ] >>>>"
13+
echo ' ' >> /home/vagrant/.bashrc
14+
echo '# Creando alias para docker-compose y docker' >> /home/vagrant/.bashrc
15+
echo 'alias doc=docker-compose' >> /home/vagrant/.bashrc
16+
echo 'alias doc-rm="docker-compose stop && docker-compose rm --force"' >> /home/vagrant/.bashrc
17+
echo 'alias doc-again="docker-compose stop && docker-compose rm --force && docker-compose build && docker-compose up"' >> /home/vagrant/.bashrc
18+
echo 'alias docker-ps-clean="docker container prune -f"' >> /home/vagrant/.bashrc
19+
echo 'alias docker-images-clean="docker rmi $(docker images -f "dangling=true" -q)"' >> /home/vagrant/.bashrc
20+
echo ' ' >> /home/vagrant/.bashrc
21+
source /home/vagrant/.bashrc
22+
echo " "
23+
echo ">>>>>>>>>>> [ Finalizado ] >>>>"
24+
echo "[setup.sh] Provision finalizado exitosamente ! [...]"

vagrant.sh

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Este es un script para Vagranfile
2+
# vagrant provision
3+
echo "[vagrant.sh] Provision iniciando [...]"
4+
echo "[vagrant.sh] Ejecutar comando de linux aquí"
5+
echo "[vagrant.sh] Provision finalizado exitosamente ! [...]"

0 commit comments

Comments
 (0)