
Комментарии 71
мда. что только не придумают виндузятники чтоб не набирать apt get
Есть некоторые сомнения относительно рациональности данного подхода.
Если целевая аудитория - обычные пользователи, то достаточно ли часто они этим занимаются, чтобы нужна была автоматизация.
Например, я - обычный пользователь. Разворачиваю что-то на сервере редко. Для разовой акции меня вполне устроит и ручная установка. Ко всему прочему, если я запускаю написанный не мной скрипт, то я точно должен понимать, что каждая его часть делает. На изучение и проверку скриптов уйдёт время, и по итогу, выигрыша, как такого, не будет или будет, но он будет незначительный.
Стоит ли так усложнять, вот в чём вопрос?
Я думаю Вы не поняли о чём статья. Речь о стандартном ПО, которое устанавливают по-многу раз на разных серверах. Например, установить VPN нажатием одной кнопки, по-моему приятно.
Как уже сказали выше apt зачем что то ещё?
Хорошо, дайте мне одну команду с apt, которая мне установит nginx, certbot, настроит домен, установит SSL сертификат, установит mysql, создаст базу данных.
ansible-playbook playbook.yml
Если мне надо поставить одинаковую(относительно) конфигурацию на многое количество ПК или на один но периодически, а ансамбль избыточен или его установка не желательно то я просто сделаю свой пакет. В зависимостях у него будет: nginx, certbot, mysql. Пост скриптами настроит домен, установит SSL сертификат и создаст базу данных. Я даже меню настройки в этот процесс смогу добавить(Хотя делать этого строго не рекомендую).
Я получу штатный контроль версии пакета, контроль зависимостей и конфликтов.
Смогу создать собственный репозиторий не зависящий от github который может хранится где угодно. Хоть на флешки, хоть на файлопомойки хоть в сети.
Всё это конечно при условии что для этой цели мне будет мало однострочника.
Пост скриптами настроит домен, установит SSL сертификат и создаст базу данных.
Какими скриптами? Чем bash не подходит на роль этих "скриптов"? По-моему он как раз для этого и придуман, это его прямое назначение.
я просто сделаю свой пакет
Сомневаюсь, что это будет просто. В статье прямым текстом написано кто целевая аудитория данного способа. Ещё раз отдельно цитирую:
Целевая аудитория: обычный пользователь, не программист или системный администратор.
Чем bash не подходит на роль этих "скриптов"?
А там и будут теже самые bash скрипты
Сомневаюсь, что это будет просто.
Не сложнее чем написать такой велосипед.
Собственно сам пакет deb собирается элементарно.
Собственно мне как то надо было lamp поднять для разработки на 4 ПК с готовой бд и тестовым virtualhost с самопотписанным сертификатом. Пакет за обед сделал.
А там и будут теже самые bash скрипты
То есть запускать bash-скрипт напрямую - плохо. А через apt - круто. Спасибо за Ваше мнение.
Я накидал в голове довольно длинный комментарий с подробным ответом на Ваш вопрос. Для заполнения лагун и для более продуктивного понимания решил перечитать Вашу статью. Статья оказалась изменена. По прочтению этой измененной статьи я понял что мой расширенный и подробный комментарий надо увеличивать еще. Но это не надо не мне не Вам. Поэтому отвечу кратко.
То есть запускать bash-скрипт напрямую - плохо. А через apt - круто.
Не круто, а разумно. Это позволит избежать многих ошибок и проблем. Не выстрелить себе в ногу. Упростить сопровождение и bash код. Ответы на вопрос каких ошибок и как именно Вам в рог не уперлись. А если все же интересно Вы можете почитать соответсвующию литературу.
К тому же Вы изменили задачу и мой пример под Вашу измененую задачу не подходит.
Теперь немного ликбеза. Ansible это система управления конфигурациями. Простыми словами у Вас условно 20 компьютеров на которые Вы хотите поставить некое ПО сконфигурировав его соответвующим образом, впослетствии Вы планируете следить и изменять их. Она подходит под Вашу изначальную задачу, но не подходит под ту задачу которую Вы описали в измененной статье.
Теперь про 4 пункт. Ответ на этот вопрос требует тоже довольно длинного комментария, но при этом он давно разобран в сети. Поищите. Но все же Вы просите конкретный ответ. Ну что же. Вы можете ответить на какие компромиссы по шел ИИ при установки ПО? Надежен ли сгенерированный пароль? Как откатить изменения внесенные Вашим скриптом обратно?
Про Wordpress четко под Вашу задачу https://habr.com/ru/companies/slurm/articles/524660/
Действительно большой комментарий, но информации в нём очень мало.
но не подходит под ту задачу которую Вы описали в измененной статье.
Вы про что? Я только исправил грамматические ошибки, обновил список требований к скрипту и добавил дополнения внизу с соответствующими отметками.
Упростить сопровождение и bash код.
Это круто. Оказывается bash-скрипт, который запускается через apt проще сопровождать :) Но опять без конкретики.
Вы меня не так поняли. Большой комментарий планировался вместо этого кусочка текста. Как раз с примерами и т.д.
Не круто, а разумно. Это позволит избежать многих ошибок и проблем. Не выстрелить себе в ногу. Упростить сопровождение и bash код.
Но как я написал выше, оно Вам не надо.
Так что я изменил в статье, из-за чего Вы передумали публиковать свой "большой" комментарий? (тот тоже не маленький)
Но как я написал выше, оно Вам не надо.
Не надо за меня решать, пожалуйста.
Хорошо.
Для начала оговорюсь еще раз, это работает:
Если мне надо поставить одинаковую(относительно) конфигурацию на многое количество ПК или на один но периодически, а ансамбль избыточен или его установка не желательно
Соответсвенно в Вашу задачу, судя по статье, не попадает.
Например: у меня два компьютера на работе и 3 дома. Я решил разработать проект php. Но для этого мне надо:
Установить:
Апатч
MySQL
PHP
Настроить vhost
Поставить самоподписанный сертификат
Создать пустую БД в которую пойдут миграции и т.д.
Изменить файл host что бы я мог зайти по доменному имени.
Тут стоит сказать что git и т.д. уже стоит.
Что я делаю:
Настраиваю всё это на рабочем ПК.
Создаю папку
Внутрь этой папки я скидываю файл виртуального хоста, сертификаты, файл создания БД, патч файлы для /etc/host
При чем патч файла два для добавления записи и удалении ее.
Получаю я эти файлы просто скопировав файл и добавив нужную запись. А дальше diff. Файл sql я дерну из истории или бекапну базу.
В нашей папки будет каталог DEBIAN. В нем содержатся файлы для пакетного менеджера. В файле DEBIAN/control помимо прочего я пропишу Depends, просто cписок пакетов через запятую, которые требуются для установки этого пакета. Тут будут прописаны апатч и т.д. Также Pre-Depends. это список пакетов, которые требуются в процессе установки этого пакета.
тут будет patch. Смогу прописать например и Conflicts. То с чем пакет будет конфликтовать. Тут много еще чего на разные случае жизни. В DEBIAN/dirs прописываю необходимые папки, включая папку проекта.
DEBIAN/md5sums защитит от повреждения пакета, я буду уверен что файлы не изменились из-за ошибок на диски или глюков сети.
DEBIAN/(preinst|postinst|prerm|postrm): скрипты установки
DEBIAN/preinst Выполняется перед установкой пакета. Нам он не интересен.
DEBIAN/postinst Выполняется сразу после установки пакета
Каким он будет:
a2ensite наш_файл_vhost.conf
patch /etc/host наш_файл_path_для_добавления_записи
mysql ... # Тут стандартный код добавления пользователя, создания бд и т.д всего
# рестарт апатчаDEBIAN/prerm Выполняется непосредственно перед удалением пакета
тут делаем обратное. Удаляем БД и пользователя, опять патчим host отключаем vhost.
те же три строчки кода.
Так же в deb пакетах есть система конфигурации. Вы можете добавить запрос пароля, имени и т.д. Но тут нам это не надо.
Ну если с deb дистрибутивами работали вы эти окошки видели.
Далее собираем dpkg-deb папку в пакет. Кидаем на флешку в репозиторий и обновляем его.
Все это в свое время я сделал быстрее чем писал этот комментарий.
Что мы получаем в итоге. Простым apt install мы установим наш пакет. Простым apt remove его удалим. При этом удалятся только те пакеты которые нашем пакетом поставлены. Если например апатч стоял он и продолжит стоять. Если мы заметим ошибку в пакете, например забыли указать в зависимостях одну из библиотек php, мы просто обновим пакет в репозитории а дальше сделаем update на остальных ПК. Нам не нужно специально как то готовить дистрибутив к установке пакета.
А теперь представте размер bash скрипта который сможет повторить всё это.
Спасибо за подробности. Тут я с Вами согласен. Свой какой-то сложный проект я бы тоже не стал обновлять через bash-скрипт. Но если какой-то инструмент не подходит для какой-то одной задачи, это не значит, что он плохой. В статье есть "Обновление 1", там есть пример.
Также в статье есть это (не было отредактировано):
Целевая аудитория: обычный пользователь, не программист или системный администратор.
Про Wordpress четко под Вашу задачу
Увидел в статье ссылку на bash-скрипт. Чем он лучше моего скрипта?
Вы можете ответить на какие компромиссы по шел ИИ при установки ПО? Надежен ли сгенерированный пароль? Как откатить изменения внесенные Вашим скриптом обратно?
Вы критикуете, Вам и отвечать на этот вопрос. Я проверил - работает. Посмотрел код - он меня устроил.
Кстати а зачем Вам скрипт установки phpmyadmin? Его нет в репах убунты?
П.С.
Это не риторический вопрос, не сарказм и не насмешка. Мне реально интересно
Заходим в скрипт и смотрим сколько там строчек:
https://github.com/andchir/install_scripts/blob/main/scripts/mysql-phpmyadmin.sh
Это всё бесполезная работа? Тогда дайте способ проще.
Если скажете "sudo apt install phpmyadmin", тогда попрошу записать видео (желательно с использованием nginx).
Как откатить изменения внесенные Вашим скриптом обратно?
Так же, как после применения всех других bash-скриптов - никак. Пойдите в комментарии к той статье, на которую давали ссылку выше и предложите автору bash-скрипта добавить такой функционал. Я думаю он посмеётся. Подобный функционал очень сложно реализовать, т.к. после применения скрипта могут быть установлены другие компоненты, которым нужен софт, который установил скрипт. Делать откат я бы не рекомендовал никому (либо реализовать сложный функционал).
Давайте Вы, для начала нормально ответите на мои предыдущие вопросы, а то меня по прежнему съедает любопытство. Возможно я их не совсем корекно сформулировал, поэтому повторюсь.
Есть ли пакет phpmyadmin в ubuntu? Коректен ли этот пакет или имеет какие то мешающие Вам особенности?
Для какой цели вы устанавливаете phpmyadmin. Почему именно так. Почему не более класическая схема?
Это всё бесполезная работа? Тогда дайте способ проще.
Я не могу дать Вам способ попроще, как и не могу ответить на вопрос бесполезная ли работа скрипта так как не знаю ответа на предыдущие два вопроса. Собственно для возможности дать Вам способ по проще я и задал эти вопросы.
Почему не более класическая схема?
Сначала Вы ответьте что это за "классическая схема". Выше я намекнул, что одного "sudo apt install phpmyadmin" в большинстве случаев не достаточно.
Обычно phpmyadmin не должен быть виден во вне. Поэтому вешается на localhost. А подключение к нему идет через ssh тунель.
А ещё я могу открыть доступ только для моего IP:
allow 123.123.122.123; # мой IP
deny all;Плюс добавить Basic Auth. Это не "обычно"?
Можете, только зачем перемудрять? Если допустим Вам понадобится зайти с телефона или из гостиницы.
Это всё хорошие советы, но зачем они здесь? Почему нельзя завести issue на github?
Я чесно не знаю как с вами общаться. Вы не можете ответить на два простых конкретных вопроса. А чём я должен завести issue? Я проявил любопытсво, так как сходу не смог придумать зачем извращатся на 600 строк. Ожидая услышать что то типа: делаю так потому потому то, задача такая то, поэтому по другому не как. В ubuntu пакет не подходит по тому то по тому то. Прочитал бы, расширил понимания этого мира. И тогда бы может завел issue или вопще пулреквест кинул бы. Это было бы конструктивное общение. Вместо этого Вы ведете себя как подросток и делаете мне мозг. Выдергиваете слова из контекста, выключили голову и отвечаете как болванчик. Вместо спокойного ответа на вопросы истерите. Зачем мне это? За сим прощаюсь.
делаю так потому потому то, задача такая то, поэтому по другому не как
Вот видите, Вы всё поняли. Если такой ответ не устраивает, напишите почему и дайте свой способ.
facespam. Вы не можете ответить какую задачу пытаете решить. Какой свой способ я могу Вам дать если задачи не знаю?
Тут я не правильно прочитал комментарий, извиняюсь. Но задача стандартная для phpMyAdmin.
Так. Давайте попробуем следующим образом. Выберете правильный вариант ответа:
Вы покупаете VDS под конкретный проект. Например статический сайт на Hugo. Но с небольшими динамическими элементами(комментарии, форма заявки). Сайт не имеет закрытой части. Длительная поддержка не планируется. PhpMyAdmin нужен на постоянной основе на этапе разработки. После окончания разработки все ключи передаются закащику. PhpMyAdmin остается.
Вы покупаете VDS под конкретный проект. Например динамический сайт на Symfony. Сайт имеет закрытую часть. Длительная поддержка не планируется. PhpMyAdmin нужен на экстренный случай на этапе разработки. После окончания разработки все ключи передаются закащику. PhpMyAdmin удаляется.
Вы покупаете VDS под конкретный проект. Планируется длительная поддержка. После окончания разработки все ключи остаются у Вас.
Вы покупаете VDS для множества целей. Предполагается частое переконфигурирование VDS. Частое удаление и установка PhpMyAdmin.
Другое.
Ansable не? Попросите ваш ИИ написать плейбук. Готово.
Очень полезная статья. Крайне полезная.
Если тренд сохранится - за пенсию можно не париться
PS. "Верну сервер взад в рабочее состояние. Долго и дорого".
Здравствуйте. Скажите пожалуйста, а можно ли добавлять свои скрипты? Например мне нужно 12 своих разных скриптов. Как это можно сделать простому пользователю, не программисту? Какие еще возможности для автоматизации возникают, потенциально на что можно масштабировать ваш скрипт?
Вы можете создать issue с информацией о Вашем ПО в репозитории по ссылке в статье, а я создам bash скрипт для него (через ИИ). Но ваш репозиторий должен быть открытым. Или issue для любого другого ПО, которое часто устанавливаете.
Какие еще возможности для автоматизации возникают, потенциально на что можно масштабировать ваш скрипт?
Пока всё зависит от конкретного ПО, которое нужно устанавливать. Сам установщик максимально простой и хочу его таким оставить :)
Ansible, puppet, chef, salt, rudder и так далее: "Да, да, пошли мы нах@р. Наконец-то кто-то придумал как вернуться на 15 лет назад к bash-портянкам."
Первая строчка этой статьи для Вас. Разве bash уже умер? :) Для использования Ansible я должен его установить, я так же должен знать как он работает. Для способа, который описан в статье, этого всего не нужно.
Открываю репозиторий https://github.com/XTLS/Xray-install, вижу там bash скрипт. Вот же неандертальцы какие :)
Сюрприз! Ансибл не нужно устанавливать на целевой хост. Достаточно иметь его на одной рабочей станции. Хотя - вот вам идея дальнейшего развития вашего "чуда" - написать гуи устанощик ансибла баш скриптами )
Сюрприз! Ансибл не нужно устанавливать на целевой хост.
Я в курсе, но что это меняет? Кроме установки я ещё должен изучить как он работает.
Вот здесь специально для Вас:
https://github.com/andchir/install_scripts/blob/main/comparison_ru.md
развития вашего "чуда" - написать гуи устанощик ансибла баш скриптами )
"Классная" идея, вместо того чтобы юзеру дать одну строчку для запуска, я должен сказать ему "сначала запусти этот скрипт для установки Ansible".
Так это по сути только по vpn. Ни тебе nginx, apache, php, docker, node, redis и прочего. Просто очередной скрипт авто установки xray. Зачем такое название у статьи тогда?
Где в тексте про VPN? По ссылкам тоже полезно ходить, они не просто так. В репозитории есть список готовых скриптов.
Вот именно, что в тексте про ПО и не слова о впн. А в репе установщик xray и по сути все)
Извините, но у Вас что-то со зрением. Например, тут есть ещё PocketBase, FileBrowser Quantum, PostgreSQL + Mathesar... И это только начало.

А вот из реально нужного что? Веб серверов нет, конфигов к ним авто нет. Накой тогда все эти sql? Зато 2 вида впн и чат)
Ответ есть в статье. Даже перед катом. Хотите ещё? Тоже уже отвечал на это.
Да понятно все. Чисто под безруких заточен быдло скрипт для установки впн. Остальное тут никому не нужно. Ни один админ или разраб этим ставить не будет, а простому юзеру не нужны sql сервера и файловый менагер
Ни один админ или разраб не использует bash скрипты? :) Это "ценный" комментарий.
Я написал не будет использовать этот скрипт, читать учимся
Какой "этот"? Чем эти скрипты отличаются от других скриптов условного админа, который хочет автоматизации?
Тем, что смысла в них нет. Ставить руками условный nginx потом твоим скрипом postgresql, смысл? Забей, наслаждайся трудом своего ии)
Эта статья новогодний прикол?
Это новая реальность - сИИсадмин
Нет, это называется ИИ-фобия. Вы даже не смотрели результат, но уже его осудили :)
Вам накидал минусов за то, что вы придумали велосипед - но на треугольных колесах, но продолжаете упорно рассказывать как это полезно.
Вам удобно - пользуйтесь. Вероятно ваши родители и друзья захотят вас похвалить, но тащить вашу мазню, не на мамин холодильник, а на выставку - наивно.
Автоматизированный установщик ПО на Linux сервере