Microsoft Azure для бородатих адмінів. Ставимо Linux і наживляємо WordPress в хмару
- Зміст статті Всього кілька років тому фраза «розгорнути виртуалку Linux всередині хмари Microsoft»...
- Підготовчі роботи
- Видавці, пропозиції, номера SKU та інше
- Створення віртуальної машини
- Налаштування віртуальної машини
- установка WordPress
- WWW
Зміст статті
Всього кілька років тому фраза «розгорнути виртуалку Linux всередині хмари Microsoft» здалася б мені оксюмороном. Сьогодні ж це - абсолютно нормальна робоча задача. У цій статті ми покажемо адмінам Linux, як всередині хмари від Microsoft можна розгорнути звичну нам операційну.
Чому Azure?
Microsoft Azure - це відкрита і гнучка платформа, що дозволяє створювати, впроваджувати, масштабувати додатки і управляти ними. Про цю платформі вже багато чого було написано, і особливо не хочеться повторюватися. Все-таки стаття повинна бути практичною, а обговорення переваг та недоліків платформи залишу теоретикам. Якщо коротко, то можна виділити наступні переваги:
- Надійність і стійкість - платформа відмовостійкості, SLA становить 99,95%, і гарантується безпечне підключення до платформи з будь-якої точки світу.
- Гнучкість і простота - як побачиш, створити і налаштувати будь-яку кількість віртуальних машин для розробки і тестування додатків в хмарі дуже просто.
- Економія коштів - ти платиш тільки за реально використовувані ресурси (далі буде наведено лінк на те, як розшифровувати рахунки Azure).
- Економія часу - тобі не треба чекати поставок обладнання. Потрібні ресурси стануть доступні відразу після оплати.
- Вибір типу операційки - не варто думати, що раз Azure - рішення від Microsoft, то тобі будуть доступні тільки виртуалки під управлінням Windows. Як буде показано далі, можна з легкістю створити Linux-виртуалку.
Всі ці переваги важливі для великих проектів. Так, Azure - платне рішення, але в підсумку воно економить твої гроші. Уяви, що ти орендуєш фізичний виділений сервер. Поки проект розвивається, ти платиш за ресурси, що не використовуєш. Коли ж проект розростеться і, наприклад, закінчиться місце на дисках, тобі доведеться чекати поставки нового обладнання, його налаштування і так далі. В результаті буде вимушений простій (хоча якщо адмін кмітливий і заздалегідь передбачить цю ситуацію, то простий виявиться невеликим). А великі проекти можуть втратити багато грошей і, що ще більш важливо, постійних і нових користувачів.
Підготовчі роботи
А тепер перейдемо до практики. Щоб продовжити, тобі знадобиться Azure CLI і учетка Azure . Учетка коштує грошей, але безкоштовно можна отримати тріал, щоб зрозуміти, чи потрібно тобі все це взагалі.
Насамперед потрібно створити учетку - а раптом більше кулі не буде? 🙂 Тому перш, ніж іти далі, треба переконатися, що учетка створена. Повністю анонімну учетку створити буде складно, так як при реєстрації вказується твій мобільний номер і дані кредитки - знімати гроші не будуть, картка потрібна, тільки щоб переконатися, що ти не бот. Досить дивний спосіб, але все ж.
Після того, як ти придбав учетку, потрібно встановити Azure CLI - командний рядок Azure. Цей процес описувати не буду, є детальний мануал, до того ж російською .
Azure CLI можна встановити в Windows, Linux і OS X. Іншими словами, з твого Мака можна управляти хмарними віртуалкою Linux.
Видавці, пропозиції, номера SKU та інше
На сайті Microsoft я знайшов один цікавий мануал по створенню віртуальної машини за допомогою команди azure vm quick-create. Здавалося б, все просто: вводиш команду, вона запитує додаткові відомості, і вуаля - виртуалка створена. Але не тут-то було. Потрібно спочатку розібратися, що вводити в відповідь на питання цієї команди.
Насамперед потрібно визначитися з образом виртуалки, який ти будеш завантажувати в Azure. Можна вибрати один з рекомендованих Microsoft образів або ж завантажити свій, так званий нерекомендовані образ. Про це розповідається тут .
У Azure підтримуються дистрибутиви на базі CentOS, а також дистрибутиви Debian, RHEL, openSUSE і SLES, Oracle Linux, Ubuntu. Може бути, про завантаження нерекомендовані образів ми поговоримо в наступних статтях, а поки будемо розбиратися з використанням рекомендованих образів. Кожному способу відповідає номенклатурний номер, або SKU, що представляє собою унікальний системний ідентифікатор для кожного ресурсу Azure. Наприклад, дистрибутива CentOS відповідає номер 7. Але SKU - це не завжди число. Наприклад, для Ubuntu Server цілком може бути SKU виду 14.04.2-LTS.
Детально про SKU і інших незрозумілих словах можна прочитати тут . Також там описано, як розшифрувати твої рахунки Azure, коли ти почнеш користуватися «Азур» всерйоз.
Переглянути образи (які ти будеш використовувати з командою azure vm quick-create) можна за допомогою команди azure vm image list. Цій команді потрібно передати регіон, ім'я видавця і пропозиція (якщо ти знаєш, як воно називається).
Хмарний сервіс Azure доступний в 22 регіонах і, як написано на сайті Microsoft, скоро стане доступний ще в восьми. Вибрати потрібний тобі регіон можна тут . Видавець - це ім'я видавця образу, наприклад Canonical, якщо ти хочеш використовувати образ Ubuntu. Пропозиція - назва групи образів, наприклад UbuntuServer. Втім, пропозиція можна і не вводити, тоді команда виведе всі образи від заданого видавця.
приклад:
azure vm image list westus canonical ubuntuserver
Тут ми вибираємо пропозиції UbuntuServer (реєстр не враховується) від видавця Canonical в сонячній Каліфорнії (регіон westus).
Висновок буде таким, як показано на рис. 1. Як бачиш, тобі на вибір запропоновані кілька (а саме вісім) образів.
Мал. 1. Висновок команди `azure vm image list westus canonical ubuntuserver`
Проаналізуємо висновок. Найбільше нас цікавлять стовпці Sku і Urn. Цікаво, але виявляється, що Sku - не такий вже і унікальний номер (хоча в Microsoft запевняють в зворотному). Перейди за раніше наведеною посиланням, і ти побачиш: хоча нас намагаються переконати, що Sku унікальний, але по факту це виявляється не так (рис. 2). Втім, можна не забивати собі цим голову. А ось в стовпці Urn знаходиться рядок, яку можна передати в команду azure vm quick-create для створення віртуальної машини.
Мал. 2. Фрагмент сторінки https://azure.microsoft.com/ru-ru/documentation/articles/billing-understand-your-bill
Зверни увагу: в попередній команді ми знали назву видавця, але воно не завжди нам знайоме. Припустимо, не подобається тобі Ubuntu і ти хочеш Debian . Але як дізнатися, хто буде видавцем для Debian або для того ж CentOS? Для цього потрібно ввести команду
azure vm image list-publishers
Список видавців дуже довгий, тому на рис. 3 наводиться лише фрагмент виведення команди.
Мал. 3. Список видавців
Отримавши список видавців і їх розташування (регіони), можна з'ясувати список пропозицій. Для цього введи команду
azure vm image list-offers
Далі тебе попросять вказати видавця і регіон, після чого ти побачиш список пропозицій (рис. 4). Він також може бути досить довгим.
Мал. 4. Список пропозицій
Отримати ідентифікатори SKU можна командою
azure vm image list-skus
Тебе попросять вказати регіон, видавця і пропозиція. В результаті ти отримаєш список образів і зможеш вибрати потрібний тобі образ (рис. 5).
Мал. 5. Фрагмент виведення команди `azure vm image list-skus`
Створення віртуальної машини
Ось тепер ти готовий відповісти на всі питання команди azure vm quick-create. Введи її:
azure vm quick-create
Далі команда попросить тебе вказати різну інфу - назва групи ресурсів, назва віртуальної машини, регіон, тип ОС, URN образу, ім'я користувача віртуальної машини і пароль:
info: Executing command vm quick-create Resource group name: myVMGroup Virtual machine name: ubuntuvm Location name: westus Operating system Type [Windows, Linux]: Linux ImageURN (in the format of "publisherName: offer: skus: version"): Canonical : UbuntuServer: 14.04.4-LTS: latest User name: den Password: ******************* Confirm password: ************ *******
Весь висновок тут показувати не стану, оскільки він досить довгий. Найкорисніша частина цього висновку - практично найостанніша:
data: Network Profile: data: Network Interfaces: data: Network Interface # 1: data: Primary: true data: MAC Address: 00-0D-3A-33-4C-B2 data: Provisioning State: Succeeded data: Name: ubunt- westu-3894891836-nic data: Location: westus data: Public IP address: 104.40.24.124 data: FQDN: ubunt-westu-3894891836- pip.westus.cloudapp.azure.com ... info: vm quick-create command OK
Розберемося, що є що. Тут наводиться інфа про мережевий адаптер створеної віртуальної машини: MAC-адресу адаптера, публічний IP-адресу, ім'я вузла, а висновок всієї команди завершує рядок з OK в кінці, яка свідчить про те, що виконання команди пройшло успішно.
Налаштування віртуальної машини
Що робити далі? А далі потрібно підключитися до віртуальної машини по SSH: ssh <зовнішній IP>.
Зовнішній IP-адреса виводиться при створенні віртуальної машини. Введи ім'я користувача і пароль, вказані при створенні віртуальної машини, і можеш приступати до налаштування Linux. Що саме налаштовувати, залежить від поставленого завдання. Можна, наприклад, встановити панель управління (ту ж VestaCP), можна розгорнути фреймворк PHP разом з веб-сервером і сервером БД - все це добро буде використано для розгортання якогось складного веб-додатки.
Далі буде показаний приклад налаштування звичайного веб-сервера з підтримкою PHP і MySQL.
Насамперед оновлюємо apt-get (рис. 6):
sudo apt-get upgrade Мал. 6. Команда `sudo apt-get upgrade`
Після цього можна приступити до установки софта. Ставимо Apache, потім MySQL і PHP:
sudo apt-get install apache2 sudo apt-get install mysql-server php5-mysql sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt Мал. 7. Установка Apache
Мал. 8. Встановлення MySQL і PHP
Третя команда встановлює додаткові пакунки пов'язані з PHP, зокрема пакет, що забезпечує підтримку PHP веб-сервером Apache (libapache2-mod-php5). Цілком можливо, що доведеться встановити додаткові бібліотеки на зразок GD (пакет php5-gd), але все це залежить від твого додатки.
При установці сервера MySQL тебе попросять ввести пароль користувача root. Це користувач MySQL, а не системний користувач, але все одно постарайся придумати складний пароль і не забути його.
Після цього налаштуємо MySQL. Перша команда створює структуру каталогів бази даних, а друга робить налаштування сервера БД безпечнішими:
sudo mysql_install_db sudo mysql_secure_installation Мал. 9. Налаштування MySQL
Залишилося запустити Apache і MySQL:
sudo service apache2 restart sudo service mysql restart Мал. 10. Перезапуск серверів Apache / MySQL
Ну от і все. У тебе є готовий веб-сервер, який ти можеш використовувати для розгортання власних додатків.
установка WordPress
Я обіцяв розглянути приклад установки веб-додатки, а саме WordPress. Що ж, поїхали. Насамперед скачати сам WordPress:
wget https://ru.wordpress.org/wordpress-4.5.1-ru_RU.zip
Для розпаковування архіву встановимо unzip і виконаємо його розпакування в каталог / var / www / html:
sudo apt-get install unzip unzip wordpress-4.5.1-ru_RU.zip cd wordpress sudo cp -R * / var / www / html sudo rm /var/www/html/index.html Мал. 11. Завантаження WordPress
Перша команда встановлює unzip, друга розпаковує архів, третя змінює поточний каталог, а четверта копіює вміст папки wordpress в / var / www / html - це DocumentRoot для конфігурації Apache за замовчуванням. П'ята команда видаляє index.html - це стандартний файл, створений при установці Apache. Після того як всі настроїш, не забудь видалити папку wordpress!
Підготуємо WordPress до запуску:
cd / var / www / html sudo cp wp-config-sample.php wp-config.php sudo nano wp-config.php
Остання команда запускає редагування файлу wp-config.php. У ньому потрібно прописати ім'я користувача MySQL, пароль і ім'я бази даних. Ось тільки одна невдача: ми забули створити базу даних і користувача. Зараз ми це виправимо. Введи команди:
mysql -u root -p mysql> CREATE DATABASE wp;
Першу команду ти вводиш в консолі Linux (після чого потрібно вказати пароль root), а другу - вже в запрошенні програми mysql (це клієнт для MySQL). Друга команда створює базу даних з ім'ям wp.
Тепер потрібно ввести ось таку довгу команду:
mysql> GRANT ALL PRIVILEGES ON wp. * TO wpuser @ localhost IDENTIFIED BY '123';
Ми створюємо нового користувача - wpuser з паролем 123 і надаємо йому повне право для роботи з БД wp. Для виходу з утиліти mysql введи команду quit:
mysql> quit Мал. 12. Налаштування MySQL
Мал. 13. Редагування wp-config.php. Так, з кодуванням не склалося!
Тепер ти знаєш, що прописати в wp-config.php. Після редагування файлу конфігурації WordPress відкрий браузер і введи в нього URL http: //імя_віртуальной_машіни/wp-admin/install.php (рис. 14).
Мал. 14. Установка WordPress
Далі все просто: потрібно ввести назву блогу, задати ім'я користувача (адміністратора блогу), ввести пароль і так далі. Думаю, з установкою WordPress ти впораєшся сам, а якщо немає, то Google тобі в допомогу. Після установки WordPress зайди на свій сайт по URL http: // імя_віртуальной_машіни / (рис. 16).
Мал. 15. Блог встановлений
Мал. 16. WordPress готовий до використання!
Власне, на цьому все. Ти тільки що створив віртуальну машину і розгорнув в ній веб-додаток .
WWW
Зацікавився надаю посилання на додаткові мануали:
перше посилання - настройка віртуальної машини з нуля
Друге посилання - розгортання віртуальних машин і управління ними за допомогою шаблонів диспетчера ресурсів Azure
Спецпроект з компанією Microsoft
Чому Azure?Насамперед потрібно створити учетку - а раптом більше кулі не буде?
Але як дізнатися, хто буде видавцем для Debian або для того ж CentOS?