четверг, 29 августа 2013 г.

Как удалить iSCSI Software Adapter из VMware ESXi сервера

Если перейти во вкладку "Configuration->Storage Adapters" и попытаться удалить iSCSI Software Adapter через команду контекстного меню "Remove", данный пункт окажется недоступен.
Решается вопрос следующим образом:

1. В том же меню вместо "Remove" выбираем "Properties".
2. В открывшемся окне на вкладке "General" жмем кнопку "Configure".
3. В поле "Status" снимаем галку "Enabled".
4. Для применения настройки необходимо перезагрузить гипервизор.


В том случае, если загрузка самого гипервизора настроена по iSCSI, после перезагрузки сервера адаптер будет автоматически включен обратно.

понедельник, 19 августа 2013 г.

Скрипт командной строки CMD с ветвлением по версии выпуска ОС Windows

Ниже приведен пример единого cmd-скрипта, который позволяет выполнять для каждой версии операционной системы Microsoft Windows соответствующий ей набор консольных команд:


@echo off
setlocal
for /f %%v in ('wmic os get version /value^|find "Version"') do set %%v
set version=%Version:~0,3%
if "%version%"=="6.2" (
rem Код для Windows 8 или Windows 2012


rem Конец кода
goto END
)
if "%version%"=="6.1" (
rem Код для Windows 7 или Windows 2008 R2


rem Конец кода
goto END
)
if "%version%"=="6.0" (
rem Код для Windows Vista или Windows 2008


rem Конец кода
goto END
)
if "%version%"=="5.2" (
rem Код для Windows 2003


rem Конец кода
goto END
)
if "%version%"=="5.1" (
rem Код для Windows XP


rem Конец кода
goto END
)
if "%version%"=="5.0" (
rem Код для Windows 2000


rem Конец кода
goto END
)
:END


Определение ОС осуществляется благодаря запросу WMI. В связи с этим для старых систем понадобится дополнительно установить  данные службы и проверить работоспособность утилиты "wmic".

Второй вариант скрипта не нуждается в WMI, а для определения версии использует утилиту командной строки "ver":


@echo off
ver|find "5.0.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 2000


rem Конец кода
goto END
)
ver|find "5.1.">NUL
if NOT errorlevel == 1 (
rem Код для Windows XP


rem Конец кода
goto END
)
ver|find "5.2.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 2003


rem Конец кода
goto END
)
ver|find "6.0.">NUL
if NOT errorlevel == 1 (
rem Код для Windows Vista или Windows 2008


rem Конец кода
goto END
)
ver|find "6.1.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 7 или Windows 2008 R2


rem Конец кода
goto END
)
ver|find "6.2.">NUL
if NOT errorlevel == 1 (
rem Код для Windows 8 или Windows 2012


rem Конец кода
goto END
)
:END


четверг, 15 августа 2013 г.

Создание собственного правила для фаервола VMware ESXi 5

По умолчанию в гипервизоре ESXi находится ряд общих правил встроенного фаервола, удовлетворяющих заложенному разработчиком функционалу. Но иногда, при установке собственными силами дополнительных демонов, появляется необходимость в открытии нестандартных портов.
Чтобы это сделать, нужно создать собственный файл формата VIB и инсталлировать его на гипервизор. Ниже приведена пошаговая инструкция по созданию и внедрению собственного vib-файла:

1. Для начала нам понадобится доступ к командной строке ESXi, через консоль или SSH.

2. Логинимся под root-ом и переходим в каталог где лежат конфигурационные файлы фаервола:

cd /etc/vmware/firewall

3. Тут в качестве примера можно посмотреть xml-файлы с готовыми правилами. Файл service.xml содержит в себе большой список стандартных правил гипервизора.

less service.xml

Для выхода из режима просмотра нажмите "q".

4. Теперь мы знаем как написать файл с необходимым нам правилом, для примера возьмем правило, которое будет пропускать исходящий трафик гипервизора на удаленный порт 5000 по протоколу TCP.

5. Следующем шагом будет установка ESXi Community Packaging Tools, которые можно скачать тут: http://www.v-front.de/p/esxi5-community-packaging-tools.html

6. Запускаем установщик на своем компьютере и указываем папку, например "D:\vmware"


7. Переходим в каталог: "D:\vmware\ESXi5-CPT-v2.1" и создаем в ней папку "stage" и папку "output".

8. Заходим в "stage" и создаем тут структуру каталогов, подобную гипервизору. Должно получится так: "D:\vmware\ESXi5-CPT-v2.1\stage\etc\vmware\firewall"

9. В последней папке создаем текстовый файл "MyRule.xml" и вносим следующие данные:


<ConfigRoot>
  <service>
      <id>MyRule</id>
      <rule id="0000">
          <direction>outbound</direction>
          <protocol>tcp</protocol>
          <porttype>dst</porttype>
          <port>5000</port>
      </rule>
      <enabled>false</enabled>
      <required>false</required>
  </service>
</ConfigRoot>


10. Подготовительные работы закончены. Переходим в каталог
"D:\vmware\ESXi5-CPT-v2.1" и запускаем скрипт "tgz2vib5.cmd" (если включен UAC, запускаем от имени администратора).

11. Заполняем поля в появившимся окне по примеру ниже:


12. Кликаем "Run!". В случае успешной сборки увидите следующее сообщение:


13. Заходим в папку "output" и видим наш vib-файл и лог по сборке.

14. Если нужно получить zip-файл для последующего внедрения данной настройки в инсталляционный диск ESXi, создаем дополнительно каталог: "D:\vmware\ESXi5-CPT-v2.1\zip", запускаем скрипт "vib2zip.cmd", заполняем поля как показано на картинке:


Кликаем "Run!". При успешном выполнении получаем собранный файл в каталоге "zip".

15. Теперь можно приступить к инсталляции vib-файла на гипервизор, для этого копируем данный файл на сервер в каталог "/tmp" с помощью vSphere Client или сторонних утилит, например "WinSCP". Порядок действий следующий: сначала загружаем файл на локальное хранилище (например "datastore1/vib"), затем используем команду "cp":

cp /vmfs/volumes/datastore1/vib/MyRule-1.0.0.x86_64.vib /tmp/MyRule-1.0.0.x8
6_64.vib


16. В консоли гипервизора переходим в каталог с файлом:

cd /tmp

17. Устанавливаем vib-файл:

esxcli software vib install -v "/tmp/MyRule-1.0.0.x86_64.vib" -f

Небольшое примечание:
Параметр "-f" означает форсированную установку. Если его не использовать, то патч не удастся установить пока не будет понижен уровень одобрения ("Acceptance level") до "Community Supported" (Partner Supported по умолчанию).


18. Проверяем вывод консоли, успешна ли была установка:

Installation Result
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: Me_bootbank_MyRule_1.0.0
VIBs Removed:
VIBs Skipped:


Следующей командой можно посмотреть список всех установленных vib-файлов и убедиться, что среди них есть и наш:

esxcli software vib list|less

19. Теперь можно зайти в vSphere Client и включить новое правило, которое должно появится в настройках:


20. Для удаления правила используйте следующую команду:

esxcli software vib remove -n MyRule -f

21. В конце не забудьте удалить vib-файл на локальном хранилище гипервизора.

Установка нового шрифта в Windows с помощью скрипта

Данный cmd-скрипт является примером автоматизации установки нового шрифта на рабочие станции под управлением Windows. Распространять можно с помощью специализированного софта или групповых политик.

@echo off
xcopy "\\server\folder\Myfont.ttf" %systemroot%\Fonts /Y
reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Myfont (TrueType)" /t REG_SZ /d Myfont.ttf