Развертывание Deis с Rigger на DigitalOcean

Статья от http://deis.io [Deis]

Вступление

Deis - это частная платформа с открытым исходным кодом как услуга (PaaS), которая упрощает развертывание и управление приложениями на ваших собственных серверах. Используя технологии, такие как Docker и CoreOS, Deis предоставляет функции рабочего процесса и масштабирования, аналогичные Heroku, для выбранного вами хостинг-провайдера. Deis поддерживает приложения, которые могут работать в контейнере Docker, а Deis может работать на любой платформе, поддерживающей CoreOS.

Это руководство проведет вас через новый и улучшенный процесс обеспечения Deis с помощью нового инструмента проекта Deis под названием Rigger.

предварительный просмотр

Если у вас мало времени, эта ускоренная запись terminal (всего около минуты!) Покажет, что мы будем делать в оставшейся части этой статьи:

asciicast

Предпосылки

Rigger разработан для управления собственным управлением зависимостями, но вам нужно будет настроить несколько вещей перед тем, как снабдить его кластером Deis. Чтобы следовать этому руководству дома, вам понадобится:

  • Персональный токен DigitalOcean для доступа к API DigitalOcean (см. Https://www.digitalocean.com/community/tutorials/how-to-use-the-digitalocean-api-v2[How для генерации токена личного доступа]) (* токен должен быть для чтения-записи *)

  • Пара ключей SSH (см. Https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets[Как использовать ключи SSH с каплями DigitalOcean])

Все команды в этом руководстве могут выполняться на локальной рабочей станции Mac или Linux (были протестированы OS X> = 10.10 и Debian / Ubuntu). Их также можно запускать на капле, но это не обязательно.

Утилиты + zip +, + make + и + git + должны быть установлены на любую рабочую станцию, которую вы используете для обеспечения кластера Deis с помощью Rigger.

Например, если вы используете систему Ubuntu, установите их с помощью следующей команды:

sudo apt-get update
sudo apt-get install zip make git

Утилита + git + используется в статье для загрузки Rigger и примера приложения. Утилиты + zip + и + make + используются сценарием обеспечения Rigger.

Если вы работаете в Mac OS X, вам также необходимо согласиться с лицензионным соглашением XCode, чтобы использовать git:

sudo xcodebuild -license

Шаг 1 - Установка Rigger

Чтобы установить Rigger, сначала используйте + git + для его загрузки:

git clone https://github.com/deis/rigger.git

Перейдите в созданный каталог:

cd rigger

Затем выполните следующую команду:

./rigger

При первом запуске вы увидите следующее:

OutputDownloading rerun from GitHub...

В конце вывода вы увидите список доступных команд:

OutputAvailable commands in module, "rigger":
checkout: "checkout the Deis repo with version: $VERSION into directory: $DEIS_ROOT"
configure: "initialize a rigger varsfile to use with future commands"
  [ --advanced]: "configure all the nitty gritty details of the infrastructure and Deis deployment"
  [ --provider <>]: "which cloud provider to use to provision a Deis cluster"
  [ --version <>]: "choose what version of Deis to deploy"
create-registry: "Create a local dev registry"
deploy: "Install and Deploy Deis"
destroy: "destroy all infrastructure created by the provision step"
provision: "provision new infrastructure and deploy Deis to it"
  [ --cleanup]: "destroy cluster after action"
setup-clients: "download and stage deisctl and deis clients for your own use"
shellinit: "show the current sourceable environment variables (useful for eval-ing)"
  [ --file <>]: "use a specific file"
shell-reset: "an eval-able output that unsets variables that have been injected by rigger"
  [ --file <>]: "use a specific file"
test: "run a test suite on the provisioned Deis cluster"
  [ --type <smoke>]: "provide a type of test to run"
upgrade: "Tests upgrade path for Deis"
  [ --to <master>]: "Define version of Deis to upgrade to"
  [ --cleanup]: "destroy cluster after action"
   --upgrade-style <graceful>: "choose the style of upgrade you'd like to perform"

Шаг 2 - Настройка Deis Deployment

Чтобы настроить развертывание Deis для использования DigitalOcean в качестве поставщика и конкретной версии Deis, все, что нам нужно сделать, это позвонить:

./rigger configure --provider "digitalocean" --version "1.12.0"

Затем Риггер задаст вам несколько вопросов. Все будет выглядеть так:

Output-> What DigitalOcean token should I use? DO_TOKEN (no default)

You chose: ******

-> Which private SSH key should be used? SSH_PRIVATE_KEY_FILE [ /Users/sgoings/.ssh/id_dsa ]
1) /Users/sgoings/.ssh/id_dsa
2) ...
#?
You chose: 1) /Users/sgoings/.ssh/id_dsa

... output snipped ...

Enter passphrase for /Users/sgoings/.ssh/id_dsa:

Rigger has been configured on this system using ${HOME}/.rigger//vars
To use the configuration outside of rigger, you can run:

 source "${HOME}/.rigger//vars"

Вы все сделали с трудной частью!

Шаг 3 - Прибыль!

Или точнее: запустите + rigger + для обеспечения инфраструктуры в DigitalOcean, а затем разверните Deis!

Все, что нам нужно сделать, это выполнить:

./rigger provision

Процесс инициализации Deis с Rigger на DigitalOcean занимает около 15 минут и выглядит следующим образом:

  1. https://terraform.io [Terraform] автоматически загружается и устанавливается в + $ {HOME} /. rigger + для использования Rigger

  2. Клиенты Deis (+ deis + и + deisctl +) загружаются в + $ {HOME} /. Rigger // bins +

  3. https://terraform.io [Terraform] используется для предоставления 3 дроплетов CoreOS в DigitalOcean

  4. + DEISCTL_TUNNEL + определяется путем исследования одной из недавно предоставленных дроплетов DigitalOcean.

  5. http://xip.io [xip.io] используется для настройки простой точки входа DNS в кластер.

  6. + deisctl install platform + выполняется

  7. + deisctl start platform + выполняется

Шаг 4 - Время игры!

После того, как вы создали кластер Deis с помощью Rigger, вы должны развернуть на нем приложение!

Сначала вернемся к свободному месту в каталоге:

cd ../

Далее, возьмите пример приложения из проекта Deis:

git clone https://github.com/deis/example-nodejs-express.git

Перейдите во вновь созданный каталог:

cd example-nodejs-express

Загрузите все переменные окружения + rigger + в эту оболочку:

source "${HOME}/.rigger//vars"

Затем зарегистрируйте административную учетную запись в этом кластере Deis:

deis auth:register http://deis.${DEIS_TEST_DOMAIN}

Вам будет предложено ввести некоторую информацию для создания учетной записи:

Outputusername:
password:
password (confirm):
email:
Registered
Logged in as

Добавьте ваш открытый ключ в кластер Deis:

deis keys:add

Вы увидите следующее:

OutputFound the following SSH public keys:
1) deiskey.pub deiskey
2) id_dsa.pub sgoings
0) Enter path to pubfile (or use keys:add <key_path>)
Which would you like to use with Deis?

Вы должны выбрать открытый ключ, который идет вместе с закрытым ключом, который вы выбрали во время шага + rigger configure +.

Добавьте git remote, чтобы указать на кластер Deis:

deis apps:create

Вы увидите следующее:

OutputCreating Application... done, created
Git remote deis added
remote available at ssh://git@deis.:2222/.git

Теперь дави!

git push deis master

Это может занять некоторое время. В конце вы должны увидеть следующее:

Output-----> Launching...
      done, :v2 deployed to Deis

      http://

      To learn more, use `deis help` or visit http://deis.io

Идите вперед и загрузите этот URL в свой браузер! (приложение довольно простое, оно просто распечатывается: «Powered by Deis»)

Шаг 5 - Сбить все с ног!

После того, как вы немного поигрались со своим модным новым кластером Deis …​ возможно, будет хорошей идеей разрушить все это, а? Это просто

Вернитесь в каталог + rigger +:

cd ../rigger

Затем уничтожьте его:

./rigger destroy

Заключение

Из этого руководства вы узнали, куда направляется команда Deis, чтобы облегчить жизнь разработчикам, операторам и участникам с открытым исходным кодом. Предоставление кластера http://deis.io [Deis] теперь легко с Rigger, благодаря выигрышной комбинации https://terraform.io [Terraform] под капотом и молниеносному DigitalOcean в качестве поставщика инфраструктуры.

Related