13 votos

¿Cómo se puede administrar de forma remota las cajas de Linux?

NOTA: hice esta pregunta esta mañana con respecto a EC2 cajas, pero sólo consiguió de nuevo los enlaces a las herramientas para iniciar y detener instancias, por lo que voy a decir...

Tengo un par de cajas de Linux que hacer el procesamiento nocturno de puestos de trabajo para uno de mis proyectos. De vez en cuando, voy a tener que entrar, hacer algunos cambios en el código, configurar algunas cosas, mover archivos, etc.

Mi conjunto de herramientas para estas operaciones es muy escasa (SSH en el cuadro de edición de archivos en VIM, WGET remota de archivos que necesito), y sospecho que hay una forma mucho mejor para hacerlo. Tengo curiosidad por escuchar lo que la otra gente en mi posición está haciendo.

Estás usando algún tipo de sistema de Ventanas y remote-desktop equivalente para acceder a la caja, o es toda la línea de comandos? Administración remota de Windows cajas es trivial, ya que simplemente puede escritorio remoto y transferencia de archivos a través de la red. Hay un equivalente a la presente en el mundo de Linux?

Estás haciendo el archivo de configuración de cambios/ajustes de secuencia de comandos directamente en la máquina? O ¿tienes algo configurado en el cuadro local para editar estos archivos de forma remota? O simplemente están la edición de los mismos de forma remota, a continuación, la transferencia de los mismos en cada una de guardar?

Cómo se están moviendo los archivos de ida y vuelta entre el servidor y el medio ambiente local? FTP? Algún tipo de Unidad Asignada a través de la VPN?

Me gustaría realmente necesita para conseguir algunas de las mejores prácticas para la administración de estos cuadros. Cualquier sugerencia para quitar algo del dolor sería más que bienvenida!

19voto

Jeff Hillman Puntos 3333

Mi conjunto de herramientas para estas operaciones es dolorosamente dispersas (SSH en el cuadro, editar archivos en VIM, WGET archivos remotos que necesito), y sospecho que hay un mucho mejor manera de hacerlo. Tengo curiosidad para escuchar lo que otras personas en mi posición están haciendo.

Disperso? Lo que en la tierra a qué te refieres? Discúlpenme por despotricar, pero despedir a ssh, vim y wget como doloroso es casi insultante. Por tu pregunta deduzco que son principalmente un programador para su trabajo del día, así que tengo un poco entender la pregunta. Pero, sinceramente, yo no iba a contratar a un Linux admin que no está cómodo con ninguna de las tres herramientas que usted ha mencionado.

Estás usando algún tipo de Ventanas sistema y remote-desktop equivalente para acceder a la caja, o es todo línea de comando? Administración remota de Windows casillas es trivial, ya que simplemente puede escritorio remoto y transferencia de archivos a través de la red. Hay un equivalente a la presente en el mundo de Linux?

Para el administrador de tareas nunca, nunca utilice una X el medio ambiente. Usted no necesita uno, sólo voy a tomar los recursos del sistema y, para la mayoría de las veces, son un obstáculo en lugar de una ayuda. La mayoría de las herramientas gráficas de configuración (bueno, prácticamente todos, en realidad) que ofrecen sólo un subconjunto de la opción de configuración puede establecer en un archivo de configuración con vim.

La gestión de un cuadro de Linux no es menos trivial de la gestión de un cuadro de Windows. Sólo se necesita un poco de tiempo para obtener una decente conjunto de habilidades.

Y una transferencia de archivos de red equivalente? La abundancia. scp, sftp, ftp, nfs, cifs / smb (Windows protocolos de compartición de archivos) y, a continuación, algunos.

Estás haciendo tu archivo de configuración cambios/ajustes de secuencia de comandos directamente en el máquina? O ¿tiene algo preparado en su cuadro local para editar estos archivos de forma remota? O simplemente están la edición de los mismos de forma remota la transferencia de los mismos en cada una de guardar?

Depende de lo que estoy haciendo. La mayoría de las cosas que me hacen directamente en los archivos de configuración de la máquina (para pruebas y desarrollo de los cuadros) y, a continuación, empuje el archivo en un archivo de configuración de canal Satélite servidor, después de lo cual puedo desplegar el archivo a todos los servidores directamente (para la producción de cajas). Realmente, vim es un tesoro. Es decir, cuando se descubre cómo usarlo correctamente.

Cómo se están moviendo los archivos de nuevo y vuelta entre el servidor y su medio ambiente local? FTP? Algún tipo de La Unidad asignada a través de la VPN?

scp todo el camino y tal vez algunos sftp, y le sugiero que lo hagan también. Nunca utilice FTP para mover archivos confidenciales (por ejemplo, archivos de configuración) sobre una red pública. Yo no uso asignada de red porque, de nuevo, todo lo que necesitas está en el servidor. Si te refieres a c archivos y no los archivos de configuración de aquí, yo suelo usar algo como svn o git y, a continuación, empuje mis cambios a la caja.

Me gustaría realmente necesita para conseguir algunas de las mejores prácticas en el lugar de la administración estos cuadros. Cualquier sugerencia para quitar algunos de que el dolor sería más bienvenida!

Usted ya las están usando: ssh, scp, wget y vim. Los que no son de dolor. No podrían ser algunos de los dolores de la dentición, mientras que la figura fuera de lo poderosos que son. Pero, para poner el Windows analogía de la espalda, me siento seriamente obstaculizada cuando tengo que usar un cuadro de Windows. Para usted que es la otra manera alrededor. Es justo lo que están acostumbrados. Así, dale un poco de tiempo y que va a venir a usted.

12voto

mit Puntos 846

Usted ha mencionado ya ssh, vim y wget que es esencial y perfecto. Algunas herramientas adicionales que pueden hacer la vida más fácil:

1. GNU Screen / byobu

"GNU Screen es una conexión de terminal multiplexor que permite a un usuario acceder a múltiples sesiones de terminal dentro de una sola ventana de terminal o terminal remota de la sesión. Es útil para tratar con varios programas desde la línea de comandos, y para la separación de los programas de la shell que comenzó el programa." (A partir de la GNU_Screen página en la wikipedia)

Una ventaja principal es que usted puede tener uno o varios terminales virtuales que están exactamente en la misma situación que los dejó cuando venga de nuevo (es decir, entrar a través de ssh). Esto también es bueno cuando la conexión se rompe por alguna razón.

La pantalla funciona indepently desde el software que se usa para conectarse a la caja (la que vive en el servidor), por lo que combina bien con masilla o con la mayoría de los otros software de terminal.

Este artículo muestra algunas de las cosas buenas que usted puede hacer con él: http://www.pastacode.de/extending-gnu-screen-adding-a-taskbar/en/

Una buena alternativa es byobu, que viene muy bien preconfigurado en algunas distribuciones: http://byobu.co/


2. Midnight Commander

Una consola gráfica basada-como herramienta de navegación para la visualización y la manipulación de archivos y directorios.

También puede hacer remota segura transferencias. Hay una construida en el PESCADO y en el cliente FTP.

Esto significa que usted tiene 2 texto de windows al lado del otro en una consola de línea de comandos y una muestra de su remoto de la caja y el otro dondequiera que usted se conecte a (que puede ser también su sistema local), Entonces usted puede navegar por tanto los sistemas de archivos lado a lado y marca o investigar en archivos individuales o archivo treeees y también copiar o mover entre las ubicaciones. El PESCADO es seguro, FTP no lo es. Muy potente y sencilla para los principiantes.


3. rsync

Para un rápido, seguro y confiable de transferencia de archivos y la sincronización entre diferentes ubicaciones


4. VCS

El uso de una versión distribuida del sistema de control como el bazar, mercurial o git para el código de actualización. Github o Bitbucket ofrecer commecrcial código de hosting, pero no es necesario, también se puede utilizar de manera eficiente en sus propias máquinas.

Joseph Kern: ¿puede explicar cómo exactamente el uso de git para el control remoto de configuración de la organización?


5. Terminal Clientes

En unix-como sistemas que ya están en la junta, en Windows, puede utilizar la Masilla, el Tera Term, la Mente Plazo o Pandora. O hacer una instalación de cygwin y ssh desde el cygwin terminel de windows para el control remoto cajas (que tiene más ventajas, pero esto es una cuestión de lo que usted prefiera).


6. El túnel y el Reenvío de Puertos

Puede ser útil para desviar ciertos puertos de forma segura a su máquina local. Por ejemplo, usted podría adelante mysql, el puerto TCP 3306 o postgres TCP 5432 e instalar alguna base de datos de la herramienta de administración local.

Usted puede construir los túneles de máquinas Windows con putty (o basadas en línea de comandos con el hermano pequeño de plink), con cygwin y Mindterm también puede hacer el reenvío de puertos. Si usted está localmente en un unix-como la máquina puede utilizar ssh odr plink para crear dicho túnel.

Para crear algunos de los más estables y permanentes de túnel para varios puertos recomiendo OpenVPN. El "pre-shared-key" método túnel de punto a punto, no es tan difícil de instalar.


7. Contar con un sistema de tipo unix

Cuando el equipo local es un Mac tienes ya, de que pueda abrir un local de shell. Cuando la estación de trabajo está basado en windows que podría ser útil para crear un local unix-como servidor, que está en la misma red local. Esto puede ser un equipo diferente en una habitación diferente conectados al mismo router o switch. O si solo quieres un equipo, puede instalar la versión gratuita de vmware server y crear una máquina virtual, de preferencia el mismo sistema operativo de la máquina remota. Instalar un servidor samba en él y usted puede "net use" los recursos compartidos de samba desde su escritorio.

Si un servidor ssh en el servidor local y abrir el puerto 22 en el router para que usted puede utilizar ssh en su sistema cuando usted está fuera.

Usted puede construir túneles a máquinas remotas o transferir y sincronizar archivos y todo archivo de árboles con rsync. Usted puede utilizarlo para probar, para VSC, para el desarrollo local, como un servidor web, para fines de entrenamiento.

Usted puede tirar de las copias de seguridad de equipos remotos. Puede crear tareas de cron que te copias de seguridad inicia automáticamente (por ejemplo, bases de datos de la que desea guardar localmente con regularidad)


8. X Remote GUI

Si usted está trabajando en Linux como sistema físicamente, también es posible ejecutar aplicaciones GUI en tu linux de los servidores que dibujar la interfaz de usuario en el equipo local. Esto podría ser una gráfica de comparación de archivos de la herramienta o casi cualquier cosa que usted desea.

Aunque no es muy común y en más casos, no es necesario usar interfaz gráfica de usuario del software para linux administración puede, en algunos casos, encontrar que es útil si usted puede.

En el equipo remoto, asegúrese de que en /etc/ssh/sshd_config existe esta línea:

X11Forwarding Yes

Reiniciar el servidor ssh con

/etc/init.d/sshd restart

Entonces la próxima vez que inicie sesión con

ssh -X me@remote-box

Usted tendrá una X túnel, intente instalar xclock en el servidor remoto para fines de prueba y ejecutar xclock en la sesión de ssh que acabo de mencionar. Una radiografía simple reloj para testinng a los efectos de que debe aparecer en su GUI de Linux.

Esto también es posible un Mac si desea instalar un local de X medio.


9. Si usted tiene un montón de cajas o similares tareas: el uso de una herramienta de configuración del sistema

Si usted tiene una granja de servidores o hacer grandes implementaciones en la nube con muchos redundantes o de otra manera igual o máquinas similares, puede utilizar este.

Probablemente no tendría sentido, si la mayoría de los cuadros son individuales o tienen diferentes sistemas operativos o versiones distintas de los ejecutan.

Hay varias herramientas:


10. Implementar la aplicación de los contenedores con docker

Esto va incluso un paso más allá. Docker es un proyecto de código abierto que automatiza la implementación de aplicaciones en software de contenedores: https://www.docker.io


11. El uso de Google Compute Engine con despliegue automático de gestión de

https://cloud.google.com/products/compute-engine/

Google ofrece Linux en máquinas virtuales con muy emocionantes posibilidades. Puede implementar rápidamente grandes grupos de máquinas virtuales con herramientas, incluyendo un API RESTful, interfaz de línea de comandos y la Consola basada en web. También puede utilizar herramientas tales como RightScale y Scalr para administrar automáticamente su implementación.

4voto

BrewinBombers Puntos 1122

Usted necesita considerar un sistema de gestión de la configuración de la herramienta como Chef.

Yo apenas administrar los sistemas de forma manual a través de SSH sesiones más. Yo me quedo con todo el código de las aplicaciones web y proyectos en un repositorio de código fuente que puedo acceder desde los sistemas que se ejecutan en ellos, dicen que los sitios web en EC2. Cuando se trabaja en la nube, es esencial contar con la infraestructura automatizada.

Flujo de trabajo básico se parece a esto. En primer lugar, por el código de la aplicación y los datos de configuración:

  • Clon/caja código desde GitHub o de otro repositorio de control de versiones.
  • Editar el código en mi editor favorito en mi estación de trabajo/ordenador portátil.
  • Confirmar los cambios, pulsar para repositorio central.

Para la configuración, agregar:

  • Instalar los archivos de configuración en la ubicación donde el Chef les puede servir.
  • Desencadenar un chef de ejecución del cliente, o espere a que el intervalo de tiempo, en los nodos de borde.

Sistemas configurados como paquete instala, de creación de usuario, los archivos de configuración generados a partir de plantillas, etc.

I [casi] nunca editar manualmente los archivos de configuración, los datos de la aplicación, o cualquier otra cosa en los sistemas remotos de forma directa. Los cambios se realizan a través de mi repositorio local y empujadas hacia el maestro. Yo sé que mi sistema estará configurado correctamente todo el tiempo, no importa si tengo que matar a una instancia y se reinicia.

Archivos necesarios para la configuración se sirven de la derecha del Chef server, el cual es una aplicación web (merb, corriendo en Apache + Pasajero). El acceso para los clientes es controlado a través de openid autorización.

Mi configuración incluye ganchos en Nagios y Munin, así que también tengo el monitoreo de tendencias y sin tener que manualmente hacer nada para configurarlas.

Las mejores prácticas en estos días se están inclinando automatizado de gestión de la configuración. Si usted todavía está haciendo las cosas de forma manual, que está trabajando muy duro.

4voto

Evan Anderson Puntos 118832

Si usted está buscando una bonita interfaz gráfica de usuario para trabajar con la gestión de archivos a través de SSH desde Windows cajas, eche un vistazo a WinSCP: http://winscp.net

Yo no administrar ningún instancias de EC2, pero en general si tengo más de una sola máquina que realiza un papel voy a tratar de escribir un guión para realizar el trabajo en todos los como cajas, en lugar de hacer los cambios de cuadro-por-cuadro.

Me gustaría comenzar a utilizar el Puppet (http://reductivelabs.com/products/puppet/), porque hace que el sistema de administración de más de una configuración de administración de ejercicio. No he tenido ciclos de repuesto para tener una mirada en detalle todavía, pero he oído cosas muy buenas.

3voto

smartappers Puntos 11

Lo que está mal con ssh, vim, y wget? Joyas desconocidas para la mayoría de usuarios de Windows, en mi opinión. :-)

A veces uso gVim de forma remota a través de FTP o SFTP.

Si usted prefiere el uso de la interfaz gráfica de usuario en la máquina Linux, puede ejecutar un Servidor de X (véase el Cygwin para uno) en el host local y enviar su posterior de la pantalla a través de su conexión ssh.

Nunca he considerado una solución VPN vale la pena el gasto o molestia para la administración de Linux.

Si estás haciendo el desarrollo y la necesidad de ejecutar el dev puestos de trabajo en el servidor, basta con configurar una revisión de control de cliente en el servidor, inicie sesión de forma remota, sincronizar el cliente, y ejecutar el proceso.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: