Назад | Перейти на главную страницу

Как вы управляете своими ящиками EC2 Linux?

У меня есть несколько образов EC2 Linux, которые выполняют ночные задания по обработке для одного из моих проектов. Время от времени мне нужно будет входить, вносить некоторые изменения в код, настраивать некоторые вещи и повторно связывать образ.

Мой набор инструментов для этих операций крайне скуден (SSH в поле, редактирование файлов в VIM, удаленные файлы WGET, которые мне нужны), и я подозреваю, что есть гораздо лучший способ сделать это. Мне любопытно услышать, что делают другие люди на моем месте.

Мне действительно нужно получить некоторые передовые методы управления этими ящиками. Мы будем приветствовать любые предложения по устранению боли!

РЕДАКТИРОВАТЬ: Очевидно, выше я не понял, поскольку первые два ответа касались управления и настройки экземпляров EC2. Я просто хочу знать, как подключить удаленный рабочий стол к работающему Linux Server, чтобы перемещение файлов и их редактирование было менее болезненным.

Я больше не занимаюсь ручным системным администрированием. Я рассматриваю свою инфраструктуру как программируемую сущность и отношусь к ней как к таковой, настраивая системы с помощью инструментов, которые автоматизируют управление конфигурацией, обслуживание узлов EC2 и т. Д. Инструменты в моем наборе инструментов:

  • Ruby (мой любимый язык сценариев / инструментов)
  • Git (контроль версий)
  • Шеф-повар Opscode (написано на Ruby) (1)
  • Capistrano (специальное массовое обслуживание)
  • Инструменты Amazon EC2 API для обслуживания экземпляров и изображений.
  • Гем AWS от компании Rightscale (привязки Ruby для EC2)

(1) - Раскрытие информации, я работаю в Opscode. Другие инструменты заполняют это пространство, например Puppet от Reductive Lab.

Я собираю AMI, когда у меня есть узел, построенный так, как мне нужно для конкретной функции. Например, если я создаю сервер приложений Rails, я установлю все необходимые пакеты, чтобы сэкономить время на сборке.

Когда ничего не помогает, я вхожу в систему по SSH. Я много лет занимался системным администрированием вручную, это старая шляпа.

Используете ли вы какую-либо форму оконной системы и эквивалента удаленного рабочего стола для доступа к ящику, или это все из командной строки?

Я не устанавливаю какой-либо графический интерфейс на серверы, если пакет не имеет зависимости и один не устанавливается автоматически.

Есть ли аналог этого в мире Linux? (передача файлов)

Обычно я выполняю два типа передачи файлов / обслуживания файлов.

  • Установка пакета
  • Файлы конфигурации

Для пакетов, встроенных в платформу, я использую стандартный инструмент управления пакетами, например APT или YUM. Для исходных установок (something.tar.gz) я обычно загружаю через wget.

Файлы конфигурации обычно представляют собой шаблоны ERB, которыми управляет Chef.

Я использую SSH и SCP / SFTP для передачи файлов вручную.

Вы вносите изменения в конфигурацию / настройки скрипта прямо на машине? Или у вас есть что-то настроенное на вашем локальном компьютере для удаленного редактирования этих файлов? Или вы просто редактируете их удаленно, а затем переносите при каждом сохранении?

Я храню все, что связано с управлением системами, в репозитории управления программным обеспечением. Вот мой типичный рабочий процесс при обновлении конфигурации в одной или нескольких системах. Я начинаю со своей локальной рабочей станции.

  • Извлеките из главного репозитория Git для других изменений.
  • Отредактируйте файл (ы) локально (например, обновите файл конфигурации).
  • Зафиксируйте изменение, нажмите, чтобы освоить.
  • На сервере Chef (авторизованном через SSH) загрузите последнее изменение, которое я только что зафиксировал.
  • Разверните конфигурацию в соответствующем месте на сервере Chef (для этого я использую Rake).
  • Клиенты Chef работают с интервалом, поэтому они будут получать изменения каждые 30 минут. Если мне что-то нужно срочно, я запускаю chef-client вручную.
  • Проверьте изменение!

Как вы перемещаете файлы между EC2 и вашей локальной средой? FTP? Какой-то подключенный диск через VPN?

Есть несколько мест, где могут храниться файлы, которые я использую на узлах EC2.

  • Шеф-сервер. В основном шаблоны конфигурации, а также некоторые небольшие пакеты.
  • GitHub. Мы храним наш код (проекты с открытым исходным кодом) на GitHub. Узлы EC2 могут легко добраться до этого (например, для проверки последней версии чего-либо).
  • Ковши Amazon S3. Некоторые вещи хранятся в ведре.

Я много работаю в EC2, в первую очередь тестирую среды и изменения. Благодаря своим инструментам и рабочему процессу я трачу больше времени на то, что меня действительно волнует, и меньше на работу с отдельными файлами и размышления о конкретных конфигурациях.

Все наше программное обеспечение развертывается через RPM. Каждый тип экземпляра EC2 описывается файлом кикстарта (в котором перечислены устанавливаемые RPM ...). Настройка кикстарта означает, что рабочая машина каждого типа экземпляра может быть создана с нуля примерно за 10 минут.

Затем у нас есть программа, которая вызывает anaconda (установщик Red Hat), чтобы взять файл кикстарта, установить систему в каталог, затем объединить каталог и отправить его на S3 как образ машины Amazon. Это всего лишь один шаг, поэтому я просто набираю:

kickstart2ami webserver.ks

Поскольку машину можно полностью перестроить, загрузить и запустить примерно за 40 минут, легче создать новые образы машины, чем выполнять системный администратор на фактических (выброшенных) экземплярах EC2. Следовательно, на инстансах EC2 системный администратор фактически не выполняет.

мне нравиться NX для удаленного доступа к графическому интерфейсу. Очень хорошо задокументировано.

Я использую nautilus для управления файлами и ssh для команд. Он подключается прямо к вашей системе, как если бы вы были физически в центре обработки данных. Если вы делаете это из окна Windows, то такое соединение не будет работать, поскольку vfs в Windows ограничены.

Думаю, для этих задач вам не нужен удаленный рабочий стол.

Как уже упоминалось, вы можете использовать SFTP для передачи файлов между ящиками. Использовать Клиент WinSCP для подключения через sftp, который вы также можете использовать для редактирования файлов на вашем компьютере с Windows (двойным щелчком по ним), как если бы они находились на вашем локальном компьютере. Вы также можете использовать его для удаленного копирования / перемещения файлов.

Вы также можете рассмотреть возможность использования Midnight Commander (mc) на консоли ssh, который может ускорить файловые операции. Для установки используйте yum install mc или apt-get install mc команда. После этого вы можете запустить его, набрав mc на терминале. Он также имеет встроенный просмотрщик и редактор, который проще, чем vim.

Если вы действительно хотите иметь графический интерфейс, которого у нас обычно нет на серверах, вам необходимо установить среду X и подключиться к ней с помощью VNC. В таких случаях мы подключаемся к серверу VNC через туннель ssh, что повышает его безопасность.

В ответ на ваш вопрос о настройке удаленного рабочего стола с X, если вы используете Debian, прочтите этот. Это не совсем лучший документ по его настройке. Вы устанавливаете слишком много пакетов, но идея правильная. На самом деле вам нужен только фиктивный видеодрайвер для X, а затем VNC запускает рабочий стол X.

Если вы используете Ubuntu: мы рассматриваем возможность использования пейзаж для этого это коммерческий продукт команды ubuntu (canonical), который будет интегрирован с командами ec2.

Вы можете попробовать что-то вроде capistrano, но если этого недостаточно для того, что вы делаете после, то похоже, что вы являетесь кандидатом на какое-то управление конфигурацией.
Puppet, reductivelabs.com/products/puppet/, действительно выделяется в этой области, но может быть немного излишним для вас, если у вас нет планов стать больше, и тогда это стоит тяжелой работы заранее.
Если вы используете один из дистрибутивов debian / ubuntu, я бы хотел проверить Слабые роли
Это причудливая оболочка для сценариев rsync и оболочки. Это требует очень небольшого предварительного обучения и хорошо работает, однако по мере вашего роста может стать немного запутанным.