diff --git a/Ansible.pdf b/Ansible.pdf new file mode 100644 index 0000000..1898b74 Binary files /dev/null and b/Ansible.pdf differ diff --git a/UbuntuAnsible.sh b/UbuntuAnsible.sh new file mode 100644 index 0000000..12dd5e5 --- /dev/null +++ b/UbuntuAnsible.sh @@ -0,0 +1,9 @@ +# Script to install Ansible on a Ubuntu system +apt-get update +# Install required packages +apt install software-properties-common -y +# Add Ansible PPA and install Ansible +apt-add-repository ppa:ansible/ansible +apt-get install ansible net-tools -y +# Add vagrant user to sudoers +echo "vagrant ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/vagrant \ No newline at end of file diff --git a/UbuntuVagrantfile b/UbuntuVagrantfile new file mode 100644 index 0000000..1a22686 --- /dev/null +++ b/UbuntuVagrantfile @@ -0,0 +1,56 @@ +Vagrant.configure(2) do |config| + # Máquina de control para el agente Ansible + config.vm.define "ansible" do |ansible| + ansible.vm.box = "bento/ubuntu-24.04" # Imagen base Ubuntu 24.04 + ansible.vm.network "private_network", ip: "192.168.11.10" # IP privada + ansible.vm.hostname = "ansible" # Nombre de host + ansible.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" # Carpeta sincronizada + ansible.vm.provider "virtualbox" do |vb| + vb.memory = 512 # Memoria RAM asignada + vb.cpus = 1 # Número de CPUs asignadas + end + ansible.vm.provision :shell, :path => "ansible.sh" # Script de aprovisionamiento + end + + # Máquina para la base de datos + config.vm.define "database" do |database| + database.vm.box = "bento/ubuntu-24.04" + database.vm.network "private_network", ip: "192.168.11.20" + database.vm.hostname = "database" + database.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" + database.vm.network "forwarded_port", guest: 80, host: 8081 # Redirección del puerto 80 + database.vm.network "forwarded_port", guest: 3306, host: 3306 # Redirección del puerto MySQL + database.vm.provider "virtualbox" do |vb| + vb.memory = 512 + vb.cpus = 1 + end + end + + # Máquina para el balanceador de carga + config.vm.define "loadbalancer" do |loadbalancer| + loadbalancer.vm.box = "bento/ubuntu-24.04" + loadbalancer.vm.network "private_network", ip: "192.168.11.30" + loadbalancer.vm.hostname = "loadbalancer" + loadbalancer.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" + loadbalancer.vm.network "forwarded_port", guest: 80, host: 8080 # Redirección del puerto 80 + loadbalancer.vm.network "forwarded_port", guest: 3306, host: 33061 # Redirección del puerto MySQL alternativo + loadbalancer.vm.provider "virtualbox" do |vb| + vb.memory = 512 + vb.cpus = 1 + end + end + + # Máquina para el servidor web + config.vm.define "webserver" do |webserver| + webserver.vm.box = "bento/ubuntu-24.04" + webserver.vm.network "private_network", ip: "192.168.11.40" + webserver.vm.hostname = "webserver" + webserver.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" + webserver.vm.network "forwarded_port", guest: 80, host: 80 # Redirección del puerto 80 + webserver.vm.network "forwarded_port", guest: 3306, host: 33062 # Redirección del puerto MySQL alternativo + webserver.vm.provider "virtualbox" do |vb| + vb.memory = 512 + vb.cpus = 1 + end + end + end \ No newline at end of file diff --git a/Vagrantfile b/Vagrantfile index 1a22686..899e469 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -1,7 +1,7 @@ Vagrant.configure(2) do |config| # Máquina de control para el agente Ansible config.vm.define "ansible" do |ansible| - ansible.vm.box = "bento/ubuntu-24.04" # Imagen base Ubuntu 24.04 + ansible.vm.box = "bento/debian-13.1" # Imagen base Ubuntu 24.04 ansible.vm.network "private_network", ip: "192.168.11.10" # IP privada ansible.vm.hostname = "ansible" # Nombre de host ansible.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" # Carpeta sincronizada @@ -14,7 +14,7 @@ Vagrant.configure(2) do |config| # Máquina para la base de datos config.vm.define "database" do |database| - database.vm.box = "bento/ubuntu-24.04" + database.vm.box = "bento/debian-13.1" database.vm.network "private_network", ip: "192.168.11.20" database.vm.hostname = "database" database.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" @@ -28,7 +28,7 @@ Vagrant.configure(2) do |config| # Máquina para el balanceador de carga config.vm.define "loadbalancer" do |loadbalancer| - loadbalancer.vm.box = "bento/ubuntu-24.04" + loadbalancer.vm.box = "bento/debian-13.1" loadbalancer.vm.network "private_network", ip: "192.168.11.30" loadbalancer.vm.hostname = "loadbalancer" loadbalancer.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" @@ -42,7 +42,7 @@ Vagrant.configure(2) do |config| # Máquina para el servidor web config.vm.define "webserver" do |webserver| - webserver.vm.box = "bento/ubuntu-24.04" + webserver.vm.box = "bento/debian-13.1" webserver.vm.network "private_network", ip: "192.168.11.40" webserver.vm.hostname = "webserver" webserver.vm.synced_folder ".", "/home/vagrant/sync", type: "rsync" diff --git a/ansible.sh b/ansible.sh index 12dd5e5..118e1a9 100644 --- a/ansible.sh +++ b/ansible.sh @@ -1,9 +1,6 @@ # Script to install Ansible on a Ubuntu system apt-get update -# Install required packages -apt install software-properties-common -y -# Add Ansible PPA and install Ansible -apt-add-repository ppa:ansible/ansible +# Add Ansible repository and install Ansible apt-get install ansible net-tools -y # Add vagrant user to sudoers echo "vagrant ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/vagrant \ No newline at end of file