Все любят открытый исходный код:)
Почему? `Потому что это бесплатно. Это полезно. Это гибко. И иногда это единственное, что работает, просто потому, что сообщество, разработанное решения с открытым исходным кодом, уже противоречило проблеме, с которой вы только что столкнулись, и многие великие умы собрались вместе, используя силу открытого исходного кода, чтобы создать отличное специальное решение.
В этом сообщении я собираюсь обсудить один конкретный инструмент с открытым исходным кодом, о котором не многие техники знают, называемый « Script-Server » от Bugy Анкет
Что это такое?
Script-Server-это интеллектуальный Web-UI (также можно запустить через командную строку), в которой вы можете разоблачить Scripts/Ansible Playbooks в удобной настройке. Из вашего конца не требуется модификации скрипта-вы добавляете конфигурацию для каждого скрипта в сценарий, и он заботится о правильном пользовательском интерфейсе, проверке, выполнении и т. Д. Значение- каждый может использовать его и запустить сценарии (см. Демо ), без необходимости каких-либо технических знаний, ни разрешений, поскольку скрипт выполняется с разрешениями, установленными на бэкэнд, не связанных с разрешениями конечного пользователя.
Это кому?
Если у вас есть сценарии, Ansible Playbooks и т. Д., И вы хотите, чтобы они были доступны для не технологий в вашей компании, тем самым снижая их зависимость от вашей команды IT/System/DevOps-этот инструмент для вас.
Как я начал его использовать?
У коллеги из нетехнической команды (давайте назовем ее Бетти), выполняет ежемесячную задачу (не в фиксированную дату) загрузить Zip Файлы из внешнего местоположения, расстегивают их на конкретном сервере, анализируют статистику и хэши в файлах и отправляют отчет обратно в Бетти.
Как инженер DevOps, одна из моих мантр — автоматизировать простые вещи. Я определил повторяющуюся задачу Бетти как отличного кандидата для автоматизации и создал Ansible Playbook для выполнения этого потока.
Но каждый месяц Бетти открывала билет на JIRA, прося мою команду запустить его, потому что у нее не было разрешений на доступ для запуска Ansible Playbook на ее конце.
Примерно в это же время член команды поделился, что он работал с «Script-Server», инструментом для выявления услуг для нетехнического персонала; Я быстро понял, что этот инструмент может быть отличным способом дать возможность Бетти получить ее отчет самостоятельно и снизить ненужную зависимость от моей команды.
В рамках решения, я предоставил Бетти ссылку на сценарий-сервер (размещен на сервере с моей стороны), и предоставила ей доступ в систему, что дало ей независимость, необходимую для запуска этого процесса (и минимизировал количество Jira Билеты, которые она открыла, в то время как это 😉).
Вот скриншот того, что Бетти увидела после входа в систему и ввода конкретного сценария, который ей нужен (вывод ниже, после нажатия «Выполнить») —
Итак … что делает этот инструмент таким хорошим?
Несомненно, основное значение сценариста состоит в том, что он завершает сценарий/пьесы с адаптированным образом, что позволяет экспозиции на раскрытия переменных/аргументов, флажок, текст и т. Д. (Дополнительные VAR в Ansible, аргументы в обычных сценариях). По пользовательскому опыту это означает, что на лету в пользовательском интерфейсе запрашиваются аргументы/переменные сценария (таким образом устраняя необходимость пройти сам скрипт, чтобы увидеть, какие аргументы он ожидает получить).
Например, на скриншоте выше показана переменная, называемая «batch_date» (2019–04). «Batch_date» на самом деле является дополнительным VAR, который был определен в Ansible Playbook «Playbook.yml» и связан с сценаристом с помощью сценария с помощью определения имени переменной в Ansible с именем переменной в пользовательском интерфейсе с помощью скрипта конфигурации.
Чтобы проиллюстрировать пример того, как это работает, см. Этот сценарий ниже:
{ «Имя»: «Очень параметризовано», «Script \ _path»: «scripts/parameterized.sh», «Работайте \ _directory»: «./samples», «Описание»: «Этот сценарий ничего не делает, кроме как принять много параметров и печатать их», «Разрешено \ _users»: [ «\*» ], «include»: «$ {простой текст} .json», «Параметры»: [ { «имя»: «простой int», «param»: » — просто \ _int», «Тип»: «int» }, { «Имя»: «Простой логический», «param»: » — просто \ _bool», «Нет \ _value»: True, «Описание»: «Boolean One» }, { «Имя»: «Многократный выбор», «Param»: » — Multiselect», «Тип»: «MultiSelect», «Описание»: «Список многосексуалов», «ценности»: [ «Черная кошка», «Коричневая собака», «Зеленый попугай», «Рыжая лиса» ] } ] }
В этом примере у нас есть скрипт конфигурации, который вызывает скрипт выполнения «scripts/parameterized.sh», скрипт конфигурации определяет аргументы и переменные для скрипта выполнения.
По своей природе, как работает скрипт-сервер, заключается в том, что если ваш скрипт выполнения требует аргументов, вам нужно запустить его с помощью скрипта конфигурации-если он просто выполняет команду без каких-либо параметров, вы можете запустить ее прямо из сценария (на демонстрационном сайте «Colortest» является примером для этого).
Полный файл можно найти Здесь Анкет
Какие сценарии поддерживаются сценаристом?
Сервер сценария является языковым агностиком-он может запускать сценарии на любом языке от Perl, до PHP до Python; Ansible Playbooks также можно запустить (нужно немного обернуть их Но это небольшая цена, чтобы заплатить за льготы). Он поддерживает несколько типов входов или «аргументов» (списки/бесплатный текст/твердый кодирование), которые вы определяете в скрипте конфигурации, чтобы обеспечить гибкость использования сценариев (любые аргументы необходимы через командную строку — они могут быть предоставлены через интерфейс сценария).
Управление пользователями
Script-Server также поддерживает аутентификацию ( Gmail SAML ) и авторизацию, определив, какие пользователи/группы могут получить доступ к каждому «домен» (домен- это область, в которой вы запускаете скрипт. Это может быть единственный сценарий или весь папка Ансибл-игровых книг, если хотите). Пример из Демо -Определите пользователя X, чтобы иметь возможность запускать «калькулятор», но не «Tic-Tac-Toe».
В сессии казнь
Запуск сеанса сценария в браузере является пуленепробиваемой- Он основан на сеансе конечного пользователя, поэтому даже если конечный пользователь закрыл браузер и повторно откроет его- Он/Она увидит, что сессия остается нетронутой, и пробег не был прерван.
Сила сценариста в качестве открытого исходного кода
Даже если вы не выяснили, как этот инструмент можно использовать в вашей компании, или вы столкнулись с некоторыми ограничениями при его реализации на своем конце, создатель инструмента очень отзывчив, так что вы можете открыть проблему GitHub, и вы вы Получите быстрый и эффективный ответ (я могу засвидетельствовать личный опыт, который несколько раз, когда я пропустил определенную функциональность, я открыл проблему на репозитории GitHub Bugy Был отзывчивым на мои вопросы и даже действовал на мои предложения, добавляя функции/функциональность, которые я просил). Вы также можете внести свой вклад в этот проект и сделать этот инструмент еще более мощным и подходящим для большего количества использования.
Подводить итоги
Сообщество с открытым исходным кодом растет. Даже Big Blue признал силу открытого исходного кода в своем недавнем приобретении Red Hat. Рост только делает проекты с открытым исходным кодом лучше и безопаснее — поскольку все больше людей тестируют и исправляют код. Рост сообщества с открытым исходным кодом положительно влияет на нашу профессиональную карьеру на техническом уровне — предлагая различные решения для реализации и на личном уровне, предоставляя способ вернуть сообщество.
Сервер сценария-очень мощный и гибкий инструмент, позволяющий выполнять сценарии и воспроизведения из центрального места, в виде «Легко на глаз» и без необходимости разрешений или предварительного знания того, как работают сценарии, и я Настоятельно рекомендую проверить это.
Оригинал: «https://dev.to/hilafish/script-server-the-open-source-tool-everyone-should-use-or-at-least-know-about-3g6o»