sábado, 25 de mayo de 2024

crear llaves SSH sin prompt y en un path personalizado

Cuando hablamos de automatizar, a menudo podemos necesitar la creacion de llaves ssh para la autenticacion en nuestros servidores Linux, el comando ssh-key pide varios durante el proceso de la creacion de las llaves, para hacer que este proceso vaya sin interaccion del usuario, podemos hacerlo de la siguiente manera

$ ssh-keygen -m PEM -t rsa -b 4096 -N '' -f ./id_rsa

el argumento -N '' evita que nos pregunte por las passphrase

el argumento -f recibe como valor el path donde queremos almacenar las llave publicas y privadas, asi como el nombre que recibiran


martes, 21 de mayo de 2024

Eliminar una regla de reenvio de puertos para nuestra Vagrant VM

Se puede eliminar/deshabilitar una regla de port forwarding en caso de que no queramos que esto funciona, si nuestro escenario usa bridged netowork, por ejemplo, no es tan necesario esto, para hacer esto, solo debemos agregar al final de la regla, el argumento disabled: true

config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1", disabled: true
 

Modificar reenvio de puertos predeterminados en Vagrant

 Normalmente iriamos al Vagranfile y modificaramos las reglas forward

config.vm.network "forwarded_port", guest: 22, host: 2232

pero esto no funciona, solo nos va a agregar una nueva regla de port_forwarding usando el puerto 2232, el detalle esta en que hay que definir, el id de la regla para que la sobreescriba! en este caso, el id de la regla es bien simple, "ssh", entonces para sobreescribir la regla, definiriamos de la siguiente manera

config.vm.network "forwarded_port", guest: 22, host: 2232, id: "ssh"

pero si usamos boxes predefinidas y queremos sobreescribir sus reglas de forwarding, tendriamos que conocer sus ids, esto lo podemos obtener con el siguiente comando, despues de una primera ejecucion de la VM para que genere toda la configuracion, desde el directorio donde esta el Vagranfile.

VBoxManage showvminfo $(cat .vagrant/machines/_VMNAME_/virtualbox/id) | grep Rule

NIC 1 Rule(0):   name = ssh, protocol = tcp, host ip = 127.0.0.1, host port = 2222, guest ip = , guest port = 22

y con eso, podemos evitar conflictos de puertos para poder desplegar varias VMs

lunes, 20 de mayo de 2024

Usando sed para comentar/descomentar una linea

 a menudo queremos comentar/descomentar una linea en un archivo, esto se puede realizar de una forma rapida, si sabemos la cadena que va a contener la linea, sed es una herramienta bien potente que nos puede ayudar con esta tarea.

si queremos comentar una que inicie con la cadena HOST, podemos ejecutar el siguiente comando:

$ sed 's/^HOST/#&/g' input 
para volver a eliminar el comentario, entonces podemos usar este comando
$ sed 's/^#HOST/HOST/g' input
tambien si queremos aplicar el comentario a mas de una linea mismo tiempo, podemos buscar por mas de un patron!
sed -e 's/^\(HOST\|IP\)/#&/g' input
de forma predeterminada, sed no mmodifica los archivos, para hacer esto, lo recomendable es usar el argumento -i, pero siempre asegurandonos de que se cree un respaldo del archivo original!
sed -i.bak -e 's/^\(HOST\|IP\)/#&/g' input