Развертывание WordPress с помощью Shipyard в Ubuntu 14.04

Shipyard – это инструмент для управления серверами Docker. Docker – это современная программа контейнеризации. Shipyard позволяет просматривать, какие контейнеры запущены на каждом отдельном сервере, останавливать и запускать старые и создавать новые контейнеры.

После установки инструментом Shipyard можно управлять через графический интерфейс, API или из командной строки. в целом, Shipyard очень прост в настройке и использовании.

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

Требования

Для выполнения руководства нужно заранее настроить сервер Ubuntu 14.04 и установить Docker 1.5.0.

Примечание: Репозиторий Ubuntu содержит устаревшую версию пакета docker.io, потому рекомендуется установить Docker вручную.

Для выполнения приведённых ниже команд нужны права root. Просто войдите в систему как пользователь root.

1: Установка Shipyard

После установки Docker инструмент Shipyard устанавливается совсем просто, поскольку он поставляется как образ Docker. Нужно просто загрузить образы из базы Docker и запустить необходимые контейнеры

Для начала создайте контейнер data volume для хранения базы данных Shipyard. Сам по себе этот контейнер ничего делать не будет – это просто удобный способ размещения всех данных Shipyard.

docker create --name shipyard-rethinkdb-data shipyard/rethinkdb

Итак, необходимый контейнер создан, теперь можно запустить сервер БД Shipyard и связать его с контейнером.

docker run -it -d --name shipyard-rethinkdb --restart=always --volumes-from shipyard-rethinkdb-data -p 127.0.0.1:49153:8080 -p 127.0.0.1:49154:28015 -p 127.0.0.1:29015:29015 shipyard/rethinkdb

Это запустит контейнер RethinkDB (это распределённая БД) и сделает его доступным только для сервера. Чтобы проверить это, попробуйте открыть в браузере http://your_server_ip:49153, и на экране ничего не появится.

База данных Shipyard готова, теперь можно запустить сам инструмент Shipyard. Для этого запустите другой контейнер и соедините его с БД.

docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard

Теперь можно получить доступ к Shipyard на порте 8080.

2: Доступ к Shipyard

Итак, Shipyard запущен. Теперь попробуйте получить к нему доступ. Это можно сделать через графический интерфейс, командную строку (CLI) или API. Начнем с командной строки.

Управление Shipyard из командной строки

Чтобы открыть доступ к Shipyard из командной строки, запустите следующий контейнер:

docker run -ti --rm shipyard/shipyard-cli

Флаг -ti запускает контейнер в интерактивном режиме, опция –rm запускает контейнер как одноразовый (то есть, после завершения работы он будет автоматически удалён).

На экране появится командная строка Shipyard:

shipyard cli>

Чтобы получить список доступных команд, используйте:

shipyard help

Эта командная строка ещё не подключена к установке Shipyard. Чтобы установить то соединение, введите:

shipyard login

Программа запросит URL. Введите:

http://your_server_ip:8080

Далее будет предложено ввести имя пользователя и пароль; эти данные устанавливаются по умолчанию: имя пользователя – admin, пароль – shipyard. После этого вернётся командная строка shipyard.

Итак, вы вошли в Shipyard как администратор. Использование стандартного пароля влечёт огромный риск для безопасности, его необходимо изменить.

shipyard change-password

Выберите и подтвердите надёжный пароль. Чтобы закрыть командную строку Shipyard, нажмите CTRL+D.

Как видите, командную строку Shipyard необходимо каждый раз подключать заново, потому её можно использовать в любой системе, в которой работает Docker.

Управление Shipyard при помощи графического интерфейса

Теперь рассмотрим графический интерфейс Shipyard. Он находится по ссылке:

http://your_server_ip:8080

На экране появится форма авторизации. Введите имя пользователя admin и установленный в предыдущем разделе пароль.

Затем Shipyard покажет вкладку Engines и сообщит, что в кластере Shipyard пока что эта вкладка пуста. В терминологии Docker engine – это хост Docker, способный запускать контейнеры. Сюда нужно добавить все серверы Docker, которыми будет управлять Shipyard.

3: Добавление серверов

Сервер, на котором только что был развёрнут Shipyard, также является хостом Docker, следовательно, можно управлять Shipyard с помощью этого сервера. но сначала нужно добавить этот сервер во вкладку engine.

По умолчанию Docker слушает сокет Unix /var/run/docker.sock, но этот сокет недоступен для Shipyard. Потому нужно настроить Docker для прослушивания запросов на порте. Дл этого отредактируйте конфигурационный файл Docker:

nano /etc/default/docker

Добавьте в него строку:

DOCKER_OPTS="-H tcp://your_server_ip:4243 -H unix:///var/run/docker.sock"

Теперь Docker может принимать запросы на порте 4243 (но только запросы данного сервера). Перезапустите Docker, чтобы обновить настройки.

service docker restart

Это также перезапустит контейнеры Shipyard. Поскольку контейнеры были запущены с опцией –restart=always, они перезапустятся автоматически. Чтобы проверить это, запустите:

docker ps

Если по какой-либо причине контейнеры Shipyard не были перезапущены, перезапустите их вручную:

docker start shipyard-rethinkdb shipyard

Итак, теперь хост Docker настроен должным образом, и его можно добавить в Shipyard в качестве engine. Откройте графический интерфейс Shipyard и перейдите во вкладку Engines. Нажмите кнопку + Add.

Заполните следующие поля:

  • Name: Введите любое имя, которое позже позволит отличить этот сервер от остальных (например, имя хоста).
  • Labels: определяет, какие контейнеры будут работать на этом хосте. В зависимости от того, для чего используется этот сервер, задайте метки production или test.
  • Address: укажите только что открытый порт Docker (http://your_server_ip:4243).

Затем нажмите кнопку Add в нижней части страницы. Shipyard подключится к хосту Docker, подтвердит соединение и добавит хост как engine. После этого вернётся вкладка Engines. Сначала хост будет находиться offline, но через пару секунд это изменится, и вы сможете просмотреть информацию о хосте Docker.

4: Развёртывание контейнеров при помощи Shipyard

Теперь хост Docker взаимодействует с Shipyard. Попробуйте поработать с контейнерами, запустить, остановить и развернуть их.

Откройте графический интерфейс Shipyard и найдите вкладку Containers. В ней перечислены все контейнеры, запущенные на каждом добавленном в Shipyard хосте Docker. В данном случае она покажет три контейнера, два из которых будут запущены.

Попробуйте развернуть новый блог WordPress. Для этого нужно развернуть контейнеры MySQL и WordPress при помощи официального репозитория образов Docker.

Нажмите кнопку + Deploy. Следующий экран позволит настроить контейнер перед развёртыванием. Введите в поля соответствующие данные.

  • Image: введите mariadb. (MariaDB – это открытое ответвление MySQL.)
  • Container Name: введите любое имя, например, mysql-test.
  • Environment: переменные окружения, которые можно использовать, будут указаны в описании образа контейнера. В данном случае это MYSQL_ROOT_PASSWORD=6f23b328e7.
  • Type: определяет тип развёртывания контейнера на нескольких системах. В этом случае введите service.
  • Labels: используется для соединения контейнеров и хостов (engines). Введите метку, указанную ранее в настройках engine.
  • Restart Policy: определяет, нужно ли автоматически перезапускать контейнер в случае ошибки или перезагружать Docker. В этом случае введите no.

Затем нажмите Deploy. Запуск контейнера займёт некоторое время. После этого вернётся список контейнеров, в котором появится только что добавленный mysql-test.

Вот так просто и быстро Shipyard разворачивает контейнеры Docker.

Повторите процесс, чтобы развернуть контейнер WordPress, соединённый с контейнером MySQL. Нажмите кнопку + Deploy и введите следующие данные:

  • Image: wordpress
  • Name: wordpress-test
  • Links: mysql-test:mysql
  • Type: service
  • Labels: Введите метку, указанную ранее в настройках engine.
  • Restart Policy: no.

Чтобы содержимое контейнера WordPress было в открытом доступе, нужно открыть его порт 80. Для этого нажмите на плюс рядом с заголовком Port.

В поле Protocol выберите TCP, поле IP оставьте пустым, в поле Port введите 1234, в Container Port задайте 80.

Затем можно нажать Deploy. На развёртывание контейнера уйдёт некоторое время, после чего новый контейнер wordpress-test появится во вновь открывшемся списке. Более подробную информацию о нём можно получить по ссылке в списке.

В разделе Ports можно видеть, что порт контейнера WordPress 80 публикуется на порт сервера (1234). Как видите, Shipyard представляет эти данные в виде ссылки, что позволяет перейти на публикуемый порт.

Перейдите по этой ссылке. Она откроет мастер установки WordPress. Предоставьте все запрашиваемые данные и авторизуйтесь в WordPress, чтобы просмотреть сайт.

Заключение

Теперь вы умеете развёртывать приложения на хосте Docker при помощи Shipyard!

Docker Registry предоставляет огромнейшее количество приложений. Попробуйте поработать с каким-нибудь из них. К примеру, можно развернуть контейнер Nginx, чтобы обеспечить новый сайт WordPress боле надёжным сервером.

Tags: , , , ,

Добавить комментарий