Питхон

Либвирт са Питхоном

Либвирт са Питхоном
У једном од својих претходних постова показао сам како се може започети са Либвиртом и КВМ-ом. Овај пакет за виртуелизацију не треба да се користи као софтвер за виртуелизацију радне површине, већ треба да ради на серверима који нуде већу флексибилност, ефикасност и стабилност, уместо једноставности за употребу. Намењено је аутоматизацији на нтх степена, а не ослањања на ручну конфигурацију. Па да видимо како се можете повезати са својим либвирт демоном и аутоматизовати основно управљање ВМ и надгледање помоћу Питхона.

Постављање и основне претпоставке

Користим Либвирт КВМ инсталацију на Дебиан серверу. Питхон скрипте које ћу користити раде на Питхон 3-у.7.3 окружење. Овај чланак би требало да вам накваси ноге Либвиртовим Питхон везима, приликом дизајнирања апликације увек се требате позивати на званичну документацију која покрива широк спектар случајева и ажурира се сразмерно често.

Хајде да прво инсталирамо све зависности потребне за либвирт:

$ судо апт инсталл пкг-цонфиг либвирт-дев
$ пип3 инсталирајте либвирт-питхон

То су сви пакети који су вам потребни.

Покрећу се следеће скрипте и исечци локално на Либвирт хосту, као роот, уместо да се покреће на удаљеном клијенту. Услугама можете приступити на даљину, међутим, то би захтевало дугу дигресију у обезбеђивању везе између клијента и сервера. Због тога ћемо се повезивати локално, ради једноставности.

Успостављање везе са услугом Либвиртд

Да започнемо, отворимо Питхон упит, увезимо библиотеку либвирт и отворимо везу са либвиртом.отворени метод.

роот @ деб: ~ # питхон3
Питхон 3.7.3 (подразумевано, 15. април 2019., 01:55:37)
[ОУУ 6.3.0 20170516] на линуксу

Упишите „помоћ“, „ауторска права“, „кредити“ или „лиценца“ за више информација.

>>> увези либвирт
>>> цонн = либвирт.отворен ('кему: /// систем')

Променљива цонн се сада може користити за постављање упита за ваш либвирт демон и то ћемо учинити ускоро. Али прво, мало одступања.

Либвирт се може користити за управљање низом различитих стекова за виртуелизацију и контејнеризацију. КВМ-КЕМУ, Ксен и ЛКСЦ су најпопуларнији од њих. Дакле, када унесете либвирт.опен ('кему: /// систем') либвирт вам омогућава прикупљање информација о гостима КЕМУ и управљање њима. Можете једнако добро разговарати са ЛКСД демоном или Ксен хипервизором користећи систем лкц: /// или кен: ///.

Слично томе, метода либвирт.опен () није једини који вам стоји на располагању. опен (наме), опенАутх (ури, аутх, флагс) и опенРеадОнли (наме) су три различита позива од којих сваки враћа вирЦоннецт објекат и нуди различит ниво контроле над хостом. Више о њима можете прочитати овде. За сада имамо цонн као објекат класе вирЦоннецт. Овај објекат је пролаз за готово све, од конфигурисања самог хипервизора до модификације гостију и њихове алокације ресурса.

Када завршите с радом с објектом, обавезно затворите везу позивањем методе цлосе на њему.

>>> повез.Близу()

Међутим, немојте још увек покретати горњу команду. Јер ћемо се још мало поиграти са либвиртом. Питајмо нашег хипервизора неколико детаља о себи, попут имена хоста и броја вЦПУ-а које укупно може понудити гостујућим ВМ-овима.

>>> повез.гетХостнаме ()
'деб'
>>> повез.гетМакВцпус ('кему')
16

Сада морамо да схватимо да су са метаподацима Либвирт о објектима као што су статистика хипервизора, ВМ-ови, њихове информације о умрежавању и складиштењу итд. Сви представљени у КСМЛ формату. КСМЛ је некако сличан ЈСОН-у, само је мало неспретнији (и мало старији). Подаци се чувају и представљају као стринг литерал, а то значи да ако упитате либвирт, а излаз тог упита је КСМЛ, добићете заиста дугачак излаз у једном реду са знаком '\ н' као литералним низом, а не као Нова линија. Уграђена Питхонова функција штампе може да је очисти због људске читљивости

>>> принт (цонн.гетСисинфо ())


Делл Инц.
А14

 

Попис и надгледање ВМ-ова

Ако одржавате велику лепезу ВМ-а, потребан вам је метод за стварање стотина ВМ-ова уједначене конфигурације који се такође правилно скалирају од једноставних радних оптерећења са једним навојем до обраде са више језгара и више навоја. Либвирт позива гостујуће ВМ-ове (или контејнере ако користите ЛКСЦ) Домене и можете да наведете информације о појединачним доменима као и да их конфигуришете ако ваш вирЦоннецт објекат има довољне привилегије.

Да бисте добили информације о ВМ-овима и њиховом коришћењу ресурса, можете да користите следеће позиве:

>>> повез.листДомаинсИД ()
[4, 5]

Ово враћа низ ИД-ова домена који су само мали цели бројеви за једноставно подешавање либвирт-а. Поузданији начин означавања ваших ВМ-ова, без два ВМ-а (рецимо на различитим чворовима) са истим ИД-ом или именом, јесте употреба УУИД-ова. У либвирт-у све може имати УУИД, који је насумично генерисан 128-битни број. Шансе да направите два идентична УУИД-а су заиста мале.

Мрежа за ваше виртуелне машине, сами ВМ-ови, па чак и спремишта за складиштење и волумени имају своје појединачне УУИД-ове. Искористите их либерално у свом Питхон коду, уместо да се ослањате на људска додељена имена. Нажалост, начин на који се могу добити УУИД-ови домена је помало неуредан у тренутној имплементацији ове библиотеке, по мом мишљењу. Потребно је да наведете ИД ВМ-а (ИД домена), ево како то изгледа.

домаинИДс = цонн.листДомаинсИД ()
за домаинИД у домаинИДс:
домаин = цонн.лоокупБиИД ()
ууид = домен.УУИДСтринг ()
принт (ууид)

Сада можете да видите листу УУИД-ова домена. Такође смо налетјели на нови либвирт Питхон Објецт.вирДомаин, који има свој скуп метода повезаних с њим, слично променљивој цонн која је била либвирт.вирЦоннецт објект и са њим су повезане методе попут листДомаинсИД () и лоокупБиИД ().

За обе ове методе можете користити уграђене Питхонове методе дир () тако да објекти могу навести своје интерне променљиве и методе.

На пример:

>>> дир (цонн)
['_… Гс', 'сцхедулерТипе', 'сцреенсхот', 'сецуритиЛабел', 'сецуритиЛабелЛист',
'сендКеи', 'сендПроцессСигнал', 'сетАутостарт', 'сетБлкиоПараметерс', 'сетБлоцкИоТуне',
'сетГуестВцпус', 'сетИнтерфацеПараметерс', 'сетМакМемори', 'сетМемори', 'сетМемориФлагс',
'сетМемориПараметерс', 'сетМемориСтатсПериод', 'сетМетадата', 'сетНумаПараметерс',
'сетПерфЕвентс', 'сетСцхедулерПараметерс', 'сетСцхедулерПараметерсФлагс', 'сетТиме',
'сетУсе' ...]

Ово вам заиста може помоћи да се брзо сетите тачног назива методе и предмета са којим би требало да се користи. Сад кад имамо либвирт.вирДомаин објект, искористимо га за навођење разних детаља о овом покренутом ВМ-у.

>>> домен.инфо ()

Ово вам даје информације у вези са стањем ВМ-а, максималном меморијом и процесорским језгрима као што је овде приказано.

Такође можете пронаћи друге информације о ВМ-у користећи различите методе попут ОСТипе ()

>>> домен.ОСТипе ()
'хвм'

Постоји велика флексибилност када је у питању АПИ који либвирт излаже, а ви морате само да бринете о свом случају употребе и без бриге о огромној сложености коју либвирт обрађује.

Закључак

У мојим путовањима у Либвирт технологију, одсуство УУИД-ова као грађанина прве класе вероватно је била једина болна тачка са којом сам се суочио и која ми се чинила као лош избор дизајна. Осим тога, либвирт је прилично добар за оно што постиже. Да, постоји много других ствари које су могле бити учињене на бољи начин, али то је увек случај са софтвером. Посматрајући уназад, лоше одлуке су увек очигледне, али трошкови преписивања дела софтвера, широко распрострањеног као либвирт, често су огромни.

Пуно тога је изграђено на врху, јер се пројекат развијао полако и стабилно.

Уместо да покушавам да научим читаву библиотеку одједном, препоручио бих да смислите мали пројекат или идеју и примените то користећи Питхон и Либвирт. Документација је прилично опсежна са пуно примера и заиста вас приморава да истовремено размишљате о правилном дизајну софтвера и виртуализацији.

Како користити Ксдотоол за подстицање кликова мишем и притиска тастера у Линуку
Ксдотоол је бесплатан алат за командну линију отвореног кода за симулацију кликова мишем и притиска тастера. Овај чланак ће покрити кратак водич о кор...
Топ 5 ергономских производа за рачунарски миш за Линук
Да ли дуготрајна употреба рачунара изазива бол у зглобу или прстима? Патите ли од укочених зглобова и стално морате да се рукујете? Да ли осећате гору...
Како променити поставке миша и додирне табле помоћу Ксинпут-а у Линук-у
Већина Линук дистрибуција подразумевано испоручује библиотеку „либинпут“ за обраду улазних догађаја на систему. Може да обрађује улазне догађаје и на ...