ПРИМЕЧАНИЕ: я задал этот вопрос сегодня утром в отношении блоков EC2, но получил только обратные ссылки на инструменты для запуска и остановки экземпляров, поэтому я перефразирую ...
У меня есть несколько блоков Linux, которые выполняют ночные задания для одного из моих проектов. Время от времени мне нужно будет входить, вносить некоторые изменения в код, настраивать некоторые вещи, перемещать файлы и т. Д.
Мой набор инструментов для этих операций крайне скуден (SSH в коробке, редактирование файлов в VIM, удаленные файлы WGET, которые мне нужны), и я подозреваю, что есть гораздо лучший способ сделать это. Мне любопытно услышать, что делают другие люди в моем положении.
Используете ли вы какую-либо форму оконной системы и эквивалент удаленного рабочего стола для доступа к блоку, или это все из командной строки? Управление удаленными блоками Windows тривиально, поскольку вы можете просто подключить удаленный рабочий стол и передавать файлы по сети. Есть ли эквивалент в этом в мире Linux?
Вы вносите изменения в конфигурационный файл / скриптовые настройки прямо на машине? Или у вас есть что-то настроенное на вашем локальном ящике для удаленного редактирования этих файлов? Или вы просто редактируете их удаленно, а затем переносите их при каждом сохранении?
Как вы перемещаете файлы назад и вперед между сервером и вашей локальной средой? FTP? Какой-то Mapped Drive через VPN?
Я действительно должен был бы получить некоторые лучшие методы для администрирования этих коробок. Любые предложения, чтобы снять часть боли будет приветствоваться!
источник
Ответы:
Разреженный? Что на земле ты имеешь в виду? Извините, что ругаю, но отмахиваться от ssh, vim и wget за то, что это болезненно, почти оскорбительно. Из вашего вопроса я делаю вывод, что вы в основном программист для своей дневной работы, так что я вроде понимаю вопрос. Но, честно говоря, я бы не стал нанимать администратора Linux, который не устраивает ни один из трех упомянутых вами инструментов.
Для задач администратора я никогда не использую среду X. Он вам не нужен, он будет только потреблять системные ресурсы и большую часть времени будет помехой, а не помощью. Большинство инструментов настройки GUI (ну, практически все, на самом деле) предлагают только подмножество параметров конфигурации, которые вы можете установить в файле конфигурации с помощью vim.
Управление блоками Linux не менее тривиально, чем управление блоками Windows. Требуется некоторое время, чтобы получить приличный набор навыков.
А сетевой эквивалент передачи файлов? Много. scp, sftp, ftp, nfs, cifs / smb (протоколы совместного использования файлов Windows), а затем некоторые.
Зависит от того, что я делаю. Большинство вещей я делаю непосредственно в файлах конфигурации на машине (для блоков разработки и тестирования), а затем помещаю файл в канал конфигурации на нашем сервере Satellite, после чего я развертываю файл на всех серверах напрямую (для производственных блоков). ). Действительно, Vim это сокровище. То есть, когда вы узнаете, как правильно его использовать.
scp полностью и, может быть, немного sftp, и я предлагаю вам тоже. Никогда, никогда не используйте FTP для перемещения конфиденциальных файлов (например, файлов конфигурации) по сети общего пользования. Я не использую подключенную сеть, потому что все, что мне нужно, это сервер. Если вы имеете в виду c файлы, а не файлы конфигурации, я обычно использую что-то вроде svn или git, а затем помещаю свои изменения в поле.
Вы уже используете их: ssh, scp, wget и vim. Это не боль. Могут быть некоторые боли при прорезывании зубов, пока вы выясняете, насколько они сильны. Но, чтобы вернуться к аналогии с Windows, я чувствую себя серьезно затрудненным, когда мне приходится использовать Windows. Для тебя это наоборот. Это просто то, к чему вы привыкли. Итак, дайте ему время, и оно придет к вам.
источник
Вы уже упомянули ssh, vim и wget, которые необходимы и идеальны. Некоторые дополнительные инструменты, которые могут облегчить жизнь:
1. Экран GNU / Бёбу
«GNU Screen - это бесплатный мультиплексор терминала, который позволяет пользователю получить доступ к нескольким отдельным сеансам терминала внутри одного окна терминала или сеанса удаленного терминала. Это полезно для работы с несколькими программами из командной строки и для отделения программ от оболочки, которая была запущена программа." (Со страницы GNU_Screen в википедии)
Основным преимуществом является то, что у вас может быть один или несколько виртуальных терминалов, которые находятся в том же состоянии, в каком вы их оставили, когда вы вернетесь (т.е. повторно войдите через ssh). Это также хорошо, когда ваше соединение по какой-то причине разрывается.
Экран работает независимо от программного обеспечения, которое вы используете для подключения к устройству (оно живет на сервере), поэтому оно хорошо сочетается с замазкой или большинством других терминальных программ.
В этой статье показаны некоторые приятные вещи, которые вы можете с этим сделать: http://www.pastacode.de/extending-gnu-screen-adding-a-taskbar/en/
Хорошей альтернативой является byobu, который хорошо настроен в некоторых дистрибутивах: http://byobu.co/
2. Полуночный командир
Консольный графический инструмент для просмотра и управления файлами и каталогами.
Может также делать безопасные дистанционные переводы. Есть встроенный FISH и FTP клиент.
Это означает, что у вас есть 2 текстовых окна бок о бок в консоли командной строки, и одно показывает ваше удаленное окно, а другое - где бы вы ни подключались (это также может быть ваша локальная система). Затем вы можете перемещаться по обеим файловым системам рядом и отмечать или исследовать отдельные файлы или древовидные файлы, а также копировать или перемещать их между местоположениями. РЫБА безопасна, FTP нет. Очень мощный и простой для начинающих.
3. rsync
Для быстрой, безопасной и надежной передачи файлов и синхронизации между различными местами
4. VCS
Использование распределенной системы контроля версий, такой как Bazaar, Mercurial или Git, для обновления кода. Github или Bitbucket предлагают коммерческий хостинг кода, но это не обязательно, вы также можете эффективно использовать его на своих компьютерах.
Джозеф Керн: не могли бы вы рассказать, как именно вы используете git для организации удаленного конфигурирования?
5. Терминальные клиенты
В Unix-подобных системах они уже есть, в Windows вы можете использовать Putty, Tera Term, Mind Term или Pandora. Или сделайте установку cygwin и ssh от окон cygwin terminel до удаленных блоков (что имеет больше преимуществ, но это вопрос того, что вы предпочитаете).
6. Туннелирование и переадресация портов
Это может быть полезно для безопасной переадресации определенных портов на локальный компьютер. Например, вы можете переслать порт mysql TCP 3306 или postgres TCP 5432 и установить какой-либо инструмент администрирования базы данных локально.
Вы можете строить туннели из машин Windwos с помощью putty (или командной строки, основанной на его младшем брате), с помощью cygwin и Mindterm также может выполнять переадресацию портов. Если вы находитесь на unix-подобной машине, вы можете использовать ssh odr plink для создания такого туннелирования.
Для создания более стабильного и постоянного туннелирования для различных портов я рекомендую OpenVPN. Метод туннелирования «pre-shared-key» от точки к точке не так сложен в установке.
7. Иметь локальную Unix-подобную систему
Когда ваш локальный компьютер - Mac, у вас это уже есть, вы можете открыть локальную оболочку. Если ваша рабочая станция работает под управлением Windows, может быть полезно создать локальный Unix-подобный сервер, который находится в той же локальной сети. Это может быть другой компьютер в другой комнате, подключенный к тому же маршрутизатору или коммутатору. Или, если вам нужна только одна машина, вы можете установить бесплатный сервер VMware и создать виртуальную машину, предпочтительно ту же операционную систему, что и ваша удаленная машина. Установите на нем сервер samba, и вы сможете «использовать по сети» общие ресурсы samba со своего рабочего стола.
Если вы используете ssh-сервер на локальном сервере и открыли для него порт 22 на своем маршрутизаторе, вы можете подключиться к ssh в вашей локальной системе, когда вы находитесь снаружи.
С помощью rsync вы можете создавать туннели для удаленных компьютеров или передавать и синхронизировать файлы и целые файловые деревья. Вы можете использовать его для тестирования, для VSC, для локальной разработки, в качестве локального веб-сервера, в учебных целях.
Вы можете получить резервные копии с удаленных машин. Вы можете создавать локальные задания cron, которые автоматически создают резервные копии (например, базы данных, которые вы хотите регулярно сохранять локально)
8. X Remote GUI
Если вы физически работаете в Linux, как система, вы также можете запускать приложения GUI на ваших серверах Linux, которые рисуют графический интерфейс на вашем локальном компьютере. Это может быть графический инструмент сравнения файлов или почти все, что вы хотите.
Хотя это не очень распространено и в некоторых случаях нет необходимости использовать программное обеспечение с графическим интерфейсом для администрирования linux box, в некоторых случаях может оказаться полезным, если вы можете.
На удаленной машине убедитесь, что в / etc / ssh / sshd_config эта строка существует:
Перезапустите сервер SSH с
Тогда в следующий раз вы войдете с
У вас будет X-туннель, попробуйте установить xclock на удаленный сервер в целях тестирования и выполнить
xclock
в сеансе ssh, который я только что упомянул. Простые часы x для тестирования должны появиться в вашем графическом интерфейсе Linux.Это также возможно для Mac, если вы устанавливаете локальную среду X.
9. Если у вас есть куча похожих блоков или задач: используйте инструмент настройки системы
Если у вас есть ферма серверов или вы выполняете большие облачные развертывания с множеством избыточных или иным образом одинаковых или похожих компьютеров, вы можете использовать это.
Вероятно, это не имело бы смысла, если бы большинство коробок были индивидуальными или имели разные операционные системы или разные версии.
Есть несколько инструментов:
chef
http://www.getchef.com/chef/ См. блестящий ответ Эвана Андерсона ниже: /server//a/28789/45819puppet
другой крупный игрок http://puppetlabs.com/salt
выглядит многообещающе http://www.saltstack.com/10. Разверните контейнеры приложений с
docker
Это идет еще на один шаг дальше. Docker - это проект с открытым исходным кодом, который автоматизирует развертывание приложений внутри программных контейнеров: https://www.docker.io
11. Используйте Google Compute Engine с автоматическим управлением развертыванием
https://cloud.google.com/products/compute-engine/
Google предлагает виртуальные машины Linux с очень интересными возможностями. Вы можете быстро развернуть большие кластеры виртуальных машин с помощью таких инструментов, как RESTful API, интерфейс командной строки и веб-консоль. Вы также можете использовать такие инструменты, как RightScale и Scalr для автоматического управления развертыванием .
источник
cd /#sh:<user>@<server>:<directory>
входить в систему на удаленном компьютере для просмотра и передачи файлов, а Ctrl-o временно переключает вас на консоль. Еще один Ctrl-O возвращает вас в MC одним нажатием клавиши!Если вы ищете хороший графический интерфейс для работы с файлами через SSH из Windows, посмотрите WinSCP: http://winscp.net
Я не администрирую никакие экземпляры EC2, но в целом, если у меня более одной машины, выполняющей роль, я попытаюсь написать сценарий для выполнения работы над всеми подобными блоками вместо внесения изменений box-for-box ,
Я хотел бы начать использовать Puppet ( http://reductivelabs.com/products/puppet/ ), потому что это делает системное администрирование больше упражнением по управлению конфигурацией. У меня еще не было запасных циклов, чтобы взглянуть на них подробно, но я слышал очень хорошие вещи.
источник
Вы должны рассмотреть инструмент управления конфигурацией системы, такой как Chef.
Я почти не управляю системами вручную через сеансы SSH. Я храню весь код для веб-приложений и проектов в репозитории исходного кода, к которому я могу получить доступ из систем, которые их запускают, например, веб-сайты на EC2. При работе в облаке важно иметь автоматизированную инфраструктуру.
Основной рабочий процесс выглядит следующим образом. Во-первых, для кода приложения и данных конфигурации:
Для конфигурации добавьте:
Системы настраиваются, например, установка пакетов, создание пользователей, файлы конфигурации, сгенерированные из шаблонов и т. Д.
Я [почти] никогда не редактирую вручную файлы конфигурации, данные приложения или что-либо еще на удаленных системах напрямую. Изменения сделаны через мой локальный репозиторий и отправлены мастеру. Я знаю, что мои системы будут настроены правильно каждый раз, независимо от того, придется ли мне уничтожать экземпляр и перезапускать его.
Файлы, необходимые для конфигурации, подаются прямо с сервера Chef, который является просто веб-приложением (merb, работает в Apache + Passenger). Доступ для клиентов контролируется через авторизацию openid.
Моя конфигурация включает в себя хуки в Nagios и Munin, поэтому я также получаю мониторинг и тренды без необходимости что-либо настраивать вручную.
Лучшие практики в наши дни опираются на автоматизированное управление конфигурацией. Если вы все еще делаете что-то вручную, вы слишком усердно работаете.
источник
Что не так с ssh, vim и wget? По моему мнению, драгоценности неизвестны большинству пользователей Windows. :-)
Иногда я использую gVim удаленно через FTP или SFTP.
Если вы предпочитаете использовать графический интерфейс на компьютере с Linux, вы можете запустить X-сервер (см. Cygwin) на локальном хосте и перенаправить дисплей обратно через ssh-соединение.
Я никогда не думал, что решение VPN стоит затрат или хлопот для администрирования Linux.
Если вы занимаетесь разработкой и вам нужно запустить свои задания разработчика на сервере, просто настройте клиент управления версиями на сервере, выполните удаленный вход в систему, синхронизируйте клиент и запустите свой процесс.
источник
Этот троллинг предназначен?
Удаленное администрирование оконных боксов не тривиально. Удаленное администрирование Unix-боксов связано с тем, что они предназначены для удаленного управления и работы в сети. Для Windows это был болт к системе, которая не была разработана с нуля, чтобы жить в сети.
Это анекдотично, но, как показывает опыт различных компаний, соотношение серверов и системных администраторов для Linux-систем намного выше, чем для Windows. Просто потому, что автоматизация в Windows не тривиальна, и графический интерфейс всегда будет медленнее, чем скриптинг. Тем не менее, есть администраторы Windows, которые могут сделать инфраструктуру Windows простой в управлении, однако такие администраторы очень редки.
Все необходимые инструменты доступны по умолчанию в каждом дистрибутиве Linux. Если вам нужен графический вход в систему, продолжайте и сделайте это, он просто израсходует ресурсы процессора и памяти и вызовет те же проблемы, что и у вас с окнами. И, как уже было сказано, для более чем нескольких коробок вы должны рассмотреть puppet, chef, cfengine или один из множества других доступных инструментов.
источник
Вы говорите, что используете SSH для управления «несколькими» ящиками. Я очень рекомендую ClusterSSH для одновременной записи одних и тех же команд (при условии, что они имеют одинаковое назначение).
http://www.linux.com/learn/tutorials/413853:managing-multiple-linux-servers-with-clusterssh
Использование так же просто, как «имя пользователя cssh -l имя-кластера», которое откроет множество окон uxterm, которыми вы можете управлять одновременно или по отдельности. Кластер определяется списком IP-адресов в файле конфигурации. Насколько я знаю, не хватает только поддержки X.
РЕДАКТИРОВАТЬ: я перешел на Terminator, так как многоконтактный макет может быть легко сохранен и восстановлен, плюс вы получите 10 одновременных X туннелей при необходимости. Позволяет легко настроить сервер и клиентский компьютер одновременно.
Кроме того, Fabric удобен при обновлении программного обеспечения на моих клиентах, в основном заменяя все эти файлы zip / scp / unzip / cp.
источник
Я использую:
Перевод моих конфигов под контроль версий был, пожалуй, самым умным, что я сделал. Я использую инструменты, основанные на SSH, настолько часто, насколько это возможно, чтобы уменьшить административный след и поверхность атаки.
В настоящее время все мои репозитории git являются локальными. В будущем я перенесу конфиги в удаленные репозитории.
источник
Не забывайте об использовании Webmin , веб-интерфейса для системного администрирования Unix / Linux.
источник
SSH всегда было достаточно для меня. Есть и другие варианты. X11 - это, по сути, удаленный рабочий стол, хотя он небезопасен, поскольку сам по себе не зашифрован. Однако он может быть туннелирован через соединение SSH (и вы получаете преимущество в том, что вам не нужно открывать дополнительные порты). Это, конечно, предполагает, что на сервере установлена среда X.
SFTP (который является ftp через SSH, поэтому снова не нужно открывать дополнительные порты) можно использовать для размещения файлов на сервере, а не для их извлечения. Хороший клиент windows sftp можно найти по адресу http://filezilla-project.org/
источник
Я ssh в поле и вносить изменения в командной строке и с редакторами, такими как vi / nano, когда изменения просты. Для более сложных изменений в файле, таких как одновременное редактирование нескольких исходных кодов, я использую BBEdit в Mac OS X. Он может получить доступ к файловой системе с помощью SCP. Я уверен, что есть такой редактор для Windows и Linux. sshfs - это способ удаленного доступа к вашей файловой системе с помощью ssh.
источник
Определенно замазка; Кроме ssh-клиента, есть и SCP-клиент на базе Windows.
источник
Командная строка по ssh для linux (поскольку у них даже не установлен X11) и смесь ssh и ARD для моих компьютеров Apple.
Обратите внимание, что я никогда не использую Apple Remote Desktop для передачи файлов, потому что AFP через TCP смехотворно медленен ; Я просто использую
scp
.источник
Если вам нужен удаленный графический доступ, вы наверняка захотите настроить VNC.
Если вы хотите редактировать свои файлы удаленно через SSH, у вас есть несколько вариантов:
mc
) для перемещения ваших файлов вперед и назадПосле того, как вы отредактировали свой файл, просто используйте SSH, например, чтобы начать компиляцию.
Еще одна вещь, которую следует учитывать, - это использование системы контроля версий. bzr действительно хорош; Он прост в настройке и прост в использовании. Вы можете работать на одном компьютере, отправить обновление, загрузить обновление на свой сервер, выполнить команды и вернуться, если что-то пойдет не так.
источник
SSH выполняет работу большую часть времени. Изучение доступных инструментов командной строки стоит вашего времени. Если есть инструменты с графическим интерфейсом, которые я хочу использовать, я просто использую VNC .
Для перемещения файлов я обычно монтирую общий ресурс CFIS / SAMBA на свой локальный компьютер.
источник
Для простых изменений SSH и SCP делают свое дело. Если вам нужно внести изменения на большем количестве машин, вы должны взглянуть на систему управления конфигурацией. Он сможет запускать / останавливать службу, изменять содержимое файлов конфигурации и проверять, что ваши системы находятся в известном состоянии.
Я предпочитаю использовать Bcfg2, но Puppet и CFEngine также популярны.
У меня Bcfg2 работает ежечасно на всех моих серверах, хотя его можно запустить и вручную. Существует централизованное хранилище с управлением версиями всех файлов конфигурации системы, поэтому мы можем отслеживать любые внесенные изменения. Система работает очень хорошо и является огромным шагом от входа на серверы вручную и настройки.
источник
Я часто использую Komodo через ссылку SFTP .
источник
Администрирование систем Windows всегда было «тяжелым»: то есть необходима полная оконная среда, которая требует наличия локального или сетевого приложения, такого как удаленный рабочий стол или VNC.
UNIX был спроектирован с учетом работы в сети - поэтому инструменты предназначены для работы по сети, а не для того, чтобы выглядеть красиво. Сервер UNIX никогда не должен настраивать эту оконную среду (обычно X11).
Минималистский интерфейс SSH, wget и vim гораздо более благоприятен для сети - фактически, vi был разработан для работы на модемной линии 300 бод.
Действительно, существуют графические инструменты, которые помогут вам работать с удаленными системами UNIX и Linux (wsp был одним; gvim может быть другим).
Обычный способ администрирования систем UNIX - войти в систему и работать на самой машине. Нет необходимости перемещать файлы, просто редактировать их. Единственное, что нужно помнить, - это убедиться, что конфигурация хороша и проверить ее, где это возможно.
источник
SSH для доступа, scp, если мне нужно передать ограниченное количество файлов. Общие каталоги через SMBFS / SAMBA, если нам ДЕЙСТВИТЕЛЬНО это нужно. Как правило, это пустая трата времени. Некоторые из наших менее компетентных сотрудников * nix используют webmin, заблокированный для доступа к локальной подсети через HTTPS.
источник
Shellinabox
Эмуляция терминала у клиента
Butterfly также является веб-сервером (написанным на python), который поддерживает полнофункциональный эмулируемый клиентский веб-терминал.
источник