Глава 1. Введение

Добро пожаловать в самую первую главу Foundations of Libvirt Development. В этой главе мы изучим что рассматривает данная книга и те соглашения, которые я использую на её протяжении.

Что обсуждает эта книга

Это книга про API libvirt и том как с ним работать с ними для управления виртуальными машинами под конкретной системой QEMU/ KVM. libvirt имеет API, который поддерживает множество языков программирования, однако эта работа сосредотачивается исключительно на языке программирования Python.

libvirt может применяться для поддержки целого ряда видов виртуальных машин, а его API являются общей точкой входа для любого типа виртуальных машин. Те виртуальные машины, которые поддерживаются (но не ограничены только ими) KVM, QEMU, Xen, Virtuozzo, VMware ESX, LXC, bhyve и многие иные. Все они могут управляться программируемым образом через API libvirt. Эти API дшимшке работают совершенно одинаково по всем поддерживаем платформам.

Данная книга не рассматривает как устанавливать QEMU/ KVM на какой бы то ни было платформе. Предполагается, что вы либо уже имеете такие навыки, либо уже работаете в некой системе, в которой они уже установлены. Ознакомьтесь с документацией для своей операционной системы относительно инструкций по установке поддержку виртуальной машины.

Имеющийся API Python libvirt является некой объектно- ориентированной системой. Он предоставляет классы для виртуальных подключений, взаимодействия виртуальных машин (доменов), поддержки виртуальной и раельной сетевой среды, поддержку хранилища и выборку информации из самой системы хоста хозяина. Всё взаимодействие с этой системой осуществляется через поддерживаемые классы, а следовательно вам требуется понимать координирует объекты под Python. Убедитесь что вы владеете такими знаниями прежде чем попытаетесь использовать обсуждаемый API libvirt Python.

Дополнительно к уже упомянутым темам API, данная книга рассматривает общее взаимодействие, такое как создание/ уничтожение таких логических сущностей как домены, сетевые среды, хранилища и тому подобное. Данная книга также обсуждает такие темы как получение информации относительно объектов, получения статистических данных относительно объектов, изменение настроек конфигурации некого объекта, запуск/ останов некого объекта и добавление, удаление оборудования из объектов.

API libvirt рассматривает целиком жизненный цикл виртуальных объектов, от создания до уничтожения. Он содержит всё что требуется для управления неким виртуальным объектом на протяжении такого жизненного цикла. Однако она не содержит API для управления таким объектом изнутри (то есть нет API который подключается к внутреннему API самого объекта). Таким образом, для доменов (виртуальных машин), не существует способа для способа предоставлять задания для самого домена или отслеживать нечто происходящее в самом домене. Такой вид администрирования оставляется на самого адиминистратора.

Соглашения книги

Данная книга применяет некоторые соглашения для обращения внимания на поределённые части информации. Применяемые соглашения зависят от самого типа отображаемой информации.

Команды компьютера

Компьютерный команды обычно представляются жирным текстом, так как это представлено в следующем примере:

  • Запустите команду оболочки Unix ls для представления некого списка файлов и каталогов.

Названия файлов

Названия файлов обычно представляются текстом с однотипной шириной символов, как это отображено в следующем примере:

  • Для просмотра содержимого нашего файла report.txt воспользуйтесь командой cat report.txt.

Элементы и литералы языка программирования

Элементы языка программирования содержат такие вещи как названия переменных, литералы, константы, символы, маркеры, функции, названия классов и прочие объекты.

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

  • Следующая строка является выводом исполнения ls:

    
    en-US Makefile publican.cfg
     	   

Вывод компьютера и исходный код

Вывод данных компьютера обычно получается непосредственно с экрана компьютера и представляет собой текст с одностипной шириной символов, как это показывает пример ниже:


books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs   libvirt
 	   

Листинги исходного кода также выделяются из прочего текста таким образом:


from __future__ import print_function
import sys
import libvirt
conn = libvirt.open('qemu:///system')
if conn == None:
    print('Failed to open connection to qemu:///system', \
          file=sys.stderr)
    exit(1)
conn.close()
exit(0)
 	   

Замечания и предупреждения

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

[Совет]Совет

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

[Замечание]Замечание

Важные блоки подробностей которые запросто пропустить, например, изменения конфигурации, которые применяются только для данного сеанса, либо службы, которые следует перезапустить перед применением обновлений. Игнорирование блока с пометкой "Предостережение" не приведёт к утрате данных, но мжет приводить к раздражению и разочарованию..

[Предостережение]Предостережение

Предостережение не стоит игнорировать. Игнорирование предостережения скорее всего вызовет утрату данных.