Определить виртуальную машину OpenVZ изнутри

2172
Alfred Godoy

Можно ли как-то определить, в каком контейнере OpenVZ я нахожусь, внутри контейнера? Я работаю над настройкой, где машины OpenVZ должны загружать один и тот же (только для чтения) образ диска, поэтому я не могу настроить их по отдельности в файловой системе. Мне нужен уникальный идентификатор для каждого из виртуальных серверов, который будет использоваться скриптами, работающими внутри контейнеров OpenVZ.

(Я работаю с Debian Lenny, кстати)

5

2 ответа на вопрос

7
Steven Monday

Каждый контейнер в хосте OpenVZ имеет уникальный идентификатор контейнера, также известный как его VEID. Внутри контейнера вы должны быть в состоянии прочитать его VEID следующим образом:

awk '' /proc/vz/veinfo 

Этот идентификатор должен быть постоянным для данного контейнера, так как он связан с .confфайлом контейнера, который настраивает его для OpenVZ.

1
jhcaiced

Моей первой идеей будет то, что вы можете использовать IP или MAC-адрес каждой виртуальной машины, чтобы различать их и передавать это значение в ваши сценарии.

Спасибо за ответ! HWaddr всегда выглядит так в контейнерах OpenVZ: «00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00». Уникальный идентификатор будет использоваться для настройки сети (и других компонентов init.d, которые были настроены до создания сети), поэтому в моей ситуации IP-адрес также не будет работать. :( Alfred Godoy 12 лет назад 0
Другой вариант: на жестком диске должно быть поле uuid, которое должно быть разным для каждой виртуальной машины, но в любом случае вы можете сначала получить IP-адрес, а затем использовать его для персонализации каждого контейнера позже. jhcaiced 12 лет назад 0

Похожие вопросы