Статья от http://deis.io [Deis]
Вступление
Deis - это частная платформа с открытым исходным кодом как услуга (PaaS), которая упрощает развертывание и управление приложениями на ваших собственных серверах. Используя технологии, такие как Docker и CoreOS, Deis предоставляет функции рабочего процесса и масштабирования, аналогичные Heroku, для выбранного вами хостинг-провайдера. Deis поддерживает приложения, которые могут работать в контейнере Docker, а Deis может работать на любой платформе, поддерживающей CoreOS.
Это руководство проведет вас через новый и улучшенный процесс обеспечения Deis с помощью нового инструмента проекта Deis под названием Rigger.
предварительный просмотр
Если у вас мало времени, эта ускоренная запись terminal (всего около минуты!) Покажет, что мы будем делать в оставшейся части этой статьи:
Предпосылки
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 минут и выглядит следующим образом:
-
https://terraform.io [Terraform] автоматически загружается и устанавливается в
+ $ {HOME} /. rigger +
для использования Rigger -
Клиенты Deis (
+ deis +
и+ deisctl +
) загружаются в+ $ {HOME} /. Rigger // bins +
-
https://terraform.io [Terraform] используется для предоставления 3 дроплетов CoreOS в DigitalOcean
-
+ DEISCTL_TUNNEL +
определяется путем исследования одной из недавно предоставленных дроплетов DigitalOcean. -
http://xip.io [xip.io] используется для настройки простой точки входа DNS в кластер.
-
+ deisctl install platform +
выполняется -
+ 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 в качестве поставщика инфраструктуры.