Sparrowdo это инструмент управления конфигурацией, написанный на Perl6 В этом посте я собираюсь показать вам, как можно настроить (обеспечение) Экземпляры Docker от Sparrowdo сценариев.
Установите Perl6.
Есть много способов установить Perl6, вот пара ссылок, с которых вы можете начать:
После завершения установки Perl6 остальные просты, вам нужно установить SParrowdo в виде модуля Perl6:
$ zef install Sparrowdo
Sparrowdo Provisions Live Docker Containers, поэтому вам нужно запустить один. Я собираюсь использовать Bitnami/Minideb-etts , однако вы можете выбрать свой собственный:
$ docker run -t -d bitnami/minideb-extras bash
Если мы проверим наши контейнеры докеров, выход будет что-то подобное:
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 99bc3937ea37 bitnami/minideb-extras "/entrypoint.sh bash" 2 seconds ago Up 1 second determined_montalcini
Как мы видели, нам удалось запустить наш экземпляр докера.
Sparrowdo раскрывает аккуратный DSL Для конфигурации серверов, поэтому мы рассмотрим некоторый DSL Sparrowdo, чтобы показать, как его использовать.
Остальная часть этой статьи будет связана с тем, как можно настроить запуск экземпляров Docker с помощью различных сценариев Sparrowdo.
Мы собираемся покрывать Некоторые типичные сценарии использования.
Воробей
По умолчанию SParrowdo ищет исходный код сценария в файле с именем Sparrowfile
Расположен в текущем рабочем каталоге. Итак, мы собираемся разместить код сценария здесь.
Рассмотрим первый простой использование случая создания пользователей и каталогов.
Создание пользователей, файлов и каталогов
Вероятно, самое часто вы настраиваете свой сервер, так:
user "melezhik"; directory "/var/data/dir-one", %( owner => "melezhik" );
А затем дайте этот сценарий, управляемый Sparrowdo:
$ sparrowdo --no_sudo --docker=determined_montalcini --format=production --bootstrap
Первый пробег будет производить Много выхода , не путайте -потому что это свежий сервер, а Sparrowdo Первая установка подразумевает (*) Sparrow Client Bootstrap на этом сервере (Unfit -Bootstrap
Опция). Это приводит к многим дополнительным операциям.
Второй пробег будет намного быстрее и будет производить много выводов Terser (**):
running sparrow tasks on 127.0.0.1 ... target OS is - ubuntu push [task] create user melezhik OK push [task] create directory /var/data/dir-one OK SPL file /opt/sparrow/sparrow.list is empty get index updates from SparrowHub ... OK set up task box file - /home/melezhik/.sparrowdo//opt/sparrow/task-box.json - OK public@user is uptodate (0.2.1) public@directory is uptodate (0.1.5) running task box from /opt/sparrow/sparrow-cache/task-box.json ... 2017-10-10 10:22:30 : [task] create user melezhik [path] modules/change/ 2017-10-10 10:22:30 : [task] create directory /var/data/dir-one [path] modules/create/
(*) Warrow Client используется в качестве агента Sparrowdo для выполнения сценария, который выполняется в основные задачи воробья
(**) Кстати, Sparrowdo поставляется с параметрами для установки отчетов, пожалуйста, следуйте Документация Анкет
Также часто нужно, когда вы делаете настройку и конфигурацию сервера, так что:
package-install ( 'nano', 'mc', 'ncdu', 'nginx' );
И выход будет:
running sparrow tasks on 127.0.0.1 ... target OS is - ubuntu push [task] install packages: nano mc ncdu nginx OK SPL file /opt/sparrow/sparrow.list is empty get index updates from SparrowHub ... OK set up task box file - /home/melezhik/.sparrowdo//opt/sparrow/task-box.json - OK installing public@package-generic version 0.003007 ... Download https://sparrowhub.org/plugins/package-generic-v0.003007.tar.gz --- 200 running task box from /opt/sparrow/sparrow-cache/task-box.json ... 2017-10-10 10:35:54 : [task] install packages: nano mc ncdu nginx [path] modules/apt-get/ [params] action:install package:nano 2017-10-10 10:36:01 : [task] install packages: nano mc ncdu nginx [path] modules/apt-get/ [params] action:install package:mc 2017-10-10 10:36:53 : [task] install packages: nano mc ncdu nginx [path] modules/apt-get/ [params] action:install package:ncdu 2017-10-10 10:36:59 : [task] install packages: nano mc ncdu nginx [path] modules/apt-get/ [params] action:install package:nginx
Запуск услуг
Услуги являются жизненно важной частью инфраструктуры и конфигурации. Sparrowdo предоставляет желаемое Набор функций Чтобы справиться с этой задачей. Давайте установим веб -сервер NGINX и добавьте его к уровням запуска, а затем запустим его. Сценарий будет:
package-install 'nginx'; service-enable 'nginx'; service-start 'nginx';
И отчет Sparrowdo выглядит так:
running sparrow tasks on 127.0.0.1 ... target OS is - ubuntu push [task] install packages: nginx OK push [task] enable service nginx OK push [task] start service nginx OK SPL file /opt/sparrow/sparrow.list is empty get index updates from SparrowHub ... OK set up task box file - /home/melezhik/.sparrowdo//opt/sparrow/task-box.json - OK public@package-generic is uptodate (0.3.7) installing public@service version 0.001015 ... Download https://sparrowhub.org/plugins/service-v0.001015.tar.gz --- 200 running task box from /opt/sparrow/sparrow-cache/task-box.json ... 2017-10-10 10:42:33 : [task] install packages: nginx [path] modules/apt-get/ [params] action:install package:nginx 2017-10-10 10:42:33 : [task] enable service nginx [path] modules/enable/ [params] os:debian service:nginx 2017-10-10 10:42:33 : [task] start service nginx [path] modules/start/ [params] os:debian service:nginx
BTW Sparrowdo предоставляет некоторые нефте функции Чтобы проверить здоровье служб, поэтому давайте использовать SOME, чтобы проверить доступность Nginx Server:
proc-exists 'nginx'; http-ok;
В этом случае мы меняем -формат
по умолчанию значения, чтобы увидеть более подробную информацию:
$ sparrowdo --no_sudo --docker=determined_montalcini --format=default
running sparrow tasks on 127.0.0.1 ... target OS is - ubuntu push [task] check nginx process OK push [task] run bash: curl -fsSLk -D - --retry 3 127.0.0.1 -o /dev/null ... OK SPL file /opt/sparrow/sparrow.list is empty get index updates from SparrowHub ... OK set up task box file - /home/melezhik/.sparrowdo//opt/sparrow/task-box.json - OK installing public@proc-validate version 0.001003 ... Download https://sparrowhub.org/plugins/proc-validate-v0.001003.tar.gz --- 200 installing public@bash version 0.001006 ... Download https://sparrowhub.org/plugins/bash-v0.001006.tar.gz --- 200 running task box from /opt/sparrow/sparrow-cache/task-box.json ... 2017-10-10 11:26:28 : [task] check nginx process [path] / check by pid file pid found at /var/run/nginx.pid:11114 11114 nginx: master process /usr/ 43:54 ok scenario succeeded ok text match /.*/ ok '11114 nginx: master process /usr/ 43:54' match /.*/ STATUS SUCCEED @ runs bash command 2017-10-10 11:26:28 : [task] run bash: curl -fsSLk -D - --retry 3 127.0.0.1 -o /dev/null ... [path] modules/bash-command/ [params] envvars: ++ test -z ++ bash -c ' curl -fsSLk -D - --retry 3 127.0.0.1 -o /dev/null' HTTP/1.1 200 OK Server: nginx/1.6.2 Date: Tue, 10 Oct 2017 11:26:28 GMT Content-Type: text/html Content-Length: 867 Last-Modified: Tue, 10 Oct 2017 10:37:28 GMT Connection: keep-alive ETag: "59dca2e8-363" Accept-Ranges: bytes ok scenario succeeded STATUS SUCCEED
И, наконец, если эти абстракции высокого уровня недостаточно недостаточно, вы всегда можете выполнить произвольный код Bash, см. Следующий раздел.
Bash Функция позволяет вставить фрагменты кода и выполнять их, есть много способов назвать его и различные параметры, которые вы можете добавить, простая форма — это просто Bash $ Command
, как это:
bash('echo hello world');
SParrowdo — это современные, все батареи включали в себя инструментарий для удаленного настраивания серверов. Как мы видели, это хорошо играет с Docker.
Есть много земли для покрытия, как SSH/SCP Призывы команды, забрать Репозитории Git, население файлов конфигурации по Шаблоны И еще, я бы посоветовал вам углубить детали в Sparrowdo Github Страницы документации или на специальном блоге Sparrowdo — http://sparrowdo.wordepress.com
Как обычно — идеи, комментарии и вопросы приветствуются.
С уважением.
Автор Sparrowdo.
Оригинал: «https://dev.to/melezhik/provision-of-docker-containers-with-sparrowdo-8p5»