Ответ 1
Сценарии оболочки не так уж плохи, если вы их работаете так, как вам нужно.
Люди рекомендуют другие инструменты (например, CFEngine
, Puppet, Chef, Ansible и все остальное) по различным причинам, некоторые из которых:
- Тот же набор причин, по которым люди используют такие инструменты, как
make
вместо реализации сборки системы со сценариями. -
Idempotency: качество, при котором взятое гарантирует, что оно может быть безопасно повторно запускать любое количество раз, и при каждом запуске он либо дойдет до желаемого , или оставаться там, или, по крайней мере, приближаться к нему в//сходящимся//способом.
Конечно, вы можете писать сценарии, чтобы конечные результаты были идемпотентны:
# Crude example grep myhost /etc/hosts || echo '1.2.3.4 myhost' >> /etc/hosts
Но это намного лучше с помощью идемпотентных инструментов.
-
Сценарии оболочки обязательно. Такие инструменты, как Chef/Ansible/Puppet, являются декларативными. В общем, декларативное приводит к повышению производительности, учитывая некоторый порог масштаба.
-
DSL убирает некоторую власть, но затем они дают вам порядок, чистоту и другие виды власти. Мне нравится сценарий оболочки, но я тоже люблю Ruby, и люди-кукольники любите свой язык! Если вы все еще думаете, что оболочка - это путь, потому что вам нравится это больше, эй, у тебя тогда нет проблем.
-
[ADDED] Перераспределяемые, повторно используемые пакеты. Ruby имеет драгоценные камни, Perl имеет CPAN, Node имеет npm, Java имеет maven - и все языки имеют свои собственные соглашения о том, как многократно использовать исходный код должен быть упакован и распространен в мире.
Сценарии оболочки не работают.
У шеф-повара есть кулинарные книги, которые следуют соглашениям и могут быть импортированы почти одинаково вы импортируете драгоценный камень в свое рубиновое приложение, чтобы придать вашему приложению некоторые новые возможности. У кукол есть марионетка и его модули, у Джуджу есть прелести (они довольно близки для сценариев оболочки, чтобы вы могли быть заинтересованы).
-
Инструменты действительно помогли им! Я был жестким shell-скриптом, и все же, но использование шеф-повара позволяет мне вернуться домой раньше, хорошо выспаться, остаться под контролем, быть переносимым по всей ОС, избегать путаницы - ощутимые преимущества, которые я испытал после отказавшись от крупномасштабных серверных сценариев.