Esxi: различия между версиями
Vovan (обсуждение | вклад) (→MAC адреса) |
Avp (обсуждение | вклад) |
||
(не показано 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. Это новый мак адрес. |
Строка 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
Включить возможость использования виртуальными машинами вложенной виртуализации
Это когда сам 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. Ну или через другой вебсервер.