Ejercicio 1 repositorio del ansible Salida de la ejecución del playbook. alejandrogv@AlejandroGV:~/vagrant/servicios/ejercicios_ansible/ejercicio1$ ansible-playbook site.yaml [WARNING]: Found both group and host with same name: ejercicio1 PLAY [ejercicio1] *************************************************************************************** TASK [Gathering Facts] ********************************************************************************** ok: [ejercicio1] TASK [Crear usuario alejandro] ************************************************************************** ok: [ejercicio1] TASK [Descarga latest.zip] ****************************************************************************** ok: [ejercicio1] TASK [Actualización] ************************************************************************************ ok: [ejercicio1] TASK [Instala los paquetes necesarios] ****************************************************************** ok: [ejercicio1] TASK [Descomprime latest.zip] *************************************************************************** ok: [ejercicio1] TASK [Crear una base de datos] ************************************************************************** ok: [ejercicio1] TASK [Crear usuario de la bd] *************************************************************************** changed: [ejercicio1] TASK [Clonar repositorio github] ************************************************************************ changed: [ejercicio1] PLAY RECAP ********************************************************************************************** ejercicio1 : ok=9 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 Ejercicio 2 Vagrantfile del escenario Vagrant.
Crea un nuevo pool de almacenamiento de tipo lvm, y crea un volumen de 3Gi dentro que sea una volumen lógico. Con virt-install instala una máquina que se llame original_tunombre cuyo disco sea el volumen creado. <pool type='logical'> <name>pool_lvm</name> <capacity unit='bytes'>5368709120</capacity> <source> <name>debian</name> </source> <target> <path>/home/alejandrogv/libvirt/pool</path> <permissions> <mode>0711</mode> <owner>0</owner> <group>0</group> </permissions> </target> </pool> virsh -c qemu:///system pool-define --file pool.xml virsh -c qemu:///system pool-start pool_lvm sudo lvcreate -L 3G -n pool1 debian virt-install --connect qemu:///system --network network=default --name=original_alegv --memory 1024 --vcpus 1 --disk /dev/debian/pool1 --cdrom /home/alejandrogv/Escritorio/ISOS/debian-11.
Crea una máquina virtual conectada a la red_interna del ejercicio anterior, utilizando virt-install. Está máquina se debe llamar nodo1_tunombre. virt-install --connect qemu:///system --cdrom ../Escritorio/ISOS/debian-11.1.0-amd64-netinst.iso --disk size=10 --network network=red_interna --name nodo1_ale --memory 512 --vcpus 1 Crea un clon de la máquina anterior con virt-clone, esta máquina se debe llamar nodo2_tunombre. virt-clone --original=nodo1_ale --name=nodo2_ale --auto-clone Crea una red aislada (very isolated) que nos permita unir el nodo1 y el nodo2, pero que no esté conectada al host.
Tendremos nuestro entorno virtual donde debemos instalar los siguientes paquetes. (ejercicio3) alejandrogv@AlejandroGV:~$ pip install flask uwsgi Clonamos la aplicación que instalaremos. alejandrogv@AlejandroGV:~/Escritorio/ASIR/IWEB$ git clone https://github.com/josedom24/guestbook.git En este repositorio encontraremos una carpeta llamada app donde se alojará un fichero llamado app.py ahí debemos crear un fichero llamado wsgi.py con el siguiente contenido. from app import prog as application Instalamos los paquetes del requirementes.txt que se aloja también la carpeta app.
creamos una máquina que actuara de DNS secundario, el primer paso será cambiar el hostname de está maquina. vagrant@gutierrezvalencia:~$ hostname -f gutierrezvalencia.iesgn.org Nos dirigimos al DNS primario y configuramos el fichero /etc/bind/named.conf.options options { directory "/var/cache/bind"; allow-query { 10.0.0.0/24; }; allow-transfer { none; }; auth-nxdomain no; # conform to RFC1035 recursion no; dnssec-validation auto; listen-on-v6 { any; }; }; Y también debemos cambiar el /etc/bind/named.conf.local para añadir el rol de maestro.
Realizaremos las mismas reglas que en el ejercicio 3, ahora en nftables, para ello usaremos como hicimos el ejercicio 2 la familia inet sobre las tablas de nftables para que valgan tanto para ipv4 como para ipv6. Hagamos las tabalas y cadenas necesarias para empezar. Añadimos una regla para tener conexión ssh con la máquina. nft add rule inet filter input ip saddr 192.168.1.0/24 tcp dport 22 ct state new,established counter accept nft add rule inet filter output ip daddr 192.
Tendremos una máquina conectado a dos interfaces red, una que da al exterior y otra interna. Lo una vez preparada debemos hacer una regla snat para que la red interna pueda salir al exterior. iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o ens3 -j MASQUERADE Como hemos estado haciendo vamos a añadir la regla de ssh para poder poner la politica DROP sin problema. iptables -A INPUT -s 192.
En este ejercicio realizaremos todos los que hicimos en iptables en el primero ahora con nftables. Lo primero que haremos será añadir una tabla donde filtraremos los paquetes, ponemos la familia inet ya que estas reglas deben funcionar tanto en ipv4 como ipv6. root@servidor:~# nft add table inet filter Debemos crear una cadena que acepte los paquete para poder seguir con nuestra conexión ssh.
Añadiremos las siguientes reglas. # Limpiamos las tablas iptables -F iptables -t nat -F iptables -Z iptables -t nat -Z # Establecemos la política iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -A INPUT -i lo -p icmp -j ACCEPT iptables -A OUTPUT -o lo -p icmp -j ACCEPT iptables -A INPUT -s 192.168.121.0/24 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -d 192.
Ejercicio 1 Pantallazo con la salida de minikube status y pantallazo con la salida de kubectl get nodes -o wide. alejandrogv@AlejandroGV:~$ minikube status minikube type: Control Plane host: Running kubelet: Running apiserver: Running kubeconfig: Configured alejandrogv@AlejandroGV:~$ kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME minikube Ready control-plane,master 6d23h v1.23.1 192.168.39.156 <none> Buildroot 2021.02.4 4.19.202 docker://20.10.12 Ejercicio 2 Fichero yaml que has creado con la definición del Pod.