понедельник, 29 февраля 2016 г.

FreeBSD: Настройка выхода в интернет через прокси

Перед выполнением настроек узнаем, какая командная оболочка используется в вашей ОС Freebsd с помощью команды echo "$SHELL".


Для настройки прокси в командной оболочке csh(в ранних версиях ОС) выполните следующие шаги:

1. Отредактируйте файл "/.cshrc" или "/home/%username%/.cshrc" (где %username% - имя пользователя) с помощью утилиты "ee", добавив туда следующие строки:

setenv HTTP_PROXY login:pass@server:port
setenv FTP_PROXY login:pass@server:port
setenv http_proxy login:pass@server:port
setenv ftp_proxy login:pass@server:port


login - имя пользователя для авторизации на прокси;
pass - пароль для авторизации на прокси;
server - FQDN или IP прокси-сервера;
port - порт прокси-сервера.
При отсутствии аутентификации логин и пароль можно опустить.

2. Далее добавляем строки в файл "/etc/make.conf":

FETCH_ENV=HTTP_PROXY=http://login:pass@server:port
FETCH_ENV=FTP_PROXY=http://login:pass@server:port
FETCH_ENV=http_proxy=http://login:pass@server:port
FETCH_ENV=ftp_proxy=http://login:pass@server:port


Если файл отсутствует, создаём.

________________________________________________________________________________

Для настройки прокси в командной оболочке sh(последнии версии ОС):
 
Добавьте в конец файла "/etc/profile" следующие строки:
export HTTP_PROXY=http://login:pass@server:port
export FTP_PROXY=http://login:pass@server:port
export http_proxy=http://login:pass@server:port
export ftp_proxy=http://login:pass@server:port

login - имя пользователя для авторизации на прокси;
pass - пароль для авторизации на прокси;
server - FQDN или IP прокси-сервера;
port - порт прокси-сервера.
При отсутствии аутентификации логин и пароль можно опустить.

________________________________________________________________________________

Для применения настроек перезагрузите сервер или выполните:
"service netif restart"
Затем:
- при статическом IP:"service routing restart";
- при динамическом IP:"service dhclient restart em0" (где "em0" - ваш сетевой интерфейс, можно узнать выполнив "ifconfig". Данная команда необходима в том случае, если IP адрес раздаёт DHCP сервер).

среда, 24 февраля 2016 г.

Создание пропатченного образа "install.wim" для чистой установки ОС Windows без использования Microsoft Deployment Toolkit

Для того, чтобы интегрировать обновления в установочный wim-образ Windows, выполните следующие шаги:
1. Первым делом понадобится выкачать с сайта Microsoft все обновления для нашей ОС в виде .cab файлов. В этом нам поможет утилита "WSUS Offline Update" или Microsoft Update Catalog.

2. Далее подготовьте инсталляционный образ с Windows: это должен быть файл "install.wim" установочного диска или экспортированный образ из Windows Deployment Services.

3. Находим индекс нужной редакции ОС с помощью команды:
dism /Get-WimInfo /wimfile:path_to_wim_file

4. Монтируем образ в любой пустой каталог командой:
dism /Mount-Wim /wimfile:path_to_wim_file /mountdir:path_to_mountpoint_catalog /index:1
где index - номер редакции, найденный в пункте 3.

5. Теперь можно приступить к установке обновлений, скачанных ранее в виде .cab файлов:
dism /image:path_to_mountpoint_catalog /Add-Package /packagepath:path_to_cab_files
Важно! Для ОС Windows 7 необходимо удалить из папки следующие обновления:
KB2506143
KB2533552
KB2819745
Если этого не сделать, полученный образ будет выдавать ошибку при инсталляции.
Просмотр установленных пакетов:
dism /image:path_to_mountpoint_catalog /Get-Packages

6. При необходимости можно добавить или удалить компоненты Windows. Чтобы просмотреть весь список, выполните:
dism /image:path_to_mountpoint_catalog /Get-Features
Для примера добавим .Net Framework 3.5 и Telnet клиент:
dism /image:path_to_mountpoint_catalog /Enable-Feature /featurename:NetFX3 /All /Source:path_to_sxs_folder /LimitAccess
dism /image:path_to_mountpoint_catalog /Enable-Feature /featurename:TelnetClient
Для выключения компонентов используйте:
dism /image:path_to_mountpoint_catalog /Disable-Feature /featurename:TelnetClient

7. Когда все настройки будут завершены, необходимо сохранить изменения и размонтировать образ:
dism /Unmount-Wim /mountdir:path_to_mountpoint_catalog /Commit
Если вы всё-таки передумали и не хотите сохраняться, воспользуйтесь:
dism /Unmount-Wim /mountdir:path_to_mountpoint_catalog /Discard

Полученный wim-файл можно импортировать обратно в Windows Deployment Services или на установочный диск.

среда, 10 февраля 2016 г.

Что делать, если в Windows 10 не нажимается кнопка "Пуск"

Если вы обнаружили, что под одним из пользователей ничего не происходит после клика левой кнопкой мыши по "Пуску" в ОС Windows 10, то наиболее вероятная причина - отключённая служба:"Брандмауэр Windows". Бывает это в том случае, когда при неработающей службе брандмауэра был создан профиль пользователя во время первого входа в ОС.
Для решения проблемы верните тип запуска данной службы в "Автоматически".


Затем, после того как проблемный пользователь зайдет в систему и убедится в корректной работе кнопки "Пуск", можно снова отключить сервис "Брандмауэр Windows". Но имейте в виду, что у текущих пользователей с их ранее созданными профилями всё будет в порядке, однако проблемы возникнут у новичков, которые в будущем создадут свои профили при выключенной службе.

пятница, 5 февраля 2016 г.

Сжатие тонких дисков (Thin Disks) гостевых машин VMware ESXi до минимального размера

Когда вы создаете виртуальную машину с тонким диском, изначально он занимает на файловой системе VMFS только то пространство, которое заняли файлы гостевой ОС. С течением времени вследствие многократной перезаписи информации происходит увеличение тонкого диска вплоть до максимального размера, хотя фактический объем занятого файлами пространства может оставаться неизменным.

В этом случае нам поможет следующая процедура по сжатию vmdk-файла:
1. Для начала понадобится обнулить всё свободное пространство на томах сжимаемого диска:
В ОС Windows это можно сделать с помощью утилиты "SDelete", выполнив команду:

sdelete.exe –z c:


В Linux эта операция может быть выполнена с помощью команды "dd":

dd if=/dev/zero bs=64k of=zero.temp ; rm zero.temp

2. Далее выключаем гостевую машину и подключаемся с помощью SSH или просто на консоль командной строки ESXi сервера, на котором находится виртуалка.
3. Переходим в папку с машиной, проверяем размер диска до обнуления:

"ls -lh *.vmdk" - максимальный размер, до которого может вырасти диск;

"du –h *.vmdk" - реальный размер, который занимает диск на томе VMFS.


4. Выполняем обнуление командой:

vmkfstools --punchzero VM-01.vmdk

Обратите внимание, что все данные находятся в файле "VM-01-flat.vmdk", но операцию мы проводим над "VM-01.vmdk"!


5. Повторно выполняем проверку диска и замечаем, что реальный размер на томе VMFS уменьшился:


Если гостевая машина имеет более одного виртуального диска, выполните вышеописанные шаги и для остальных файлов .vmdk.

четверг, 4 февраля 2016 г.

Генерация файлов любого размера в Windows

Если вам в тестовых целях понадобится создать файл определённого размера, воспользуйтесь одной из утилит Windows: "fsutil".

Синтаксис команды следующий:

fsutil file createnew myfile.dat 1024

где "myfile.dat" - файл, который мы генерируем;
      "1024" - размер файла в байтах (1024 байт = 1 килобайт).

Для создания серии одинаковых файлов воспользуйтесь конструкцией:

for /L %i in (1,1,100) do fsutil file createnew myfolder\myfile%i.dat 1024

где "myfolder\myfile%i.dat" - шаблон для генерации (будут созданы файлы по пути "myfolder\myfile1.dat", "myfolder\myfile2.dat", "myfolder\myfile3.dat" и т.д.);
      "100" - необходимое количество файлов;
      "1024" - размер файла в байтах.

среда, 3 февраля 2016 г.

VMware PowerCLI: скрипт включения/выключения виртуальных машин в обозначенный временной период для установки обновлений

Эти скрипты пригодятся вам для следующего сценария: включение виртуальных машин на ночь или на выходные дни для автоматической установки обновлений на гостевую ОС или обновления прикладного ПО.

Последовательность операций следующая:
Скрипт включения при выполнении стартует все виртуалки в указанных папках ("Folder1", "Folder2", "Folder3" и т.д.), которые находятся в выключенном состоянии или паузе. Далее список всех затронутых виртуальных машин сохраняется в .xml файл.

########## Change here for your infrastructure
# vCenter Server Name or Ip
$vCenter="vc.mydomain.local"
# vCenter User Name
$vCenterUser="user"
# vCenter User Password
$vCenterUserPassword="yourpassword"
##############################################
Add-PSSnapin VMware.VimAutomation.Core
Connect-viserver $vCenter -user $vCenterUser -password $vCenterUserPassword -WarningAction 0
$vms = Get-Folder "Folder1" | get-vm *
$vms += Get-Folder "Folder2" | get-vm *
$vms += Get-Folder "Folder3" | get-vm *
$vmArray = @()
foreach ($vm in $vms) {
if($vm.PowerState -ne "PoweredOn"){
  $vm | Start-Vm
  $vmArray += $vm.Id
 }
}
$vmArray | Export-Clixml "C:\Temp\VMs_list.xml"

Скрипт выключения, который выполняется спустя некоторое время после того, как будут установлены необходимые обновления, из .xml файла извлекает список машин и выключает их, посылая команду через "VMware Tools", а при отсутствии утилит - жёстко по питанию.

########## Change here for your infrastructure
# vCenter Server Name or Ip
$vCenter="vc.mydomain.local"
# vCenter User Name
$vCenterUser="user"
# vCenter User Password
$vCenterUserPassword="yourpassword"
##############################################
Add-PSSnapin VMware.VimAutomation.Core
Connect-viserver $vCenter -user $vCenterUser -password $vCenterUserPassword -WarningAction 0
$vmArray = Import-Clixml "C:\Temp\VMs_list.xml"
$vms = Get-Folder "Folder1" | get-vm *
$vms += Get-Folder "Folder2" | get-vm *
$vms += Get-Folder "Folder3" | get-vm *
foreach ($vm in $vms) {
 if($vm.PowerState -eq "PoweredOn" -And $vmArray -match $vm.Id){
  $vmTools = Stop-VMGuest -vm $vm.Name -Confirm:$false
  if($vmTools -eq $null){ 
   Stop-VM -vm $vm.Name -Confirm:$false 
  }
 }
}