LINUX.ORG.RU
ФорумAdmin

Проектирование конфигурационных файлов XML


0

2

файл /home/kvm-1.cfg описывает включенные домены на первом узле:
<domains>
<domain name=«domain1» drbd=«/dev/drbd0» on/>
<domain name=«domain2» drbd=«/dev/drbd1» on/>
<domain name=«domain3» drbd=«/dev/drbd3» off/>
</domains>

файл /home/kvm-2.cfg на втором узле:
<domains>
<domain name=«domain1» drbd=«/dev/drbd0» off/>
<domain name=«domain2» drbd=«/dev/drbd1» off/>
<domain name=«domain3» drbd=«/dev/drbd2» on/>
</domains>

$ cluster /home/kvm-1.cfg # bash скрипт запускаемый hearbeat, который должен прочитать конфигурационный файл и запустить необходимые виртуалки.

Как на bash распарсить XML?

★★★★★

>> Как на bash распарсить XML?

xml2 даёт на выходе формат, пригодный для обработки традиционными утилитами.

GotF ★★★★★
()

И эта...

XML у тебя не той системы, по-моему. Думается, он должен выглядеть как-то так:

<domains>
<domain name="domain1" drbd="/dev/drbd0" state="on"/>
<domain name="domain2" drbd="/dev/drbd1" state="on"/>
<domain name="domain3" drbd="/dev/drbd3" state="off"/>
</domains>

Иначе, вроде как, не по стандартам.

GotF ★★★★★
()

>$ cluster /home/kvm-1.cfg # bash скрипт запускаемый hearbeat, который должен прочитать конфигурационный файл и запустить необходимые виртуалки.

А почему не стандартный VirtualDomain?

anonymous
()
Ответ на: И эта... от GotF

согласен

petav ★★★★★
() автор топика
Ответ на: комментарий от anonymous

а мне надо еще диски DRBD в primary выставить а на противоположном узле в secondary

petav ★★★★★
() автор топика
Ответ на: комментарий от GotF

спасибо, поищу документацию

petav ★★★★★
() автор топика
Ответ на: комментарий от GotF

node@kvm-1:/home$ cat kvm-1.cfg | xml2 | grep domain/
/domains/domain/@name=domain1
/domains/domain/@drbd=/dev/drbd0
/domains/domain/@state=on
/domains/domain/@name=domain2
/domains/domain/@drbd=/dev/drbd1
/domains/domain/@state=on
/domains/domain/@name=domain3
/domains/domain/@drbd=/dev/drbd3
/domains/domain/@state=off

а не подскажите как это все в массив вида загнать:
domains[0][1] = domain1
domains[0][2] = /dev/drbd0
domains[1][1] = domain2
domains[1][2] = /dev/drbd0

Я буду экспериментировать, но все же хотелось примерчик какой нибудь увидеть.

petav ★★★★★
() автор топика
Ответ на: комментарий от GotF

это не очень важно. просто с точки зрения алгоритма потом циклом пройтись и все запустить. Алгоритм можно и другой придумать. Я сейчас в awk пробую разобраться...

petav ★★★★★
() автор топика

а нафига вообще xml.?
баньте не баньте. субъективное мнение.
для хранения данных - да
для конфигов - no

hbars ★★★★★
()

Стоит ли вообще овчинка выделки? переведётся ли девайс из secondary в primary на второй ноде при падении первой ноды? не правильнее ли использовать drbd8.3 и dual primary? Не проще ли использовать libvirt+drbd+дрбдшный гуй на жаве?

anonymous
()
Ответ на: комментарий от anonymous

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

petav ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.