Player FM 앱으로 오프라인으로 전환하세요!
Pssh con LinuxDoesMatter
Manage episode 285462057 series 1898587
Hoy nos visita LinuxDoesMatter para hablarnos de pssh y de cómo utilizarlo en producción, en la vida real, para migrar un NAS.
pssh y el set completo de herramientas que viene con el paquete:
- pssh command – Parallel ssh — comando ssh a muchas maquinas a la vez.
- pscp command – Parallel scp — copiar fichero a conjunto de máquinas.
- prsync command – Parallel rsync — sincronizar dir local con muchos remotos
- pnuke command – Parallel nuke — matar en proceso por nombre en muchas máquinas a la vez.
- pslurp command – Parallel slurp — traer fichero/s de máquinas remotas a la nuestra local.
Usando comandos ssh tradicionales podríamos realizar una tarea en 350 servidores simplemente dedicando una línea a cada uno, pero como se puede ver no es la forma más óptima.
ssh root@host01 ‘mkdir /ora_backup;chmod 0755 /ora_backup;chown -R group:oinstall /ora_backup’
ssh root@host02 ‘mkdir /ora_backup;chmod 0755 /ora_backup;chown -R group:oinstall /ora_backup’
….
ssh root@host350 ‘mkdir /ora_backup;chmod 0755 /ora_backup;chown -R group:oinstall /ora_backup’
Solución:
Antes de nada explicamos qué es el usuario para accionas masivas, útil tb para ansible/pssh/otros:
1.- Lo vamos a llamar por ejemplo linuxadm.
2.- Todas las máquinas tienen desplegado este usuario linuxadm y la máquina de salto desde donde voy a hacer la accion masiva accede con este usuario sin contraseña a todas las maquinas impactadas. La clave pública de linuxadm esta trasmitida en todas las maquinas a las que se da soporte.
Las máquinas se despliegan así, con la clave pública de linuxadm en
/home/linuxadm/.ssh/authorized_keys.
3.- En todas las máquinas de destino linuxadm es usuario sudoer y puede escalar sin contraseña
#cat /etc/sudoers.d/linuxadm o la lines de abajo tb en /etc/sudoers (visudo)
linuxadm ALL=(ALL) NOPASSWD: ALL en las máquinas de destino
Una vez hechos estos tres primeros pasos vamos a la máquina de salto:
Estamos en la máquina de salto…
me convierto en linuxadm $ sudo su – linuxadm (intro)
$whoami
linuxadm
$ cat hosts.txt
host01
host02
…
host350
$cat hosts.txt | wc -l
350
$
llegó el momento:
$ pssh -h hosts.txt -o out_mkdir -e error_mkdir -i “sudo mkdir /ora_backup”
$ pssh -h hosts.txt -o out_chmod -e error_chmod -i “sudo chmod 0755 /ora_backup”
$ pssh -h hosts.txt -o out_tchown -e error_chown -i “sudo chown oracle:oinstall /ora_backup”
Comprobar
$ pssh -X -q -h hosts.txt -i “sudo ls -l /ora_backup”
Recordatorio. Linea en /etc/fstab capturando un share NFS
server01:/usr/local/pub /pub nfs nfs auto,noatime,nolock,bg,intr,tcp,actimeo=1800 0 0
para desmontar a mano:
umount /pub o bien umount -l /pub (fozarlo) >>> comentar lsof o fuser
Tarea “migracion de nas”
La cabina (o el servidor NFS) server01 va a ser migrada a srvnew05
En esos 350 servidores toda linea como esta:
server01:/usr/local/pub /pub nfs nfs auto,noatime,nolock,bg,intr,tcp,actimeo=1800 0 0
tiene que acabar como esta:
srvnew05:/usr/local/pub /pub nfs nfs auto,noatime,nolock,bg,intr,tcp,actimeo=1800 0 0
Acciones a emprender…
1.- Crear una ventana de downtime para el cambio. Tal día a tal hora los aplicativos que usan esos shares NFS deben estar parados. El downtime o ventana de tiempo hay que a ser posible respetarlo. Puede prolongarse si fuerza mayor
2.- Copiamos un script para desmontar los shares en las 350 máquinas. pscp
$ pscp -h hosts.txt -o out_copy -e err_copy umount.sh /tmp
3.- Desmontamos todas la entradas implicadas. pssh
$ pssh -X -q -h hosts.txt -o out_umount -e error_umount -i sudo /tmp/umount.sh
Copiamos o copiarán los contenidos de la cabina server01 a la cabina srvnew05
Se respetan el nombre de los shares nfs.
Esto tomará su tiempo pueden ser horas… dentro del periodo de downtime o ventana de mantenimiento.
Recordad que sed -i cambiaría cada ocurrencia de server01 por srvnew05. En todfos los /etc/fstab impactados. El script a tal efecto hará esto cuando toque.
4.- Subimos el script que cambia server01 por srvnew05 en los /etc/fstab y vuelve a montar
$ pscp -h hosts.txt -o out_copy2 -e err_copy2 newname_remount.sh /tmp
Ejecutamos que acabamos de subir a todas las máquinas el script que cambia cada ocurrencia de server01 en cada /etc/fstab por srvnew05 y volverá a montar los filesystems
$ pssh -X -q -h hosts.txt -o out_newremo -e error_newremo -i sudo /tmp/newname_remount.sh
Y eso es todo… puedo comentar lo de la herramienta de tiquets las subtareas y dptos implicados
Comunicar el fin de la tarea a todos los “stakeholders”.
Los reponsables de los aplicativos impactados por el cambio arrancarán sus programas/aplicaciones para ver si todo funciona correctamente.
129 에피소드
Manage episode 285462057 series 1898587
Hoy nos visita LinuxDoesMatter para hablarnos de pssh y de cómo utilizarlo en producción, en la vida real, para migrar un NAS.
pssh y el set completo de herramientas que viene con el paquete:
- pssh command – Parallel ssh — comando ssh a muchas maquinas a la vez.
- pscp command – Parallel scp — copiar fichero a conjunto de máquinas.
- prsync command – Parallel rsync — sincronizar dir local con muchos remotos
- pnuke command – Parallel nuke — matar en proceso por nombre en muchas máquinas a la vez.
- pslurp command – Parallel slurp — traer fichero/s de máquinas remotas a la nuestra local.
Usando comandos ssh tradicionales podríamos realizar una tarea en 350 servidores simplemente dedicando una línea a cada uno, pero como se puede ver no es la forma más óptima.
ssh root@host01 ‘mkdir /ora_backup;chmod 0755 /ora_backup;chown -R group:oinstall /ora_backup’
ssh root@host02 ‘mkdir /ora_backup;chmod 0755 /ora_backup;chown -R group:oinstall /ora_backup’
….
ssh root@host350 ‘mkdir /ora_backup;chmod 0755 /ora_backup;chown -R group:oinstall /ora_backup’
Solución:
Antes de nada explicamos qué es el usuario para accionas masivas, útil tb para ansible/pssh/otros:
1.- Lo vamos a llamar por ejemplo linuxadm.
2.- Todas las máquinas tienen desplegado este usuario linuxadm y la máquina de salto desde donde voy a hacer la accion masiva accede con este usuario sin contraseña a todas las maquinas impactadas. La clave pública de linuxadm esta trasmitida en todas las maquinas a las que se da soporte.
Las máquinas se despliegan así, con la clave pública de linuxadm en
/home/linuxadm/.ssh/authorized_keys.
3.- En todas las máquinas de destino linuxadm es usuario sudoer y puede escalar sin contraseña
#cat /etc/sudoers.d/linuxadm o la lines de abajo tb en /etc/sudoers (visudo)
linuxadm ALL=(ALL) NOPASSWD: ALL en las máquinas de destino
Una vez hechos estos tres primeros pasos vamos a la máquina de salto:
Estamos en la máquina de salto…
me convierto en linuxadm $ sudo su – linuxadm (intro)
$whoami
linuxadm
$ cat hosts.txt
host01
host02
…
host350
$cat hosts.txt | wc -l
350
$
llegó el momento:
$ pssh -h hosts.txt -o out_mkdir -e error_mkdir -i “sudo mkdir /ora_backup”
$ pssh -h hosts.txt -o out_chmod -e error_chmod -i “sudo chmod 0755 /ora_backup”
$ pssh -h hosts.txt -o out_tchown -e error_chown -i “sudo chown oracle:oinstall /ora_backup”
Comprobar
$ pssh -X -q -h hosts.txt -i “sudo ls -l /ora_backup”
Recordatorio. Linea en /etc/fstab capturando un share NFS
server01:/usr/local/pub /pub nfs nfs auto,noatime,nolock,bg,intr,tcp,actimeo=1800 0 0
para desmontar a mano:
umount /pub o bien umount -l /pub (fozarlo) >>> comentar lsof o fuser
Tarea “migracion de nas”
La cabina (o el servidor NFS) server01 va a ser migrada a srvnew05
En esos 350 servidores toda linea como esta:
server01:/usr/local/pub /pub nfs nfs auto,noatime,nolock,bg,intr,tcp,actimeo=1800 0 0
tiene que acabar como esta:
srvnew05:/usr/local/pub /pub nfs nfs auto,noatime,nolock,bg,intr,tcp,actimeo=1800 0 0
Acciones a emprender…
1.- Crear una ventana de downtime para el cambio. Tal día a tal hora los aplicativos que usan esos shares NFS deben estar parados. El downtime o ventana de tiempo hay que a ser posible respetarlo. Puede prolongarse si fuerza mayor
2.- Copiamos un script para desmontar los shares en las 350 máquinas. pscp
$ pscp -h hosts.txt -o out_copy -e err_copy umount.sh /tmp
3.- Desmontamos todas la entradas implicadas. pssh
$ pssh -X -q -h hosts.txt -o out_umount -e error_umount -i sudo /tmp/umount.sh
Copiamos o copiarán los contenidos de la cabina server01 a la cabina srvnew05
Se respetan el nombre de los shares nfs.
Esto tomará su tiempo pueden ser horas… dentro del periodo de downtime o ventana de mantenimiento.
Recordad que sed -i cambiaría cada ocurrencia de server01 por srvnew05. En todfos los /etc/fstab impactados. El script a tal efecto hará esto cuando toque.
4.- Subimos el script que cambia server01 por srvnew05 en los /etc/fstab y vuelve a montar
$ pscp -h hosts.txt -o out_copy2 -e err_copy2 newname_remount.sh /tmp
Ejecutamos que acabamos de subir a todas las máquinas el script que cambia cada ocurrencia de server01 en cada /etc/fstab por srvnew05 y volverá a montar los filesystems
$ pssh -X -q -h hosts.txt -o out_newremo -e error_newremo -i sudo /tmp/newname_remount.sh
Y eso es todo… puedo comentar lo de la herramienta de tiquets las subtareas y dptos implicados
Comunicar el fin de la tarea a todos los “stakeholders”.
Los reponsables de los aplicativos impactados por el cambio arrancarán sus programas/aplicaciones para ver si todo funciona correctamente.
129 에피소드
모든 에피소드
×플레이어 FM에 오신것을 환영합니다!
플레이어 FM은 웹에서 고품질 팟캐스트를 검색하여 지금 바로 즐길 수 있도록 합니다. 최고의 팟캐스트 앱이며 Android, iPhone 및 웹에서도 작동합니다. 장치 간 구독 동기화를 위해 가입하세요.