Esxi: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(MAC адреса)
 
(не показано 11 промежуточных версий 1 участника)
Строка 57: Строка 57:
  
 
==MAC адреса==
 
==MAC адреса==
 +
 +
===Сбросить MAC адрес на железный===
 +
 +
Положить внутрь этот скрипт
 +
 +
cat fix.sh
 +
#!/bin/sh
 +
newmac=$(esxcfg-nics -l | grep vmnic0 | awk {'print $7'})
 +
oldmac=$(cat /etc/vmware/esx.conf | grep 'vmkernelnic' | grep -o '..:..:..:..:..:..')
 +
sed -i "s/$oldmac/$newmac/g" /etc/vmware/esx.conf;
 +
echo "test new mac $newmac"
 +
cat /etc/vmware/esx.conf | grep $newmac
 +
echo "please type command: reboot"
 +
 +
Сделать его исполняемым
 +
 +
chmod +x fix.sh
 +
 +
Запустить
 +
 +
./fix.sh
 +
 +
Перезагрузиться
 +
 +
reboot
 +
 +
===Заменить вручную===
  
 
При клонировании виртмашин с esxi вместе с ними клонируются и MAC адреса, которые настраиваются хост-машиной esxi как те, которые используются для работы в сети.
 
При клонировании виртмашин с esxi вместе с ними клонируются и MAC адреса, которые настраиваются хост-машиной esxi как те, которые используются для работы в сети.
Строка 71: Строка 98:
 
  MAC=96:6B:90:F6:35:77
 
  MAC=96:6B:90:F6:35:77
  
это переменная окружения для работы последующих двух вызовов команды sed. Это новый мак адрес.
+
это переменная для работы последующих вызовов команды sed. Это новый мак адрес.
  
 
   
 
   
Строка 93: Строка 120:
 
  /net/pnic/child[0000]/virtualMac = "2E:0E:65:1D:53:90"
 
  /net/pnic/child[0000]/virtualMac = "2E:0E:65:1D:53:90"
 
  /net/pnic/child[0000]/mac = "2E:0E:65:1D:53:90"
 
  /net/pnic/child[0000]/mac = "2E:0E:65:1D:53:90"
 +
 +
=Сменить порт веб интерфейса=
 +
==Зачем?==
 +
Веб интерфейс прекрасно работает на портах, отличающихся от 443 (когда веб интерфейс нужен из-за файрвола и порт на файрволе отличается от родного порта esxi) до момента, пока не будет нужно подключаться к виртуальному дисплею виртмашины.
 +
 +
Еси в момент ошибки посмотреть в отладочную консоль браузера, то будет видно, что при подключении по
 +
 +
wss://
 +
 +
порт у хоста не меняется (т.е. остаётся 443).
 +
 +
Поэтому, необходимо глобально на уровне esxi менять веб порт и забрасывать снаружи точно такой же
 +
 +
==Как?==
 +
 +
Два этапа
 +
 +
===Этап 1===
 +
 +
Входим по ssh и выполняем команды
 +
 +
export OLDPORT=443
 +
export NEWPORT=8516
 +
sed -i "s/$OLDPORT/$NEWPORT/g" /etc/vmware/rhttpproxy/config.xml
 +
 +
Перезагружаемся командой
 +
 +
reboot
 +
 +
 +
===Этап 2===
 +
Опять входим через ssh (не расстраиваемся, если увидим на дисплее виртмашины картину, которая отличается от привычной. Доступ по ssh сохранится)
 +
 +
Выполняем внутри команды
 +
 +
<pre>
 +
export NEWPORT=8503
 +
cat << EOF > /etc/vmware/firewall/changedport.xml
 +
<ConfigRoot>
 +
  <service>
 +
    <id>changedport</id>
 +
    <rule id='0000'>
 +
      <direction>outbound</direction>
 +
      <protocol>tcp</protocol>
 +
      <porttype>dst</porttype>
 +
      <port>$NEWPORT</port>
 +
    </rule>
 +
    <rule id='0001'>
 +
      <direction>inbound</direction>
 +
      <protocol>tcp</protocol>
 +
      <porttype>dst</porttype>
 +
      <port>$NEWPORT</port>
 +
    </rule>
 +
    <enabled>true</enabled>
 +
    <required>false</required>
 +
  </service>
 +
</ConfigRoot>
 +
EOF
 +
</pre>
 +
 +
Тут жмём Enter, чтобы завершить формирование файла посредством heredoc синтаксиса
 +
 +
Обновляем настройки файрвола командой:
 +
 +
esxcli network firewall refresh
 +
 +
==Поможет? (нет!)==
 +
 +
НЕТ!
 +
 +
Если вы надеетесь, что смена порта поможет использовать встроенный плагин, открывающий виртуальный дисплей машины в браузере на порту, отличном от 443, то... Нет, не поможет.
 +
 +
Этот плагин как подключался к wss://host/чтототам (т.е. стандартный 443 порт), так и будет продолжать. Т.е. веб интерфейс будет работать на другом порту, а веб консоль - нет.
 +
 +
Выход один -- проксировать через nginx. Ну или через другой вебсервер.
 +
 +
[[Категория:PVE]]

Текущая версия на 10:02, 4 августа 2021

Запуск внутри PVE

https://medium.com/@alexander.bazhenov/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-vmware-esxi-%D0%B2%D0%BD%D1%83%D1%82%D1%80%D0%B8-proxmox-d5778b5a97a1

Включить возможость использования виртуальными машинами вложенной виртуализации

Это когда сам esxi запущен внутри виртуальной машины, гипервизор для которой представляет вложенную виртуализацию

Надо добавить к каждому конфигу виртмашины параметр

vmx.allowNested = "TRUE"

Вернуть хранилище, которое отвалилось

Смотрим какие доступны:

esxcli storage vmfs snapshot list

в ответе будет идентификатор

Монтируем хранилище на место

esxcfg-volume -M 5d35b757-601d4e84-bd89-0050569254dc

Идентификатор в этом контексте -- это 5d35b757-601d4e84-bd89-0050569254dc

Важно! Нужно после возвращения хранилища на место корректно выключить и включить операционную систему, чтобы убедиться, что при повторном включении хранилище сразу на месте

Оригинал стати с проблемой и решением: https://communities.vmware.com/t5/ESXi-Discussions/Need-to-add-an-existing-local-datastore-from-before-a-re-install/m-p/490383

Заставить всегда при запуске виртмашины автоматически отвечать на вопросы

В файле

/etc/vmware/config

Убрать строчку

vhv.enable="TRUE"

Оригинал стати с проблемой и решением: https://communities.vmware.com/t5/ESXi-Discussions/Confirmation-on-launching-without-VT-x-EPT/m-p/934986#M80220

Проблемы

Разрвернули OVA образ в VirtualBox, а он не работает. Висит на проверке модулей

Нужно переключить архитектуру виртуальной машины на 64-разрядную

Говорит, что нет сетевого адаптера (в VirtualBox)

Нужно переключить сетевой адаптер в режим работы

Intel/PRO 1000 T Server

Диски (в VirtualBox)

Диски нужно вешать на шину

AHCI (SATA)

MAC адреса

Сбросить MAC адрес на железный

Положить внутрь этот скрипт

cat fix.sh 
#!/bin/sh
newmac=$(esxcfg-nics -l | grep vmnic0 | awk {'print $7'})
oldmac=$(cat /etc/vmware/esx.conf | grep 'vmkernelnic' | grep -o '..:..:..:..:..:..')
sed -i "s/$oldmac/$newmac/g" /etc/vmware/esx.conf;
echo "test new mac $newmac"
cat /etc/vmware/esx.conf | grep $newmac
echo "please type command: reboot"

Сделать его исполняемым

chmod +x fix.sh

Запустить

./fix.sh

Перезагрузиться

reboot

Заменить вручную

При клонировании виртмашин с esxi вместе с ними клонируются и MAC адреса, которые настраиваются хост-машиной esxi как те, которые используются для работы в сети. Следовательно запуск больше одного экземпляра в одной сети приводит к тому, что глючит веб интерфейс всех запущенных машин (ещё бы, с одного и того же мак-адреса то в одном сегменте сети!)

Лечится так: заходим по SSH и меняем в конфиге машины стандартные маки на новые -- уникальные.

Для ленивых -- команда

MAC=96:6B:90:F6:35:77;sed -i "s/00:50:56:78:68:2f/$MAC/g" /etc/vmware/esx.conf;sed -i "s/00:50:56:92:54:dc/$MAC/g" /etc/vmware/esx.conf;sed -i "s/00:50:56:6d:bf:61/$MAC/g" /etc/vmware/esx.conf

, где

MAC=96:6B:90:F6:35:77

это переменная для работы последующих вызовов команды sed. Это новый мак адрес.


00:50:56:78:68:2f
00:50:56:92:54:dc
00:50:56:6d:bf:61

мак-адреса в конкретном конфиге (исторически сформированные кем-то там, кто делал саму сборку esxi и паковал её)


Т.е. зайдя на esxi хост по SSH нужно выполнить эту команду, подставив в переменную окружения желаемый мак адрес и заменив старые мак-адреса конкретной конфигурации.


Проверить себя можно так:

cat /etc/vmware/esx.conf | grep 2E:0E:65:1D:53:90


Должно выдать что-то типа этого:

/net/pnic/child[0000]/virtualMac = "2E:0E:65:1D:53:90"
/net/pnic/child[0000]/mac = "2E:0E:65:1D:53:90"

Сменить порт веб интерфейса

Зачем?

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

Еси в момент ошибки посмотреть в отладочную консоль браузера, то будет видно, что при подключении по

wss://

порт у хоста не меняется (т.е. остаётся 443).

Поэтому, необходимо глобально на уровне esxi менять веб порт и забрасывать снаружи точно такой же

Как?

Два этапа

Этап 1

Входим по ssh и выполняем команды

export OLDPORT=443
export NEWPORT=8516
sed -i "s/$OLDPORT/$NEWPORT/g" /etc/vmware/rhttpproxy/config.xml

Перезагружаемся командой

reboot


Этап 2

Опять входим через ssh (не расстраиваемся, если увидим на дисплее виртмашины картину, которая отличается от привычной. Доступ по ssh сохранится)

Выполняем внутри команды

export NEWPORT=8503 
cat << EOF > /etc/vmware/firewall/changedport.xml
<ConfigRoot>
  <service>
    <id>changedport</id>
    <rule id='0000'>
      <direction>outbound</direction>
      <protocol>tcp</protocol>
      <porttype>dst</porttype>
      <port>$NEWPORT</port>
    </rule>
    <rule id='0001'>
      <direction>inbound</direction>
      <protocol>tcp</protocol>
      <porttype>dst</porttype>
      <port>$NEWPORT</port>
    </rule>
    <enabled>true</enabled>
    <required>false</required>
  </service>
</ConfigRoot>
EOF

Тут жмём Enter, чтобы завершить формирование файла посредством heredoc синтаксиса

Обновляем настройки файрвола командой:

esxcli network firewall refresh

Поможет? (нет!)

НЕТ!

Если вы надеетесь, что смена порта поможет использовать встроенный плагин, открывающий виртуальный дисплей машины в браузере на порту, отличном от 443, то... Нет, не поможет.

Этот плагин как подключался к wss://host/чтототам (т.е. стандартный 443 порт), так и будет продолжать. Т.е. веб интерфейс будет работать на другом порту, а веб консоль - нет.

Выход один -- проксировать через nginx. Ну или через другой вебсервер.