你如何管理你的EC2 Linux盒子?

我有一些EC2 Linux映像,它们每晚为我的一个项目处理作业.有时,我需要进入,进行一些代码更改,配置一些东西,然后重新捆绑图像.

我的这些操作的工具集非常稀疏(SSH进入框中,编辑VIM中的文件,我需要的WGET远程文件),我怀疑有更好的方法可以做到这一点.我很想知道我职位上的其他人在做什么.

>您使用某种形式的Windowing系统和远程桌面等效来访问该框,还是所有命令行?管理EC2 Windows框是微不足道的,因为您可以通过网络远程桌面和传输文件.在Linux世界中是否有相同的功能
>您是否直接在机器上进行配置更改/脚本调整?或者您是否在本地盒子上设置了远程编辑这些文件的东西?或者您只是远程编辑它们然后在每次保存时转移它们?
>如何在EC2和本地环境之间来回移动文件? FTP?某种通过VPN映射的驱动器?

我真的需要制定一些管理这些盒子的最佳实践.任何建议,以消除一些痛苦将是最受欢迎的!

编辑:显然,我上面并不清楚,因为前两个响应围绕管理和配置EC2实例.我只是想知道如何将桌面远程连接到正在运行的Linux服务器,以便移动文件并编辑它们不那么痛苦.

解决方法

我不再做很多手动系统管理了.我将我的基础架构视为可编程实体,并通过配置具有自动化配置管理,EC2节点维护等工具的系统来对待它.我的工具箱中的工具:

> Ruby(我最喜欢的脚本/工具语言)
> Git(版本控制)
> Opscode’s Chef(用Ruby编写)(1)
> Capistrano(临时大规模维护)
>亚马逊的EC2 API工具,例如图像维护.
> Rightscale的AWS gem(EC2的Ruby绑定)

(1) – 披露,我为Opscode工作.其他工具填补了这个空间,如Reductive Lab的Puppet.

当我按照特定功能需要的方式构建节点时,我会捆绑AMI.例如,如果我正在构建一个Rails应用服务器,我将安装所有必备软件包以节省构建时间.

当所有其他方法都失败时,我使用SSH登录系统.我做了很多年的手动系统管理,这是老帽子.

Are you using some form of Windowing
system and remote-desktop equivalent
to access the Box,or is it all
command line?

我没有在服务器上安装任何GUI,除非包具有依赖关系并且自动安装.

Is there an equivalent to this in the
Linux world? (transferring files)

我通常做两种类型的文件传输/文件维护.

>包装安装
>配置文件

对于平台本机包,我使用标准的包管理工具,如APT或YUM.对于源安装(something.tar.gz),我通常通过wget下载.

配置文件通常是由Chef管理的ERB模板.

我使用SSH和SCP / SFTP手动传输文件.

Are you doing your config
changes/script tweaks directly on the
machine? Or do you have something set
up on your local Box to edit these
files remotely? Or are you simply
editing them remotely then
transferring them at each save?

我将与管理系统相关的所有内容保存在软件控制存储库中.这是我在一个或多个系统上更新配置时的典型工作流程.我从我的本地工作站开始.

>从主Git存储库中提取其他人的更改.
>在本地编辑文件(例如,更新配置文件).
>承诺改变,推动掌握.
>在Chef服务器上(通过SSH登录),提取我刚刚提交的最新更改.
>将配置部署到Chef服务器上的适当位置(为此,我使用Rake).
>厨师客户间隔运行,因此他们每隔30分钟就会收到一次更改.如果我需要立即,我会手动运行chef-client.
>验证更改!

How are you moving files back and
forth between EC2 and your local
environment? FTP? Some sort of Mapped
Drive via VPN?

我可以存储在EC2节点上使用的文件的几个位置.

>厨师服务器.配置模板主要是一些小包.
> GitHub.我们将代码(开源项目)存储在GitHub上. EC2节点可以轻松实现这一点(例如,检查最新版本的内容).
> Amazon S3存储桶.有些东西存放在桶中.

我在EC2中做了很多工作,主要是测试环境和变化.由于我的工具和工作流程,我花了更多的时间来处理我真正关心的事情,而不是处理单个文件和考虑特定配置.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...