Tengo algunas imágenes EC2 Linux que realizan trabajos de procesamiento nocturno para uno de mis proyectos. De vez en cuando, tendré que entrar, hacer algunos cambios en el código, configurar algunas cosas y volver a agrupar la imagen.
Mi conjunto de herramientas para estas operaciones es dolorosamente escaso (SSH en la caja, edito archivos en VIM, archivos remotos WGET que necesito), y sospecho que hay una manera mucho mejor de hacerlo. Tengo curiosidad por escuchar lo que otras personas en mi posición están haciendo.
¿Está utilizando algún tipo de sistema de ventanas y un escritorio remoto equivalente para acceder al cuadro, o es todo línea de comando? La administración de las cajas de Windows EC2 es trivial, ya que puede simplemente instalar el escritorio remoto y transferir archivos a través de la red. ¿Hay un equivalente a esto en el mundo de Linux?
¿Estás haciendo tus cambios de configuración / ajustes de script directamente en la máquina? ¿O tiene algo configurado en su casilla local para editar estos archivos de forma remota? ¿O simplemente los edita de forma remota y luego los transfiere en cada guardado?
¿Cómo mueve los archivos de un lado a otro entre EC2 y su entorno local? FTP? ¿Algún tipo de unidad asignada a través de VPN?
Realmente necesito tener algunas mejores prácticas para administrar estos cuadros. ¡Cualquier sugerencia para eliminar parte del dolor sería bienvenida!
EDITAR: Evidentemente, no estaba claro anteriormente, ya que las dos primeras respuestas giraron en torno a la gestión y configuración de instancias EC2. Solo quiero saber cómo escritorio remoto en un servidor Linux en ejecución para que mover archivos y editarlos sea menos doloroso.
fuente
Respuestas:
Ya no hago mucha administración manual del sistema. Veo mi infraestructura como una entidad programable y la trato como tal, configurando sistemas con herramientas que automatizan la gestión de la configuración, el mantenimiento del nodo EC2, etc. Herramientas en mi caja de herramientas:
(1) - Divulgación, trabajo para Opscode. Otras herramientas llenan este espacio como la marioneta de Reductive Lab.
Empaquete un AMI cuando tengo un nodo construido de la manera que necesito para una función específica. Por ejemplo, si estoy compilando un servidor de aplicaciones Rails, tendré todos los paquetes de requisitos previos instalados para ahorrar tiempo en la compilación.
Cuando todo lo demás falla, inicio sesión en los sistemas con SSH. Hice la administración manual del sistema durante muchos años, este es un sombrero viejo.
No instalo ninguna GUI en los servidores a menos que un paquete tenga una dependencia y uno se instale automáticamente.
Normalmente hago dos tipos de transferencia de archivos / mantenimiento de archivos.
Para los paquetes nativos de la plataforma, utilizo la herramienta de administración de paquetes estándar como APT o YUM. Para las instalaciones de origen (something.tar.gz) generalmente descargo a través de wget.
Los archivos de configuración suelen ser plantillas ERB administradas por Chef.
Yo uso SSH y SCP / SFTP para transferir archivos manualmente.
Mantengo todo lo relacionado con la gestión de sistemas en un repositorio de control de software. Aquí está mi flujo de trabajo típico al actualizar la configuración en uno o más sistemas. Comienzo desde mi estación de trabajo local.
Hay algunas ubicaciones donde se pueden almacenar los archivos que uso en los nodos EC2.
Hago mucho trabajo en EC2, principalmente probando entornos y cambios. Como resultado de mis herramientas y flujo de trabajo, paso más tiempo trabajando en cosas que realmente me interesan y menos en el manejo de archivos individuales y pensando en configuraciones específicas.
fuente
Todo nuestro software se implementa a través de RPM. Cada tipo de instancia EC2 se describe mediante un archivo kickstart (que enumera los RPM que se instalarán ...). La configuración kickstart significa que se puede construir una máquina en funcionamiento de cada tipo de instancia desde cero en aproximadamente 10 minutos.
Luego tenemos un programa que invoca a anaconda (el instalador de Red Hat) para tomar un archivo kickstart, instalar el sistema en un directorio, luego agrupar el directorio y llevarlo a S3 como una imagen de máquina de Amazon. Todo esto es un paso, así que solo escribo:
Dado que una máquina se puede reconstruir, cargar y ejecutar por completo en aproximadamente 40 minutos, es más fácil construir nuevas imágenes de máquina que ejecutar sysadmin en las instancias EC2 reales (desechables). Por lo tanto, no se realiza realmente sysadmin en instancias EC2.
fuente
Me gusta NX para acceso remoto a la interfaz gráfica de usuario. Muy bien documentado también.
fuente
Utilizo nautilus para bastante administración de archivos y ssh para comandos. Se conecta directamente a su sistema como si estuviera físicamente en el centro de datos. Si lo está haciendo desde un cuadro de Windows, entonces este tipo de conectividad no funcionará ya que vfs en Windows es limitado.
fuente
Creo que no necesita un escritorio remoto para estas tareas.
Como otros mencionaron, puede usar SFTP para transferir los archivos entre las cajas. Use el cliente WinSCP para conectarse a través de sftp, que también puede usar para editar los archivos en su máquina Windows (haciendo doble clic en ellos) como si estuviera en su máquina local. También puede usarlo para copiar / mover archivos de forma remota.
También puede considerar usar Midnight Commander (mc) en la consola ssh que puede acelerar las operaciones de archivos. Para instalar use el comando
yum install mc
oapt-get install mc
. Luego puede iniciarlo escribiendomc
en la terminal. También tiene un visor y editor incorporado que es más sencillo que vim.Si realmente desea tener una GUI, que generalmente no tenemos en los servidores, debe instalar el entorno X y conectarse a él con VNC. En tales casos, nos conectamos al servidor VNC a través de un túnel ssh que le agrega más seguridad.
fuente
En respuesta a su pregunta sobre la configuración de un escritorio remoto con X, si está utilizando Debian, lea esto . No es exactamente el mejor documento para configurarlo. Te tiene instalando demasiados paquetes, pero tiene la idea correcta. Realmente solo necesita un controlador de video ficticio para X, y luego que VNC inicie un escritorio X.
fuente
Si está utilizando ubuntu: estamos considerando usar landscape para esto, es un producto comercial del equipo ubuntu (canónico) y se integrará con los comandos ec2.
fuente
Podría intentar algo como capistrano, pero si eso no es suficiente para lo que busca, entonces parece que es candidato para algún tipo de gestión de configuración.
Puppet, reductivelabs.com/products/puppet/, se destaca realmente en este campo, pero puede ser un poco exagerado para usted a menos que tenga planes de hacerse más grande y valga la pena el trabajo duro por adelantado.
Si está utilizando una de las distribuciones de debian / ubuntu, entonces verificaría Slack Roles.
Es un envoltorio elegante para rsync y scripts de shell. Esto tiene muy poco aprendizaje inicial y funciona bien, sin embargo, a medida que crece, puede volverse un poco confuso.
fuente