Вопрос: Как вы считаете, что вы на производственной системе?


У некоторых из нас в моей компании есть root-доступ на производственных серверах. Мы ищем хороший способ сделать это чрезвычайно ясно, когда у нас есть ssh'd in.

Несколько идей, которые у нас были:

  • Яркий красный запрос
  • Ответьте на загадку перед тем, как получить оболочку
  • Введите случайное слово, прежде чем получить оболочку

Какие методы вы используете для дифференциации производственных систем?


129
2017-10-19 18:21


Источник


Есть ли способ научить людей избегать ssh'ing для производственных систем? Если вы все проверили в Puppet, например, вам нужно будет только войти в производственные системы для устранения неполадок. - Alex Holst
Вы разрешаете root ssh доступ к вашим производственным системам ???? !!!!! - symcbean
@symcbean: это не то, что сказал Сионид. Возможно, это означало после SSH в вашей учетной записи пользователя. - Zan Lynx
Этот вопрос становится кандидатом на вики сообщества? - MadHatter
Вы можете сделать это очень ясно, что это производственная система, отключив SSH. Это не может быть более ясным, чем это. - Franci Penov


Ответы:


Красное приглашение - хорошая идея, которую я также использую.

Еще один трюк - поставить большое предупреждение ASCII-art в /etc/motd файл.
Если что-то подобное приветствует вас, когда вы входите в систему, обратите внимание:

 _______ _ _ _____ _____ _____ _____
| __ __ | | | | _ _ | / ____ | | _ _ | / ____ | / \
   | | | | __ | | | | | (___ | | | (___ / \
   | | | __ | | | \ ___ \ | | \ ___ \ / / \ \
   | | | | | | _ | | _ ____) | _ | | _ ____) | / ____ \
   | _ | | _ | | _ | _____ | _____ / | _____ | _____ / / _ / \ _ \


 _____ _____ ____ _____ _ _ _____ _______ _____ ____ _ _
| __ \ | __ \ / __ \ | __ \ | | | | / ____ | __ __ | _ _ / __ \ | \ | |
| | __) | | __) | | | | | | | | | | | | | | || | | | \ | |
| ___ / | _ / | | | | | | | | | | | | | | || | | | , `|
| | | | \ \ | | __ | | | __ | | | __ | | | ____ | | _ | || | __ | | | \ |
| _ | | _ | \ _ \\ ____ / | _____ / \ ____ / \ _____ | | _ | | _____ \ ____ / | _ | \ _ |


 __ __ _____ _ _ _____ _ _ ______
| \ / | / \ / ____ | | | | _ _ | \ | | ____ |
| \ / | / \ | | | | __ | | | | | \ | | | __
| | \ / | | / / \ \ | | | __ | | | | , `| __ |
| | | | / ____ \ | ____ | | | | _ | | _ | | \ | | ____
| _ | | _ / _ / \ _ \ _____ | _ | | _ | _____ | _ | \ _ | ______ |

Вы можете создать такое предупреждение на этот сайт или вы можете использовать figlet  команда.

figlet

Подобно предложению Николаса Смита в комментариях, вы можете придумать что-нибудь с драконами или другими животными, используя cowsay команда.

dragon cowsay

Вместо использования файла / etc / motd вы также можете позвонить cowsay или figlet в .profile файл.


134
2017-10-19 18:36



О, мне это нравится! - Sionide21
Если вы набрали какую-то команду, вы больше этого не увидите. - Nils
Правда, вот тут красная подсказка пригодится. - Kenny Rasschaert
На серверах Windows я использую ярко-розовый цвет рабочего стола и яркие желтые заголовки / цветовую схему, так что это действительно действительно очевидно. Это наша версия цветной командной строки - Mark Henderson♦
Я бы хотел добавить ASCII драконы в смесь. - Nicholas Smith


Не совсем то же самое, но этот веб-сайт рекомендует, чтобы ваши разработчики носят розовый сомбреро при внесении изменений в производственные системы. Вероятно, у вас может быть подобное правило для sshing.

developer wearing a pink sombrero


74
2017-10-20 04:58



Ха-ха! +1 потому что я LOL'd. Но серьезно, люди могут искать свои отсутствующие очки, нося их, я сомневаюсь, что шляпа будет служить «постоянным напоминанием». Кроме того, он ничего не помогает, чтобы вы помнили, какое именно окно. - Felix Dombek
Да, вам придется изменить свой процесс: 1) Объявить желание отредактировать производство. 2) Выйдите из сомбреро и выключите все остальные окна. 3) Делайте материал, пока все смотрят. 4) Выйдите из сеанса и удалите сомбреро. - Aric TenEyck
«2) Выйдите из sombrero и закройте все остальные окна« Это не будет работать в моей компании, так как это второй шаг всех наших SOP. Шаг 1, конечно, «включает свет», потому что, закрыв окна, в этом офисе может стать довольно темно. - Parthian Shot


Самое большое, что я использовал, - это дискретная схема именования, в которой прод-системы называются явно отличными от экземпляров test / dev. Это приводит к тому, что приглашение стиля «Имя пользователя @ Имя хоста:» заметно отличается. И очевидным я имею в виду больше, чем просто разные слова, разные форматы:

пример: PRD-WEB001 vs DEVEL-BOB-WEB001

Для этого есть несколько вещей:

  • Дополнительный загиб блок делает его набором из трех вместо набора из двух.
  • Первый из множества - другая длина.
  • Общая длина имен значительно отличается, что делает интервалы между командами отличными друг от друга и другим текстом в окне.

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

По моему опыту, вы хотите что-то, что является постоянным напоминанием о том, где вы находитесь. Логические методы, такие как загадки, хороши около 10 секунд, пока вы не забудете, какое именно окно. Все, что требуется, - это сделать ls в неправильном каталоге для прокрутки зловещего входа-баннера вне поля зрения, похороните окно терминала в окне браузера, а что-то погубите, alt-tab вернется в неправильное окно, и наступит хаос. Лучше всего иметь некоторую постоянную визуальную метку, как существенно отличающуюся командную строку.


51
2017-10-19 18:33



Это хорошо работает для базовых систем, но как только вы меняете dev- * на prod- * devs стоны и стоны, поскольку половина их ссылок перестает работать (независимо от того, сколько раз вы делали это раньше), а иногда и сама система работает на половину работы, пока вы не исправите все многочисленные ссылки на старое имя в файлах конфигурации. Особенно с использованием проприетарного программного обеспечения, и DNS-псевдонимы помогают только так. Хуже того, легко забыть подсказку при переключении окон. - SilverbackNet
Разработчикам необходимо создать настройки, которые работают в dev / test / staging / production (вот что я делаю, но это еще одна история). Для рабочего «красного приглашения» для bash (сложнее, чем кажется), см. Мой ответ на serverfault.com/a/479718/79266 - RichVel


Одна вещь, которую вы должны иметь в виду, это то, что это должно быть постоянным напоминанием, а не только индикатором во время входа в систему. Очень часто у кого-то будет несколько оболочек, работающих одновременно на разных вкладках и перемещающихся между ними. Некоторые будут dev, некоторые производства. Поэтому, когда вы используете команду, вам нужно иметь индикатор в этой точке. Таким образом, наличие специального приглашения - лучший способ, по моему опыту, с измененным заголовком / вкладкой, являющимся хорошим дополнением к этому, чтобы легко найти нужное окно / вкладку.

Поэтому я бы рекомендовал иметь цветное приглашение (красный - очевидный выбор) и все шапки для имени хоста, с аналогичным поведением для пользователя (привилегированное или непривилегированное) в качестве приглашения. Некоторые примеры:

colored prompts example

Обычно что-то вроде

set prompt =  "%{\033[1;44m%}`whoami`@`hostname -s`#%{\033[0m%} "` 

в файле запуска оболочки. Это для синего. Заменить 44 с 41 красный красный, и 42 для зеленого. Также доступны другие цвета и дикие узоры,


38
2017-10-19 21:26



Для рабочего «красного приглашения» для bash (сложнее, чем кажется), см. Мой ответ на serverfault.com/a/479718/79266 - также показывает ветвь git, усеченный текущий каталог и т. д. - RichVel


Это мои предложения:

1) Убедитесь, что большинство команд (rm, chown, chmod, /etc/init.d/*) в рабочей среде требуют доступа sudo

2) Используйте PS1 / PS2, чтобы указать, что пользователь находится на сервере Prod

bash-3.2$  export PS1="[\u@\h \W]\$ "

Это покажет командную строку как

[sridhar@prodappserver901 conf]$

3) Если вы используете клиенты Putty / SSH, вы всегда можете настроить уникальный цвет фона / профиль, чтобы выделить производственные серверы.


14
2017-10-19 18:50



# 1 - интересная идея, но непрактичная, потому что скрипты, работающие как пользователи демонов, возможно, должны использовать rm, chmod и т. Д. - Zan Lynx


Просто подумайте, что ваши второстепенные и третьи идеи помогают во время первоначального соединения, но не имеют значения, когда вы открываете несколько терминалов и переходите от одного к другому. Идея sysadmin1138 использовать именование хороша, когда ее можно применять, но есть много случаев, когда этого не может быть.

Единственное, что мне показалось действительно полезным, это цветное приглашение. Мне нравится зеленый для dev / testing, красный для производства и синий для машин в DMZ. Таким образом, даже если у меня есть две машины с одинаковым именем (в разных сетях), например, при подготовке сменной машины, я все же могу легко сказать, на какой из них я нахожусь.


13
2017-10-19 21:16





Красное / специальное командное сообщение хорошее. Еще одна вещь может заключаться в более быстром автоматическом выходе на эти машины с использованием переменной TMOUT. Если вы открыли много окон, производственные будут быстрее уходить.

Это должно привести к другому поведению:

  1. развивать
  2. Контрольная работа
  3. Внесите свои изменения на промежуточном сервере
  4. Только тогда сделайте быстрый тире для производства и разверните его (точно так же, как вы сделали это на промежуточном сервере)

11
2017-10-19 19:06