Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Hashicorp Packer - автоматизация установки и настройки OC

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Официальный сайт https://www.packer.io/
 
Скачивает исходные дистрибутивы и автоматизирует создание настроенных виртуальных машин.
 
В случае винды можно получить vhd/vhdx и потом настроить native boot в новую систему,
    ну или склонировать содержимое россыпью на физический диск
 
Требования для локальной работы: хотя бы один гипервизор в рабочем состоянии.
Доступнее всего hyper-v (компонент старших версий винды) и virtualbox (устанавливается)
Vmware Workstation тоже годится
 
Для линуксоидов сработает в qemu/kvm - но настройка вашего линя для удобства с пакеером дело ваше
 

Код:
 
git clone https://github.com/StefanScherer/packer-windows.git
 

- репозиторий со всем необходимым для билда всех версий винды
 
Документация на гитхабе, если что-то останется неясно готов объяснить
 
Если нет желания связываться с гитом, можно скачать к себе архивом
https://github.com/StefanScherer/packer-windows/archive/my.zip
 
 
Билд под Hyper-V запускается командой из распакованной папки packer-windows

Код:
 
  packer build --only=hyperv-iso windows_10.json
 

 
Как вариант, можно использовать --only=virtualbox-iso  
Без этого флага пакер будет создавать Vagrant боксы для всех доступных гипервизоров, это могут быть ещё qemu и vmware (последний за деньги)
 
Возможно стартовать не с оригинального ISO, а с ранее кем-то созданного бокса из публичного облака  
https://app.vagrantup.com/boxes/search?order=desc&page=1&provider=&q=windows&sort=updated&utf8=%E2%9C%93
 
 
Лог автоматического создания свежей десятки 2004 билдером hyperv-iso
(скрипты из репозитория без изменений)
 
 
----
Следующим сообщением будет инструкция для быстрого создания системного окружения для запуска этой команды, т.е. для настройки чистой винды и установки Virtualbox и самого Packer из пакетного менеджера Chocolatey

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 23:22 31-05-2020 | Исправлено: LevT, 19:03 13-07-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
настройка свежеустановленной винды для запуска Packer
 

Код:

 
Set-WinSystemLocale -SystemLocale 'ru-Ru'
Set-TimeZone -Id 'Russian Standard Time'
 
 
Set-ExecutionPolicy RemoteSigned -Force
 
# скачаем в фоне хелп
Start-Job -ScriptBlock {Update-Help}
 
 
# показывает доступные в винде пакетные менеджеры,  
# флаг -ForceBootstrap автоматизирует установку dll, от которой пока зависит пакетный менеджмент в винде
# C:\Program Files\PackageManagement\ProviderAssemblies\nuget\2.8.5.208\Microsoft.PackageManagement.NuGetProvider.dll
Find-PackageProvider -ForceBootstrap
 
Install-Module Chocolatey -Force
 
 
# этот шаг можно пропустить
New-Item '~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1' -Force
New-Item '~\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1' -Force
New-Item '~\Documents\PowerShell\Microsoft.VSCode_profile.ps1' -Force
 
 
# выше создаются оба профиля для консольного хоста и для ISE,  
# но автодополнение после choco установится только в тот из них, откуда запущено  
# потом можно повторить в другом хосте
Install-ChocolateySoftware -Verbose
 
# чтобы не спрашивало подтверждения на установку каждой софтины
Get-ChocolateyFeature  
Enable-ChocolateyFeature allowGlobalConfirmation
 
Install-ChocolateyPackage 7zip, notepadplusplus -Confirm:$false
 
# требуется перезагрузка после выполнения
Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V-All -Online  
 

 
 

Код:

# перенастроим в удобные места пути к виртуалкам и vhd/x
 
$VmPath = 'C:\A\VM\Hyper-V'
$VhdPath = Join-Path -Path $VmPath -ChildPath 'Virtual Hard Disks'
New-Item $VhdPath -ItemType Directory -Force
 
Set-VMHost -VirtualMachinePath $VmPath -VirtualHardDiskPath $VhdPath
 
Install-ChocolateyPackage packer -Confirm:$false
 
# здесь будут кэшироваться скачанные ISO
$PackerCacheDir = 'C:\A\Packer\PACKER_CACHE_DIR'
 
New-Item $PackerCacheDir -ItemType Directory -Force
 
[System.Environment]::SetEnvironmentVariable('PACKER_CACHE_DIR',$PackerCacheDir,[System.EnvironmentVariableTarget]::Machine)
 
# команда из комплекта choco
refreshenv

 
 
При первом запуске билда провайдером hyperv Packer создаст виртуальный свич 'packer-hyperv-iso'.
Чтобы в виртуалке был интернет (например для скачивания обновлений), надо после его создания выпустить его в интернет:
 

Код:

$NetAdapterToInternet = Get-NetRoute | Where DestinationPrefix -eq '0.0.0.0/0' | Get-NetAdapter  
 
Set-VMSwitch -Name packer-hyperv-iso -NetAdapterName $NetAdapterToInternet.Name -AllowManagementOS $true

 
 
Добавлено:
 
 
Да, насчёт совместимости виртуалок VirtualBox и Hyper-V я похоже заблуждался.
 
VirtualBox давно объявил, что проблему решил после

Код:
 
Enable-WindowsOptionalFeature -FeatureName HypervisorPlatform -Online  
 

 
Но нет, пока только делает вид...
 
Тем не менее,  
 

Код:

Install-ChocolateyPackage virtualbox -Confirm:$false
 
# делаем удобный путь для виртуалок
 
$VboxDefaultMachinePath = 'C:\A\VM\Virtualbox'
New-Item $VboxDefaultMachinePath -ItemType Directory -Force
vboxmanage setproperty machinefolder $VboxDefaultMachinePath  

 
после этого можно билдить в нём
 
Если включён Hyper-V, то надо предварительно сделать

Код:

bcdedit /set hypervisorlaunchtype off  

 
и перезагрузиться...
 
Настраивать свич для virtualbox нет нужды
 
 
Добавлено:
 
Лог настройки винды билдером virtualbox-iso

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 02:04 01-06-2020 | Исправлено: LevT, 12:48 23-07-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как вариант, можно использовать --only=virtualbox-iso  
Без этого флага пакер будет создавать Vagrant боксы для всех доступных гипервизоров, это могут быть ещё qemu и vmware (последний за деньги)

 
Создать бокс полностью автоматически с помощью вмваре воркстанции тоже можно, аналогично виртуалбоксу
 
Подробнее...
Ещё подробнее по запросу
 
Платный только Vagrant vmware плагин, который позволяет запускать виртуалки в сочетаниях из таких боксов (самодельных или взятых из публичного vagrantcloud)
 
До сих пор никто не спросил, что делать дальше с созданными пакером боксами.
Видимо, всем понятно  

 
 
Добавлено:
 
Лог создания настроенной винды в вмваре воркстанции
 
Потребовалось 30 с лишним Гб свободного места на SSD, мне не хватило совсем чуточку для успешного билда
Но всё делалось автоматически, от идеи попробовать варю до результата прошло около часа

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 12:21 08-06-2020 | Исправлено: LevT, 13:21 08-06-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Написалось где-то по соседству
 
Пакер - это оркестратор автоустановки и "быстрой настройки" ОС.
Смысл его именно в его конфигурации - какие именно скрипты запускать в этом процессе, всё остальное обеспечивает пакер.
 
Освобождя умельцев от титанического сизифова труда по изобретению велосипедов
Перепаковка iso не нужна, т.к. пакер может юзать исходные образы из интернета, управление сборочной виртуалкой тоже автоматизировано пакером.
 
Отлаженные с пакером скрипты - обычные скрипты (в винде cmd/vbs/ps1), и могут впоследствии запускаться любым другим способом.
 
Пакер всего лишь экономит усилия умельцев и помогает их эффективности.
Например, с ним можно не дожидаться форумных стонов и, прежде чем делиться своими скриптами "быстрой настройки", за один день перепробовать их на десятках разных систем

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 14:37 09-06-2020 | Исправлено: LevT, 14:41 09-06-2020
Art3mka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В случае винды можно получить vhd/vhdx и потом настроить native boot в новую систему,
    ну или склонировать содержимое россыпью на физический диск

 
А вот про это поподробнее можно.
 
И мне, как абсолютному новичку, не очень понятно, если есть возможность пояснить. Вот у меня комп с установленной Oracle VM VirtualBox. С помощью этой утилиты я могу быстренько создать образ актуальной Windows 10 с различными твиками?
 
Второй момент
Цитата:
настройка свежеустановленной винды для запуска Packer
, а если не свежая? Или я смысл просто неулавливаю? Т.е. зачем Packer на свежей винде? Спасибо!
 

Всего записей: 93 | Зарегистр. 01-12-2008 | Отправлено: 11:31 16-06-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Art3mka

Цитата:
Вот у меня комп с установленной Oracle VM VirtualBox. С помощью этой утилиты я могу быстренько создать образ актуальной Windows 10 с различными твиками?

 
Да.
 
 

Цитата:
, а если не свежая? Или я смысл просто неулавливаю? Т.е. зачем Packer на свежей винде? Спасибо!

 
При желании, можно проделать всё то же руками или на несвежей винде.
Но достичь своего идеала за один присест невозможно,
       будешь отмерять 7777 раз - и всё равно отрежешь неправильно.
 
Так что, практически удобно переехать в свежую винду и уже в ней собирать следующую
Это называется dogfooding
(Искал по-русски покороче, не нашёл)
 
Сам сидишь в той оси, что только что собрал, и неизбежные улучшизмы фиксируешь в первую очередь в сборочных скриптах.
Пакер позволяет очень быстро собрать следующий релиз.
 
 
Добавлено:

Цитата:
А вот про это поподробнее можно.

 
Любой виртуальный диск можно примонтировать в хостовую систему соотв. утилитой.
А затем склонировать одним из бесчисленных инструментов - акронисом/парагоном/минитулом/чем угодно - на физический диск.
 
Если же диск в формате vhd или vhdx - то удобнее загрузить с него винду на физическом железе.
Выходит, что не нужна довольно длительная операция клонирования содержимого виртуального носителя на физический
    (к тому же иногда в зависимости от [не]знакомства с инструментами-"акронисами" требующая лишней перезагрузки в PE)

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 11:56 16-06-2020 | Исправлено: LevT, 12:10 16-06-2020
Art3mka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! Идея у меня возникла такая. Сделать образ актуальной винды с набором драйверов для машины и набором софта. Далее все твики уже тестировать на клоне этой машины. Так же интересн был бы сценарий апробации софта для автоматической установки (Multi-OEM/Retail Project (MRP) или ) и создания образа vhd или vhdx. Я думаю здесь конечно и ручками все можно, но автоматизировать интереснее.
 
Теперь по утилите. Чтобы пользоваться утилиткой я скачиваю, например, архив из 1 сообщения. В папку iso копирую образ и командой  
 

Код:
 
Install-ChocolateyPackage virtualbox -Confirm:$false
 
# делаем удобный путь для виртуалок
 
$VboxDefaultMachinePath = 'Мой путь'
New-Item $VboxDefaultMachinePath -ItemType Directory -Force
vboxmanage setproperty machinefolder $VboxDefaultMachinePath  

 
назначаю место для образа и  
 

Код:
 
  packer build --only=hyperv-iso windows10.json

 
запускаю установку?
 
 
 
 
 

Всего записей: 93 | Зарегистр. 01-12-2008 | Отправлено: 13:48 16-06-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Art3mka

Цитата:
Сделать образ актуальной винды с набором драйверов для машины и набором софта. Далее все твики уже тестировать на клоне этой машины.

 
У себя можешь делать так, как тебе удобнее.
Но и со своими проблемами в таком случае останешься наедине.
 
Наоборот, кто используют один и тот же комплект исходников (инсталляторы и ISO/ или боксы из vagrantcloud) - легко помогут друг другу со скриптами.
 
Кстати, если винда десятка смысла интегрировать дрова нет: она загрузится на любом железе и нужные дрова потом подтянет.
 
 

Цитата:
Теперь по утилите. Чтобы пользоваться утилиткой я скачиваю, например, архив из 1 сообщения. В папку iso копирую образ и командой  

 
Если у тебя интернет не "деревенский",  
    советую для начала сделать в точности так, как я написал,  
 
т.е. позволить пакеру скачать evaluation ISO и скриптам с гитхаба отработать в неизменном виде.
 
Я готов поддержать: помочь преодолеть трудности и ответить на любые вопросы в этом сценарии
Менять что-то будешь потом, когда получишь самостоятельный успешный опыт.
 
 
Добавлено:

Цитата:
В папку iso копирую образ и командой  

 
И откуда по-твоему в таком случае пакер узнает, что ему не надо вытягивать iso?  
 
 
Но если хочешь сразу заюзать свой уже скачанный ISO, то см. раздел Using existing ISOs тут
https://github.com/StefanScherer/packer-windows/blob/my/README.md
 
но в предыдущем разделе Product Keys предупреждают, что придётся ещё править Autounattend.xml, т.к. комплектный заточен под evaluation исошники

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 14:46 16-06-2020 | Исправлено: LevT, 15:16 16-06-2020
Art3mka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Попробую, как Вы сказали! Начинать с малого надо!  

Код:
vboxmanage : Имя "vboxmanage" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличи
 

 
Первая проблема

Всего записей: 93 | Зарегистр. 01-12-2008 | Отправлено: 18:05 16-06-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vboxmanage.exe - консольная утиль из комплекта virtualbox
Если не находит её автоматически, значит нужного каталога нет в PATH
 
Можно добавить его туда вручную  
или не добавлять, а перед запуском сделать cd в этот каталог  
 
Если ставить всё в чистую систему так как у меня написано через chocolatey, та утиль оказывается уже в пути
 
 
Добавлено:
 
Да, если были в виртуалбоксе какие-то виртуалки уже - возможно, что устроит вариант проскочить этот шаг (т.е.. не менять путь для новых виртуалок)
 
Добавлено:
 
И ещё.
Пакеру-то тоже понадобится vboxmanage, так что PATH всё-таки придётся подправить
 

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 18:13 16-06-2020 | Исправлено: LevT, 18:16 16-06-2020
Art3mka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вроде пошло, но на работе через прокси все и как всегда проблемы. Попробую дома сделать

Всего записей: 93 | Зарегистр. 01-12-2008 | Отправлено: 09:05 17-06-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Art3mka
 
Да, у каждой софтины свои настройки за прокси, и никто не обязан слушаться "общевиндовых" настроек.
С удивлением сам не нахожу решения, как сам пакер попросить юзать прокси, зато легко находится как настроить прокси в chocolatey
 
Для вариантов деревенского/запроксированного интернета  
    есть систематическое спасение: завести у себя за прокси собственный репозиторий "артефактов" (исошников, инсталляторов, шоколадных пакетов, повершел модулей)  
 
Чтобы всё проверенное и регулярно нужное всегда хранилось под рукой.

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 10:07 17-06-2020 | Исправлено: LevT, 10:21 17-06-2020
LevT



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Исправил досадную опечатку в заглавном сообщении, из-за которой кто-то мог обломаться и бросить это дело
 
packer build --only=hyperv-iso windows_10.json

Всего записей: 17168 | Зарегистр. 14-10-2001 | Отправлено: 19:10 13-07-2020
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Программы » Закладки » Hashicorp Packer - автоматизация установки и настройки OC


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru