wiki:notes/vmware

Version 48 (modified by root, at 2017-04-05T07:29:01Z) (diff)

--

заметки о vmware

обновление esxi 5 и выше

онлайн

просмотр обновлений тут, инструкция по офлайн обновлению тут.

разрешаем httpClient на гипервизоре:

esxcli network firewall ruleset set -e true -r httpClient


смотрим что появилось новенького:

esxcli software sources profile list \
 -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml


после выбора обновления запускаем установку:

esxcli software profile update \
 -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml \
 -p ESXi-5.5.0-20150402001-standard


после обновления ребут обязателен:

reboot -f


запрещаем httpClient на гипервизоре, ибо нефиг:

esxcli network firewall ruleset set -e false -r httpClient

оффлайн

esxcli software vib update -d /vmfs/volumes/d91/ESXi550-201512001.zip


обмануть vsan о ssd

disk2ssd=naa.618e7283727cafd01d42561a0fb1680a
export disk2ssd
esxcli storage nmp satp rule add --satp=VMW_SATP_LOCAL --device ${disk2ssd} --option "enable_local enable_ssd"
esxcli storage core claiming unclaim --type=device --device ${disk2ssd}
esxcli storage core claimrule load
esxcli storage core claimrule run
esxcli storage core claiming reclaim -d ${disk2ssd}

проверка результата:

esxcli storage core device list | grep -i -E "^naa|ssd|local"


графики vsphere после отключения ipv6

вместо отображения данных рисуют ошибку. лечится так.

vcsa 6.0 dns/ntp:

appliancesh
# рутовый пароль
dns.hostname.get
dns.domains.list
dns.servers.get
ntp.get


добровольный выход esxi из vsan

esxcli vsan storage list
esxcli vsan storage automode set --enabled false
esxcli vsan storage remove -s [SSD-DEVICE-ID]
esxcli vsan cluster leave
esxcli vsan cluster get

подробности


сменить ip-адрес у vcsa из консоли

/opt/vmware/share/vami/vami_config_net


таймауты vcsa


слабый пароль пользователю esxi

pam запрещает давать локальным пользователям esxi слишком простые пароли. чтобы разрешить (временно, до перезагрузки) задание слабого пароля: в /etc/pam.d/system-auth в строчке password requisite /lib/security/$ISA/pam_passwdqc.so retry=3 min=8,8,8,7,6 заменить на min=6,6,6,0,0


отключение hotplug для сетевушек и дисков

чтобы гостевая венда не предлагала извлечь сетевые карты и диски внутри виртуалки, нужно добавить в .vmx строчку:

devices.hotplug = "false"

весьма неприятно, что при экспорте/импорте виртуальной машины через файл эта настройка исчезнет.


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

например, для копирования в новый или другой vcenter.

Connect-VIServer
Get-AlarmDefinition | 
 Select Name,@{ 
  n = "Action"; e = {
   $_ | 
    Get-AlarmAction | 
    Where {
     $_.ActionType -eq "SendEmail"
    }
  } 
 } | 
 Where-Object {
  $_.Action -match "SendEmail"
 }


snmp в esxi

v1,2c:

esxcli system snmp set --communities public
esxcli system snmp set --enable true
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false
esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 10.0.0.0/8
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
/etc/init.d/snmpd restart

v3:

esxcli system snmp set --authentication MD5
esxcli system snmp set --privacy AES128
esxcli system snmp hash -r -A password1 -X password2
esxcli system snmp set --users cacti/hash_from_prev_command1/hash_from_prev_command2/priv
esxcli system snmp set --enable true
snmpwalk -v3 -u cacti -l AuthPriv -a MD5 -A password1 -x AES -X password2 esxi.host


в esxi 5.1: Found extra CIM-XML Indication Subscription после применения host profile

  • host profile → detach (сначала можно попробовать без этого);
  • esxcli system snmp set --enable false;
  • host profile → attach, remediate;


сохранение и восстановление конфигурации esxi 5 и выше

vim-cmd hostsvc/firmware/sync_config
vim-cmd hostsvc/firmware/backup_config
vim-cmd hostsvc/maintenance_mode_enter
vim-cmd hostsvc/firmware/restore_config /tmp/configBundle.tgz


permission denied при попытке запуска vmware remote console у пользователя с ограниченным доступом

нужно добавить пользователя в глобальную группу и этой группе навесить роль с единственным разрешением virtual machine -> interaction -> console interaction в каждый из esxi узлов. либо, если лениво, глобально на весь кластер с галочкой propagate to children.


нет /dev/disk/by-id/wwn-* внутри виртуалки c линуксом

добавить в advanced параметры виртуальной машины disk.EnableUUID = TRUE


заплатка для виртуалок на ненадёжном сторедже

для el6 /etc/udev/rules.d/99-vmware-scsi-udev.rules:

#
# VMware SCSI devices Timeout adjustment
#
# Modify the timeout value for VMware SCSI devices so that
# in the event of a failover, we don't time out.
# See Bug 271286 for more information.
ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware  ", ATTRS{model}=="Virtual disk    ", RUN+="/bin/sh -c 'echo 777 >/sys$DEVPATH/timeout'"
ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware, ", ATTRS{model}=="VMware Virtual S", RUN+="/bin/sh -c 'echo 777 >/sys$DEVPATH/timeout'"

для el6 /usr/lib/udev/rules.d/99-vmware-scsi-udev.rules:

#
# VMware SCSI devices Timeout adjustment
#
# Modify the timeout value for VMware SCSI devices so that
# in the event of a failover, we don't time out.
# See Bug 271286 for more information.
ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*" , ATTRS{model}=="Virtual disk*", RUN+="/bin/sh -c 'echo 777 >/sys$DEVPATH/device/timeout'"
ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*" , ATTRS{model}=="VMware Virtual S", RUN+="/bin/sh -c 'echo 777 >/sys$DEVPATH/device/timeout'"

и не забыть udevadm trigger.


ошибка requirement cannot be satisfied within the ImageProfile вместо обновления

нужно вытащить нужный vib и обновления, установить его через esxcli software vib install -v /tmp/xxxxxxxxxxx.vib и после этого повторить обновление.


последовательность интерфейсов в esxi

иногда в esxi интерфейсы располагаются не в той последовательности, которую ожидают профили хостов. это можно поправить в /etc/vmware/esx.conf. на текущий момент (esxi 5.5u3) править нужно в двух местах:

  1. /vmkdevmgr/pci/s00000004.00/alias = "vmnic0";
  2. /device/000:138:00.0/vmkname = "vmnic0";


изменение картинки на вход в vcsa

/usr/lib/vmware-sso/vmware-sts/webapps/websso/resources/css:

  • login.css

    diff -u login.css.orig login.css
    old new  
    1818   background: -ms-linear-gradient(top,  #3a8dc8 0%,#183a62 100%); /* IE10+ */
    1919   background: linear-gradient(to bottom,  #3a8dc8 0%,#183a62 100%); /* W3C */
    2020   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a8dc8', endColorstr='#183a62',GradientType=0 ); /* IE6-9 */
    21 
     21   background-image: url(../../resources/img/ghost.gif);
     22   background-size: cover;
    2223   background-repeat:no-repeat;
    2324   margin: 0;
    2425   font-size:12px;

/usr/lib/vmware-sso/vmware-sts/webapps/websso/WEB-INF/views:

  • unpentry.jsp

    diff -u unpentry.jsp.orig unpentry.jsp
    old new  
    8080//var _cspId = createCspPluginObject();
    8181
    8282if (isVCLogin()) {
    83     document.write("<img id=\"topSplash\" src=\"../../resources/img/AppBgPattern.png\"/>");
     83//    document.write("<img id=\"topSplash\" src=\"../../resources/img/AppBgPattern.png\"/>");
    8484
    8585    document.write("<img id=\"brand\" src=\"../../resources/img/vmwareLogoBigger.png\" />");
    8686}

/usr/lib/vmware-sso/vmware-sts/webapps/websso/resources/js:

  • websso.js

    old new  
    7070          var smartcardIDEle = document.getElementById("smartcardID");
    7171          smartcardIDEle.parentNode.removeChild(smartcardIDEle);
    7272          // Disable login button on page load unless smartcard authn is on
    73           $('#submit').prop('disabled',true);
     73          $('#submit').prop('disabled', false);
    7474      }
    7575
    7676      //Remove windows session or smartcard authn checkbox if the corresponding authn type was not turned on
     
    342342         };
    343343
    344344   var enableLoginButton = function enableLoginButton() {
    345 
     345/*
    346346            var userEle = document.getElementById('username');
    347347            var sspiEle = document.getElementById('sspiCheckbox');
    348348            var smartcardEle = document.getElementById('smartcardCheckbox');
     
    352352                  $('#submit').prop('disabled', false);
    353353            } else {
    354354               $('#submit').prop('disabled', true);
    355             }
     355            }*/
    356356         };