Как установить и настроить AppScale в Ubuntu 12.04

Вступление

AppScale - это вычислительная платформа с открытым исходным кодом, предназначенная для развертывания приложений Google App Engine в общедоступных облаках, частных облаках и локальных кластерах. AppScale полностью совместим с API Google App Engine и поддерживает Python, Go, PHP и Java. С помощью AppScale вы можете перенести существующие приложения на любую платформу облачных вычислений, включая DigitalOcean. Ниже вы найдете список компонентов с открытым исходным кодом, используемых для обслуживания данного API.

Предпосылки

Для этого урока вам понадобятся:

  • 4Гб + капелька с Ubuntu 12.04.5

AppScale требуется как минимум 2 ГБ ОЗУ для компиляции необходимых компонентов в дополнение к 2 ГБ ОЗУ, которое AppScale использует в режиме ожидания. Для стандартных развертываний приложений настоятельно рекомендуется минимум 4 ГБ ОЗУ. Может быть возможно использовать каплю объемом 2 ГБ с файлом подкачки. Однако это выходит за рамки данного руководства.

На момент написания, AppScale имел только официальную поддержку Ubuntu 12.04. Если вы измените скрипт сборки, возможно, удастся установить на Ubuntu 14.04. Однако это также выходит за рамки этого руководства и может не поддерживаться сообществом.

Первые 2 шага, установка AppScale и AppScale Tools, должны выполняться от имени пользователя root. Остальные шаги можно запускать как пользователь без полномочий root.

Шаг 1 - Установите AppScale

Для первых двух разделов мы хотим запустить все команды от имени пользователя root. Если вы подключены к серверу как пользователь sudo, введите корневую оболочку с помощью:

sudo su

Сначала обновите индекс пакета apt-get:

apt-get update

Теперь мы готовы установить AppScale. Мы будем компилировать AppScale из исходного кода. Обратите внимание, компиляция исходного кода может занять очень много времени. Ожидайте, что этот процесс займет более 15 минут или дольше.

Убедитесь, что вы находитесь в каталоге + / root +:

cd /root

Установите Git, чтобы использовать его для загрузки исходного кода AppScale:

apt-get install -y git-core

Клонировать исходный код AppScale из GitHub:

git clone git://github.com/AppScale/appscale.git

Перейдите в каталог + appscale / debian + и запустите скрипт сборки.

cd appscale/debian
bash appscale_build.sh

Шаг 2 - Установите Инструменты AppScale

Инструменты AppScale используются для управления кластерами AppScale и развертывания приложений. Эти инструменты могут быть установлены на локальном компьютере или на вашем сервере. Для простоты мы будем устанавливать инструменты на нашем сервере. Процесс установки на Mac OS X и Windows очень похож. Вам необходимо использовать Cygwin в Windows. См. Https://github.com/AppScale/appscale-tools[GitHub Page] для получения дополнительной информации.

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

cd /root

Клонируйте исходный код инструментов AppScale из GitHub:

git clone git://github.com/AppScale/appscale-tools.git

Перейдите в каталог + appscale-tools / debian + и запустите скрипт сборки.

cd appscale-tools/debian
bash appscale_build.sh

После завершения сценария сборки рекомендуется перезагрузить компьютер.

reboot

Шаг 3. Настройка развертывания AppScale

В оставшейся части этого руководства вы можете запустить Инструменты AppScale как любой пользователь. Это не обязательно быть пользователем sudo. Однако при первом запуске AppScale вам потребуется знать пароль пользователя root. AppScale автоматически создаст сертификаты аутентификации, и пароль root больше не потребуется при работе с инструментами AppScale в будущем.

После завершения перезагрузки сервера и установки SSH-соединения необходимо настроить развертывание AppScale. Инструменты AppScale требуют файл конфигурации при каждом запуске набора инструментов. На этом шаге мы создадим файл конфигурации с именем + AppScalefile +, запустим AppScale и настроим учетную запись администратора.

Убедитесь, что вы находитесь в домашнем каталоге вашего пользователя:

cd ~

Создайте исходный файл конфигурации + AppScalefile +:

appscale init cluster

Теперь мы добавим IP-адрес сервера в «+ AppScalefile +».

Откройте файл с помощью nano:

nano AppScalefile

В верхней части файла вы увидите следующий раздел:

AppScalefile

# The deployment strategy (roles -> machines) that should be used in this
# AppScale deployment.
# The following is a sample layout for running everything on one machine:
ips_layout :
 master :
 appengine :
 database :
 zookeeper :

Замените IP-адрес по умолчанию на IP-адрес вашего сервера. Когда вы закончите редактирование файла, нажмите * CTRL-X *, нажмите * Y *, чтобы сохранить, и нажмите * ENTER *, чтобы перезаписать существующее имя файла.

Теперь мы можем запустить AppScale из того же каталога, что и только что созданный + AppScalefile +:

appscale up

AppScale попросит вас проверить отпечаток хоста и пароль пользователя root.

The authenticity of host '111.111.111.111 (111.111.111.111)' can't be established.
ECDSA key fingerprint is ab:3a:f0:87:c8:4e:8c:ba:59:0e:06:64:1b:f6:fe:e8.
Are you sure you want to continue connecting (yes/no)?

Введите + yes + и нажмите * ENTER *. Затем вы увидите следующее:

[email protected]'s password:

Введите пароль пользователя root и нажмите * ENTER *.

После ввода правильного пароля root вы увидите следующее:

Generated a new SSH key for this deployment at /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40
Starting AppScale 2.3.1 over a virtualized cluster.
Log in to your head node: ssh -i /root/.appscale/appscale69de89364b624a8a9be1b7f45ac23d40.key [email protected]
Head node successfully initialized at 111.111.111.111. It is now starting up cassandra.
Copying over deployment credentials
Starting AppController at 111.111.111.111
Please wait for the AppController to finish pre-processing tasks.

Please wait for AppScale to prepare your machines for use.
AppController just started

При запуске AppScale может показаться, что он зависает в + AppController только что запущен +. Это нормально. Инициализация всех компонентов AppScale может занять некоторое время.

В конце концов, вы увидите следующее:

UserAppServer is at 111.111.111.111
Enter your desired admin e-mail address:

Создайте учетную запись администратора. Введите адрес электронной почты для пользователя и введите пароль. Запомните эти детали. Они понадобятся вам для доступа к панели администрирования AppScale.

После создания учетной записи администратора вы увидите:

Creating new user account [email protected]
Creating new user account [email protected]
Your XMPP username is [email protected]
Granting admin privileges to [email protected]
AppScale successfully started!
View status information about your AppScale deployment at http://111.111.111.111:1080/status

AppScale предоставит вам ссылку на панель администрирования. Обычно в следующем формате. Обычно адрес http автоматически перенаправляется на защищенный адрес https.

http://:1080/status
https://:1443/status

Шаг 4 - Панель управления AppScale

Откройте панель администрирования AppScale в своем браузере. Ссылка должна была быть предоставлена ​​вам после запуска AppScale:

http://:1080/status

Вам может быть предложено принять самоподписанный сертификат.

изображение: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/self-signed-cert.png [Принять самоподписанный сертификат]

В панели администрирования AppScale пользователи могут создавать свои собственные учетные записи, нажав * Создать учетную запись *. Однако вам нужно будет изменить их разрешения, используя учетную запись администратора, прежде чем они смогут загружать и удалять свои собственные приложения.

Нажмите кнопку * Логин * в правом верхнем углу. Кнопка * Login * может выглядеть по-разному на маленьких экранах, но она все равно будет зеленой.

изображение: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/appscale-login.png [Войти в AppScale]

Войдите с адресом электронной почты администратора и паролем, которые вы установили на предыдущем шаге. Затем вам будет представлена ​​страница состояния AppScale.

изображение: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/appscale-status-page.png [Страница состояния AppScale]

Панель администрирования предоставляет вам доступ к статистике сервера и статистике приложения. Вы также можете развертывать и удалять приложения. Это довольно просто развернуть приложение из панели администрирования. В этом руководстве мы узнаем, как развернуть приложение из командной строки. Когда вы закончите изучение панели администрирования, перейдите к следующему шагу.

Шаг 5 - Развертывание вашего первого приложения

AppScale предоставляет набор примеров приложений, которые готовы к развертыванию. Эти приложения - хороший способ протестировать ваш кластер AppScale. Они также знакомят вас с процессом развертывания приложения.

Вы должны использовать ту же учетную запись пользователя, и ваш текущий каталог должен содержать + AppScaleFile +. Этот файл содержит все конфигурации, которые необходимы AppScale для управления развертыванием.

Убедитесь, что мы вернулись в домашний каталог вашего пользователя:

cd ~

Из GitHub клонируйте исходный код примера приложения, чтобы создать приложение Guestbook:

git clone https://github.com/AppScale/sample-apps.git

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

Cloning into 'sample-apps'...
remote: Counting objects: 15742, done.
remote: Total 15742 (delta 0), reused 0 (delta 0), pack-reused 15742
Receiving objects: 100% (15742/15742), 318.96 MiB | 23.52 MiB/s, done.
Resolving deltas: 100% (4944/4944), done.

Приложение Guestbook - отличный способ проверить API хранилища данных и аутентификации.

Разверните приложение:

appscale deploy sample-apps/go/go-guestbook/

Вам будет предложено назначить адрес электронной почты для вашего приложения. Введите адрес электронной почты и нажмите * Enter *.

Enter your desired e-mail address:

Это может быть любой адрес электронной почты. Если пользователь еще не существует в базе данных, вам будет предложено установить пароль. Для целей данного руководства мы решили использовать учетную запись администратора.

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

Uploading initial version of app guestbookgo
We have reserved guestbookgo for your app
Tarring application
Copying over application
Please wait for your app to start serving.
Waiting 1 second(s) to check on application...
Waiting 2 second(s) to check on application...
Waiting 4 second(s) to check on application...
Waiting 8 second(s) to check on application...
Waiting 16 second(s) to check on application...
Your app can be reached at the following URL: http://111.111.111.111:8080

Откройте URL, указанный в вашем браузере, и вы получите доступ к Гостевой книге. Если вы все еще вошли в AppScale, приложение Guestbook будет использовать ваш адрес электронной почты. Если вы вернетесь к панели администрирования AppScale и выйдите из системы, она подпишет гостевую книгу как анонимный пользователь.

изображение: https: //assets.digitalocean.com/articles/AppScale_Ubuntu_1204/guestbook-app.png [Гостевая книга]

Чтобы обновить приложение, просто снова используйте команду + appscale deploy +. AppScale автоматически обнаружит и обновит существующее приложение. Вы должны использовать тот же адрес электронной почты, который уже является владельцем приложения. Если вы хотите изменить владельца, вы можете удалить и повторно развернуть приложение.

Если вы хотите запустить несколько версий одного и того же приложения параллельно, вам нужно изменить имя приложения в файле + app.yaml +. Это основной файл конфигурации для приложения, и он находится в корневом каталоге приложения.

Чтобы удалить приложение, вы можете использовать следующую команду (замените + guestbookgo + идентификатором AppScale, назначенным вашему приложению в процессе развертывания):

appscale remove

Вы также можете удалять и развертывать свои приложения из панели администрирования AppScale.

Поиск проблемы

AppScale - очень сложная платформа, и все может пойти не так. Мы рассмотрим несколько шагов, которые вы можете предпринять, чтобы помочь решить некоторые из наиболее распространенных ошибок. Рекомендуется прочитать официальную страницу https://github.com/AppScale/appscale/wiki/Trou устранение неполадокAppScale для устранения неполадок] для получения более подробной информации.

Если вы не можете найти решение своей проблемы, у AppScale есть очень активный maillist список. Убедитесь, что при отправке темы в список рассылки вы включаете как можно больше подробностей и копии своих файлов журнала. С большей вероятностью вы получите быстрое решение вашей проблемы.

Принудительная очистка состояния AppScale

Команда + appscale clean + используется для принудительного перевода ваших виртуальных машин в чистое состояние, устраняя любые проблемы конфигурации.

appscale clean

Этот скрипт также принудительно уничтожит все процессы, связанные с AppScale. Если у вас возникли проблемы с первоначальным развертыванием, всегда пробуйте это сначала, прежде чем связываться со списком рассылки. Эта команда обычно исправляет любые проблемы конфигурации. Затем вы можете снова запустить + appscale up + для повторного развертывания AppScale.

appscale up

Файлы журнала AppScale

Команда + appscale logs + соберет файлы журналов со всех узлов в развертывании AppScale и скопирует их в указанный каталог.

appscale logs

Доступ к файлам журнала можно получить непосредственно в каталоге + / var / log / appscale +.

cd /var/log/appscale

Если по каким-либо причинам команда + appscale logs + завершится неудачно, вы захотите получить доступ к журналам таким образом. Однако для многоузлового развертывания вам нужно будет делать это на каждом сервере, поэтому рекомендуется использовать инструменты AppScale для сбора файлов журнала.

Команда + appscale tail + обеспечит считывание в реальном времени журналов AppScale в развертывании. Это полезно для мониторинга приложений и проблем с подключением в режиме реального времени.

appscale tail

Отладка развертываний AppScale

Есть три основных журнала, которые нас должны интересовать при отладке AppScale Deployment.

  • + controller-17443.log + - этот журнал является выводом AppController, демона подготовки AppScale. Поскольку этот демон отвечает за запуск всех необходимых сервисов AppScale, он лучше всего подходит при возникновении проблем с развертыванием AppScale.

  • + app _ app_id - *. log + - Каждое развернутое приложение будет иметь свой собственный файл журнала. Если у вас возникли проблемы с развертыванием приложения или оно работает не так, как ожидалось, это то место, с которого вы захотите начать.

  • + datastore_server-400 * .log + - это файл журнала для хранилища данных AppScale.

Заключение

Мы установили и настроили AppScale для развертывания на одном сервере. Мы узнали, как развертывать и удалять приложения. Мы также протестировали наше развертывание, подписав приложение Гостевая книга. Подписание приложения Гостевая книга доказало, что ряд API работает правильно. Теперь мы можем использовать эту установку AppScale для развертывания пользовательских приложений на основе Google App Engine.

Related