Рейтинг:-1

«Запомните» команды CLI, которые вы запускали для сервера

флаг cn

Предположим, у вас есть сторонняя программа, работающая на сервере.

Чтобы настроить его, вы входите в систему, применяете некоторые команды CLI и снова выходите.

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

Это подвержено ошибкам.

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

Итак, после этой длинной истории:

Есть ли правильный способ «записать» запущенные вами команды, чтобы вы могли запускать их и одновременно документировать запуск?

флаг in
Вот для чего нужно управление конфигурацией (например, puppet). Если кукла вам не подходит, попробуйте альтернативы.
J Fabian Meier avatar
флаг cn
@GeraldSchneider Но разве для этого не требуется, чтобы поставщик или, по крайней мере, сообщество предоставили модуль для этой программы? Кроме того, это, вероятно, также означает, что вы не можете просто запустить команды из руководства, а должны выяснить, как работает конфигурация в Puppet, Ansible, Chef, любом модуле...
флаг in
«Но разве для этого не требуется, чтобы производитель или, по крайней мере, сообщество предоставили модуль для этой программы?» — Не совсем так. Все они предоставляют метод для запуска произвольных команд. Вам нужно только создать свой рецепт, сборник пьес, как бы они это ни называли. Возможно, вы даже поймете, что некоторые модули упрощают задачу, чем конвейерная обработка 5 инструментов, пока вы не получите результат.
J Fabian Meier avatar
флаг cn
@GeraldSchneider Но, AFAIK, разве эти сборники пьес не основаны на идее, что все идемпотентно и может запускаться снова каждый раз? Обычно этого трудно добиться.
user9517 avatar
флаг cn
Мир управления серверами изменился. Если вы настраиваете сервер, используйте доступные инструменты управления конфигурацией, вы знаете, что это имеет смысл.
J Fabian Meier avatar
флаг cn
@ user9517 На самом деле, многие серверные программы по-прежнему используют графический интерфейс в качестве стандартного инструмента для их настройки. Я уже счастлив, что могу делать все в командной строке. Поэтому, хотя я думаю, что вы правы в отношении распространенных платформ, таких как, например. JBoss, для других инструментов он другой.
user9517 avatar
флаг cn
И эти инструменты с графическим интерфейсом будут хранить свою конфигурацию в файле где-то, которым можно управлять с помощью инструмента управления конфигурацией. Я не думаю, что вы занимаетесь реальным управлением сервером.
Рейтинг:3
флаг jp

Если вы хотите сделать это по-старому, вы можете использовать сценарий(1) для записи вашего сеанса.

флаг cn
Bob
Теперь это старая школа. Просто из любопытства, что происходит, когда вы используете `sudo -i` или `sudo su -`, то, что происходит с повышенными привилегиями, также записывается?
флаг jp
@Bob, да, он будет записывать все, включая привилегированные подоболочки с `sudo`/`su` и даже интерактивные программы, такие как `vi`. Но с интерактивными программами вывод скрипта будет в основном нечитаемым, поэтому вам нужно будет использовать `scriptreplay` (который требует, чтобы время записывалось `script`).
Рейтинг:0
флаг cn
Bob

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

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

И хотя это кажется простой проблемой, и первый подход к длинному списку всех команд, которые были введены для достижения текущего состояния, кажется хорошей идеей, после некоторого размышления вы, вероятно, понимаете, что такой список тоже не лучшее решение. Этот список, вероятно, также содержит такие шаги, как «попытка», «ошибка», «сбой», «вернуться» и «попробовать что-то еще», «опечатка», «повторить снова» и т. д., которые вы не обязательно хотите или должны повторять.

Википедия предоставляет хороший обзор нескольких инструментов, созданных людьми для решения этой проблемы: https://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software

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

J Fabian Meier avatar
флаг cn
Я на самом деле просто хочу длинный список команд. Это то, что описано в мануале. Написание плейбука, рецепта, чего бы то ни было, означает, что я добавляю дополнительный уровень сложности: я, вероятно, не могу просто запускать команды из руководства, потому что они могут быть не идемпотентными, вместо этого я должен либо полагаться на плейбуки сообщества (которым я могу доверять или не доверять им). поступай правильно) или напиши что-нибудь сам.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.