Журнал LinuxFormat - перейти на главную

LXF171:Раз­вер­ты­вать сер­вер

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «Категория: Учебники '''Вир­туа­ли­за­ция. Раз­ве­рните web-при­ло­же­ния и управ­ляй­т…»)

Версия 14:45, 18 ноября 2018

Вир­туа­ли­за­ция. Раз­ве­рните web-при­ло­же­ния и управ­ляй­те ими в вир­ту­аль­ных мо­ду­лях.


Содержание

Turnkey Linux: Web-мо­ду­ли

Ма­янк Шар­ма хочет ухитриться и web-приложения настроить, и пальчики при этом не обжечь.

(thumbnail)
Наш эксперт Фа­нат от­кры­того ПО Ма­янк Шар­ма был пи­шу­щим ре­дак­то­ром Linux.com и печатал­ся в LinuxToday, Digg и PC Plus

Раз­во­ра­чи­вать web-при­ло­же­ния с се­те­вым дос­ту­пом на web-сер­ве­ре — ва­ри­ант не для ка­ж­до­го. Во-пер­вых, нуж­но от­лич­но знать кон­фи­гу­ра­цию сво­ей се­ти. Вдоба­вок web-при­ло­же­ни­ям нуж­на ку­ча ин­фра­струк­тур­ных про­грамм, от сер­ве­ров баз дан­ных до биб­лио­тек, и на­страи­вать их со­вме­ст­ную ра­бо­ту мож­но ча­са­ми. А ес­ли поль­зо­ва­те­ли при­ло­же­ния бу­дут об­ра­щать­ся к нему из­вне, при­дет­ся тща­тель­но ис­сле­до­вать кон­фи­гу­ра­цию web-сер­ве­ра на пред­мет дыр в безопасности.

И здесь на по­мощь при­хо­дит Turnkey Linux. Из его вир­ту­аль­ных мо­ду­лей но­вый сер­вер раз­во­ра­чи­ва­ет­ся поч­ти мгно­вен­но. Вир­ту­аль­ный мо­дуль Turnkey — са­мо­дос­та­точ­ная сис­те­ма, со­дер­жа­щая пол­но­функ­цио­наль­ный эк­зем­п­ляр web-при­ло­же­ния с уре­зан­ным на­бо­ром ком­по­нен­тов опе­ра­ци­он­ной сис­те­мы. Сис­те­ма ра­бо­та­ет из ко­роб­ки, и ее мож­но раз­вер­нуть на «го­лом же­ле­зе» или вир­ту­аль­ном уст­рой­ст­ве.

Turnkey Linux ис­поль­зу­ет JeOS (Just Enough Operating System — ми­ни­маль­но не­об­хо­ди­мую ОС), это по­зво­ля­ет умень­шить раз­мер об­раза. На дан­ный мо­мент все мо­ду­ли Turnkey Linux ба­зи­ру­ют­ся на Debian 6.0.5 Squeeze. Эта ба­за, с не­ко­то­ры­ми до­пол­ни­тель­ны­ми при­ло­же­ния­ми, ко­то­рых нет в офи­ци­аль­ных ре­по­зи­то­ри­ях Debian, об­ра­зу­ет ос­нов­ной вир­ту­аль­ный мо­дуль Turnkey Linux — Core (см. врез­ку), на ко­то­ром стро­ят­ся все ос­таль­ные мо­ду­ли.

На­при­мер, в вир­ту­аль­ном мо­ду­ле WordPress ис­поль­зу­ет­ся по­след­няя вер­сия WordPress в ми­ни­маль­ной сис­те­ме Debian. Что­бы управ­лять CMS бы­ло про­ще, в вир­ту­аль­ной сис­те­ме так­же есть ме­ха­низм за­груз­ки по­след­них об­нов­ле­ний.

Для удоб­ст­ва в вир­ту­аль­ный мо­дуль так­же вве­де­но боль­ше де­сят­ка по­пу­ляр­ных пла­ги­нов WordPress, и, ра­зу­ме­ет­ся, мож­но ус­та­но­вить еще, как и в лю­бой дру­гой ус­та­нов­ке WordPress. Раз­ра­бот­чи­ки так­же по­зво­ля­ют на­стро­ить ав­то­ма­ти­че­­ское об­нов­ле­ние пла­ги­нов в вир­ту­аль­ном мо­ду­ле. Удоб­нее все­го то, что управ­лять вир­ту­аль­ным мо­ду­лем мож­но че­рез SSL-под­клю­че­ние.

В чет­вер­тую го­дов­щи­ну Turnkey Linux вы­шел ре­лиз 12.0 биб­лио­тек вир­ту­аль­ных мо­ду­лей, и те­перь он вклю­ча­ет бо­лее 100 web-при­ло­же­ний. В до­пол­не­ние к WordPress под­дер­жи­ва­ют­ся дру­гие по­пу­ляр­ные и не очень по­пу­ляр­ные сис­те­мы управ­ле­ния кон­тен­том, та­кие как Joomla, Drupal, Concrete5, Elgg, Clipbucket и т. д.

Есть так­же мо­ду­ли, яв­ляю­щие­ся пре­крас­ны­ми плат­фор­ма­ми для раз­ра­бот­ки при­ло­же­ний; на­при­мер, стек LAMP, мо­дуль .NET для раз­вер­ты­ва­ния web-при­ло­же­ний .NET в Linux и раз­лич­ные вер­сии SDK Google AppEngine. Ес­ли вам ин­те­рес­но, все мо­дули Turnkey Linux на 100 % со­сто­ят из от­кры­то­го ко­да и бес­плат­ны для за­груз­ки.

Сред­ст­ва ре­мес­ла

Мо­ду­ли Turnkey Linux дос­туп­ны в раз­лич­ных фор­ма­тах в за­ви­си­мо­сти от уст­ройств, на ко­то­рых вы хо­ти­те их раз­во­ра­чи­вать. Од­на­ко важ­но то, что по­сле на­строй­ки и за­пус­ка они пре­дос­тав­ляют вам оди­на­ко­вый ин­тер­фейс для раз­вер­ты­ва­ния и управ­ле­ния web-при­ло­же­ни­ем. На дан­ный мо­мент ка­ж­дый вир­ту­аль­ный мо­дуль Turnkey Linux дос­ту­пен в шес­ти фор­ма­тах. Из мо­ду­ля в фор­ма­те ISO мож­но ус­та­но­вить вир­ту­аль­ный мо­дуль на фи­зи­че­­ский ком­пь­ю­тер, а так­же на вир­ту­аль­ные ма­ши­ны. Это об­раз Live CD, в ко­то­ром для ус­та­нов­ки сис­те­мы ис­поль­зу­ет­ся мо­ди­фи­ци­ро­ван­ный ус­та­нов­щик Debian.

Хо­тя ISO-об­раз при­го­ден для ус­та­нов­ки на вир­ту­аль­ную ма­ши­ну, он не оп­ти­ми­зи­ро­ван для вир­ту­аль­ных уст­ройств. Луч­ше бу­дет взять об­раз ли­бо VMDK, ли­бо OVF. Пер­вый пред­на­зна­чен для уст­ройств с рас­ши­ре­ния­ми вир­туа­ли­за­ции, на­при­мер, Intel VT-x, а вто­рой по­ла­дит и с бо­лее ста­ры­ми уст­рой­ст­ва­ми. И об­ра­зы OVF, и об­ра­зы VMDK бу­дут ра­бо­тать в бес­плат­ных про­грам­мах вир­туа­ли­за­ции VirtualBox и VMware Player. Сбор­ки OpenStack, как сле­ду­ет из на­зва­ния, оп­ти­ми­зи­ро­ва­ны для раз­вер­ты­ва­ния на об­лач­ной плат­фор­ме OpenStack. Ана­ло­гич­но, сбор­ки OpenVZ и Xen — для со­от­вет­ст­вую­щих вир­туа­ли­за­ци­он­ных сред.

Раз­ме­ры мо­ду­лей раз­лич­ны, но боль­шин­ст­во из них ме­нее 300 МБ, а ISO-об­ра­зы мень­ше, чем об­ра­зы со­от­вет­ст­вую­щих вир­ту­аль­ных ре­ше­ний.

Гад­жет, вперед!

Пер­вый шаг по­сле за­груз­ки мо­ду­ля из ре­по­зи­то­рия Turnkey Linux — за­пус­тить его. Этот шаг за­ви­сит от ти­па вир­ту­аль­но­го мо­ду­ля.

Ес­ли вы за­гру­зи­ли ISO-об­раз, за­пи­ши­те его на диск и за­гру­зи­тесь с не­го. По­сле это­го следуй­те ин­ст­рук­ция­м из врез­ки «Ус­та­новим вир­ту­аль­ный мо­дуль» для ус­та­нов­ки и на­строй­ки мо­ду­ля.

Об­раз OVF мож­но им­пор­ти­ро­вать в VirtualBox, зай­дя в File > Import Appliance [Файл > Им­пор­ти­ро­вать мо­дуль]; при этом соз­да­ст­ся вир­ту­аль­ная ма­ши­на с на­строй­ка­ми из мо­ду­ля. А ес­ли у вас об­раз VMDK, сна­ча­ла нуж­но соз­дать вир­ту­аль­ную ма­ши­ну в VirtualBox, как обыч­но, но вме­сто соз­да­ния но­во­го вир­ту­аль­но­го дис­ка вы­брать имеющийся об­раз и ука­зать за­гру­жен­ный файл об­раза VMDK.

По­сле это­го за­пус­кай­те вир­ту­аль­ную ма­ши­ну. Не­важ­но, ус­та­нав­ли­ва­ли ли вы мо­дуль из фай­ла ISO или вос­поль­зо­ва­лись го­то­вым: про­цесс на­строй­ки один. Он опи­сан во врез­ке «На­строи­м вир­ту­аль­ный мо­дуль».

На­стро­ен­ный мо­дуль ав­то­ма­ти­че­­ски за­гру­зит­ся, и поя­вит­ся кон­соль на­строй­ки со ссыл­ка­ми на ути­ли­ты и сер­ви­сы, за­пу­щен­ные в вир­ту­аль­ном мо­ду­ле.

Во всех мо­ду­лях есть как ми­ни­мум две ути­ли­ты. Web-обо­лоч­ка вы­зы­ва­ет эму­ля­тор тер­ми­на­ла Shell-in-a-Box на ос­но­ве AJAX, с по­мо­щью ко­то­ро­го осуществляется вход на уда­лен­ный сер­вер из брау­зе­ра.

Управ­ле­ние че­рез Webmin

Кро­ме то­го, есть web-ути­ли­та на­строй­ки Webmin — с ее по­мо­щью мож­но ме­нять все на­строй­ки на уда­лен­ном сер­ве­ре: на­при­мер, на­страи­вать за­да­ния cron, про­смат­ри­вать лог-фай­лы и управ­лять вы­пол­няю­щи­ми­ся про­цес­са­ми. Ес­ли в ва­шем мо­ду­ле есть при­ло­же­ние, ра­бо­таю­щее с MySQL, в нем так­же бу­дет PHPMyAdmin для ад­ми­ни­ст­ри­ро­ва­ния баз дан­ных MySQL.

Кон­соль так­же вы­во­дит ин­фор­ма­цию по под­клю­че­нию к мо­ду­лю че­рез SSH/SFTP и ад­рес, по ко­то­ро­му за­пу­ще­но при­ло­же­ние, по­стро­ен­ное на ба­зе это­го вир­ту­аль­но­го мо­ду­ля. По это­му ад­ре­су к при­ло­же­нию мож­но об­ра­тить­ся из лю­бой точ­ки се­ти и на­стро­ить его точ­но так же, как ес­ли бы вы ус­та­но­ви­ли его вруч­ную.

Turnkey Linux не мо­ди­фи­ци­ру­ет при­ло­же­ния, и при не­об­хо­ди­мо­сти мож­но об­ра­тить­ся к офи­ци­аль­ной до­ку­мен­та­ции лю­бо­го при­ло­же­ния.

Ес­ли на­до из­ме­нить файл при на­строй­ке web-при­ло­же­ния, мож­но под­клю­чить­ся к мо­ду­лю по SSH или вос­поль­зо­вать­ся web-обо­лоч­кой че­рез HTTPS. Что­бы ско­пи­ро­вать файл в мо­дуль, про­сто под­клю­чи­тесь к не­му лю­бым FTP-кли­ен­том, ис­поль­зуя па­роль ад­ми­ни­ст­ра­то­ра, за­дан­ный при на­строй­ке мо­ду­ля.

У ха­ба

На­ря­ду с са­ми­ми мо­ду­ля­ми в Turnkey Linux есть не­сколь­ко спе­ци­аль­ных ути­лит, ко­то­рые по­мо­гут управ­лять мо­ду­ля­ми. Глав­ная — Turnkey Hub. С ее по­мо­щью мож­но за­пус­кать мо­ду­ли Turnkey на об­ла­ке Amazon EC2 и управ­лять ими. В мо­ду­лях, соз­дан­ных на EC2 с по­мо­щью Hub, ис­поль­зу­ет­ся оп­ти­ми­зи­ро­ван­ная, но ре­дак­ти­руе­мая по­ли­ти­ка бранд­мау­эра. По умол­ча­нию раз­ре­шен тра­фик толь­ко че­рез пор­ты, ис­поль­зуе­мые при­ло­же­ни­ем.

С по­мо­щью Hub так­же мож­но на­блю­дать за уда­лен­ны­ми сер­ве­ра­ми и от­сле­жи­вать ис­поль­зо­ва­ние про­цес­со­ра, опе­ра­ции вво­да/вы­во­да и се­те­вой тра­фик. Hub так­же уп­ро­ща­ет бо­лее слож­ные опе­ра­ции, на­при­мер, под­клю­че­ние дис­ков NAS к уда­лен­ным об­лач­ным сер­ве­рам.

Есть еще ути­ли­та ре­зерв­но­го ко­пи­ро­ва­ния и ми­гра­ции — Turnkey Linux Backup and Migration (TKLBAM). По умол­ча­нию она пред­на­зна­че­на для ра­бо­ты с об­лач­ным сер­ви­сом Amazon S3. На­стро­ить по­ве­де­ние ути­ли­ты мож­но в мо­ду­ле Webmin Backup and Migration [Ре­зерв­ное ко­пи­ро­ва­ние и ми­гра­ция], а про­смат­ри­вать ре­зерв­ные ко­пии и управ­лять ими — из Hub.

И Hub, и TKLBAM бес­плат­ны, но для ре­зерв­но­го ко­пи­ро­ва­ния на Amazon S3 нуж­но за­ре­ги­ст­ри­ро­вать­ся на об­лач­ном сер­ви­се. Од­на­ко сер­вис до­воль­но де­шев: рас­хо­ды со­ставят не бо­лее £ 0,07 за ГБ в ме­сяц, а но­вые поль­зо­ва­те­ли по­лу­ча­ют 5 ГБ бес­плат­но.

Кро­ме то­го, с по­мо­щью TKLBAM мож­но вруч­ную соз­да­вать и вос­ста­нав­ли­вать ре­зерв­ные ко­пии фай­лов ло­каль­но. Пусть вы под­клю­чи­ли ло­каль­ный диск к вир­ту­аль­но­му мо­ду­лю в точ­ке /mnt/backupdrive; за­пус­ти­те обо­лоч­ку и вве­ди­те сле­дую­щие ко­ман­ды:

$ tklbam-backup --address file:///mnt/backupdrive/tklbam/backup

$ tklbam-escrow /mnt/backupdrive/tklbam/key

Ключ escrow [за­ло­го­вый] мож­но ис­поль­зо­вать для ау­тен­ти­фи­ка­ции и вос­ста­нов­ле­ния ре­зерв­ной ко­пии да­же в дру­гом мо­ду­ле TurnKey та­ким об­ра­зом:

$ tklbam-restore --address file:///mnt/backupdrive/tklbam/backup --keyfile=/mnt/backupdrive/tklbam/key

Не те­ряй­те ключ escrow. С его по­мо­щью мож­но вос­ста­но­вить ре­зерв­ную ко­пию, да­же ес­ли вы за­бы­ли па­роль­ную фра­зу за­шиф­ро­ван­ных ре­зерв­ных ко­пий.

Еще один туз в ру­ка­ве Turnkey Linux — его бес­плат­ный сер­вис ди­на­ми­че­­ско­­го DNS tklapp.com. Он по­зво­ля­ет об­ра­щать­ся к мо­ду­лю из­вне се­ти и да­ет ему удоб­ное для за­по­ми­на­ния имя.

Для на­строй­ки сер­ви­са ис­поль­зу­ет­ся ути­ли­та HubDNS, ко­то­рая ус­та­нов­ле­на во всех мо­ду­лях Turnkey Linux. Пе­ред на­строй­кой зай­ди­те в свою учет­ную за­пись Turnkey Hub и пе­ре­пи­ши­те свой ключ Hub API с вклад­ки User Profile [Про­филь поль­зо­ва­те­ля]. За­тем от­крой­те тер­ми­нал и вве­ди­те сле­дую­щие ко­ман­ды:

$ hubdns-init HUB_APIKEY foo.tklapp.com

$ hubdns-update

Го­то­во. За­ме­ни­те HUB_APIKEY на свой ключ, а foo — на же­лае­мое имя сер­ве­ра. Ес­ли оно дос­туп­но, HubDNS за­ре­зер­ви­рует его для вас. Вто­рая ко­ман­да свя­жет ваш IP-ад­рес с соз­дан­ным име­нем до­ме­на. Да­вай­те вос­поль­зу­ем­ся мо­ду­лем Torrent Server и вер­нем ста­рый не­нуж­ный ком­пь­ю­тер к жиз­ни, пре­вра­тив его в тор­рент-сер­вер без мо­ни­то­ра.

За­гру­зи­те ISO-об­раз, за­пи­ши­те его на ком­пакт-диск и ус­та­но­ви­те его на ком­пь­ю­те­ре с по­мо­щью ус­та­нов­щи­ка. Те­перь за­пус­ти­те брау­зер на дру­гом ком­пь­ю­те­ре той же се­ти и вве­ди­те в ад­рес­ную стро­ку IP-ад­рес сер­ве­ра. От­кро­ет­ся па­нель управ­ле­ния тор­рент-сер­ве­ра.

Изю­мин­ка это­го мо­ду­ля — брау­зер­ный фай­ло­вый ме­нед­жер AjaXplorer, в ко­то­ром мож­но ра­бо­тать с фай­ла­ми и ка­та­ло­га­ми. У при­ло­же­ния удоб­ный ин­тер­фейс, и есть мо­биль­ные вер­сии для iOS и Android.

Трудолюбивый ос­лик

Что­бы за­гру­жать тор­рен­ты, нуж­но под­клю­чить мо­дуль к сво­ему эк­зем­п­ля­ру MLDonkey [donkey — англ. ослик]. Для это­го зай­ди­те в ин­тер­фейс Basic [Ос­нов­ной], пе­рей­ди­те на вклад­ку Clients [Кли­ен­ты] и на­жми­те кноп­ку Connect [Под­клю­чить] ря­дом с сер­ве­ром, за­пу­щен­ном на 127.0.0.1:4001.

Те­перь от­крой­те свой лю­би­мый тор­рент-тре­кер и ско­пи­руй­те ссыл­ку на файл .torrent, ко­то­рый хо­ти­те за­гру­зить. В ин­тер­фей­се Basic пе­рей­ди­те на вклад­ку Links [Ссыл­ки], вставь­те URL в тек­сто­вое по­ле и на­жми­те кноп­ку Load Link [За­гру­зить ссыл­ку] для за­груз­ки тор­рен­та.

За­гру­жен­ный тор­рент ска­ни­ру­ет­ся встро­ен­ным ан­ти­ви­ру­сом ClamAV и по­ме­ща­ет­ся в ка­та­лог /var/lib/mldonkey/incoming.

С по­мо­щью MLDonkey вы сможете еще и раз­да­вать свои тор­рен­ты. Поскольку все уже на­строе­но, пе­рей­ди­те на ин­тер­фейс Advanced [Про­дви­ну­тый] в па­не­ли управ­ле­ния и пе­рей­ди­те на Help+ > Sysinfo [Справ­ка > Ин­фор­ма­ция о сис­те­ме] для про­смот­ра па­ра­мет­ров. Ка­та­ло­ги по умол­ча­нию при­ве­де­ны вни­зу стра­ни­цы.

MLDonkey по­зво­ля­ет раз­да­вать как от­дель­ные фай­лы (на­при­мер, my-fav-distro.iso), так и груп­пы фай­лов в ка­та­ло­гах (на­при­мер, the_top_distros/). Что­бы раз­да­вать ин­ди­ви­ду­аль­ные фай­лы, по­мес­ти­те их в ка­та­лог /var/lib/mldonkey/incoming/files. Для раз­да­чи ка­та­ло­гов по­мес­ти­те их в ка­та­лог /var/lib/mldonk


Те­перь на­до соз­дать файл .torrent — для это­го ну­жен тре­кер, ко­то­рый опо­вес­тит о на­ли­чии это­го фай­ла дру­гих кли­ен­тов. По умол­ча­нию MLDonkey от­сле­жи­ва­ет тор­рен­ты в ло­каль­ной се­ти с по­мо­щью IP-ад­ре­са сер­ве­ра, на ко­то­ром за­пу­щен.

Что­бы вос­поль­зо­вать­ся внеш­ним тре­ке­ром, придется из­ме­нить на­строй­ки MLDonkey. Са­мый про­стой спо­соб это сде­лать — пе­рей­ти к на­строй­кам кли­ен­та [Client] в ос­нов­ном ин­тер­фей­се и взгля­нуть на по­ле BT-default_tracker. По умол­ча­нию оно пус­то — это оз­на­ча­ет, что ис­поль­зу­ет­ся ло­каль­ный тре­кер.

Что­бы ука­зать внеш­ний тре­кер, вве­ди­те его ад­рес в по­ле, на­при­мер, http://bit.ly/zJ4xF6, это тре­кер для LinuxTracker.org. Те­перь пе­рей­ди­те в ин­тер­фейс Advanced и вве­ди­те ко­ман­ду compute_torrent в боль­шое тек­сто­вое по­ле, что­бы ука­зать фай­лы, ко­то­рые нуж­но раз­дать.

На­при­мер, compute_torrent/srv/storage/incoming/files/my-fav-distro.iso сге­не­ри­ру­ет файл .torrent в ка­та­ло­ге /var/lib/mldonkey/torrents/seeded. Те­перь пе­рей­ди­те в Transfers > Uploads [Пе­ре­да­ча > За­груз­ки], что­бы убе­дить­ся, что тор­рен­ты благополучно раз­да­ют­ся.

Вот и все. Те­перь мож­но ос­та­вить за­гру­жен­ные фай­лы и за­ра­ба­ты­вать оч­ки от сво­их одноранговых парт­не­ров-пи­ров [peer] за раз­да­чу тор­рен­тов. |

Персональные инструменты
купить
подписаться
Яндекс.Метрика