Inductor este un instrument de linie de comanda utilizat impreuna cu pachetul-windows pentru a crea cutii Windows Vagrant.

Introducere

Inductor foloseste sabloane Go text / sablon pentru a genera fisierele necesare pentru a crea casetele Windows Vagrant. Inductor este menit sa fie utilizat alaturi de scripturi si sabloane care vine cu pachetul-windows.

Utilizare de baza

Instalati inductor:

du-te sa iei github.com/joefitzgerald/inductor

Inductor accepta doar o actiune in mod implicit, care este de a genera fisierele necesare pentru a construi o cutie Windows Vagrant prin Packer:

  • packer.json
  • Autounattend.xml
  • Vagrantfile

Sistemele de operare disponibile sunt conduse de osregistry.json in depozitul packer-windows. Vedeti ce sisteme de operare sunt configurate executand inductor fara argumente:

$ inductor Sisteme de operare disponibile: windows2012 windows81 windows2012r2core windows10 windows2008r2 windows2012r2hyperv windows2012r2 windows2008r2core windows7 Trebuie sa specificati un argument al sistemului de operare

Pentru a executa inductor in pregatirea pentru o constructie Packer, trebuie doar sa treceti in sistemul de operare pe care doriti sa il utilizati, de exemplu:

Aceasta va genera un Autounattend.xml, packer.json si Vagrantfile in directorul curent. Pentru a lega iesirea inductorului in Packer procedati astfel:

packer build $ (inductor windows10)

Aceasta va executa inductor creand toate artefactele necesare pentru Packer si apoi executa Packer folosind sabloanele generate.

Optiuni inductor

Inductor foloseste o multime de valori implicite sanatoase pentru a face calea fericita foarte usoara, cu toate acestea, atunci cand doriti sa iterati pe o cutie si / sau trebuie sa construiti o cutie de productie, veti avea nevoie de putina flexibilitate. Inductor accepta urmatoarele optiuni din linia de comanda:

  • –osregistry <file.json> Aceasta specifica calea fisierului catre un fisier json care contine toate metadatele pentru diferite sisteme de operare Windows. Vezi mai jos Registrul OS.
  • –autounattend <autounattend.xml> Calea fisierului in care inductorul va scrie Autounattend.xml generat.
  • –packer <packer.json> Calea fisierului in care inductorul va scrie packer.json generat.
  • –vagrantfile <Vagantfile> Calea fisierului in care inductor va scrie fisierul vagrant generat.
  • –productkey <key> Cheia de produs Windows care trebuie inserata in Autounattend.xml
  • –skipwindowsupdates Cand este specificat, pasul Windows Update va fi omis.
  • –gui Cand se specifica Packer va rula VM in modul GUI (fara cap = fals).
  • –ssh Cand este specificat, Packer va folosi comunicatorul SSH cu OpenSSH in loc de WinRM. WinRM va fi in continuare configurat pe caseta pentru Vagrant.

Sabloane

Toate sabloanele de intrare sunt text / sabloane Golang standard. In mod implicit, inductorul va incerca sa utilizeze urmatoarele fisiere sablon in directorul de lucru curent:

Inductor accepta sabloane raspandite in mai multe fisiere, precum si sabloane specifice sistemului de operare. Exista o relatie one / many to one de la un sablon de intrare la un fisier generat de inductor de iesire. Inductor va permite, de asemenea, sa specializati sau sa suprascrieti sabloanele de intrare generice de catre sistemul de operare. Acest lucru functioneaza pentru toate cele 3 sabloane de intrare.

Conventia de incarcare a sabloanelor

(Autounattend | packer | Vagrantfile) .tpl Exemplu: Autounattend.tpl

(Autounattend | packer | Vagrantfile) -OS.tpl Exemplu: Autounattend-windows10.tpl

(Autounattend | packer | Vagrantfile) .subsection.tpl Exemplu: Autounattend.oobe.tpl

(Autounattend | packer | Vagrantfile) -OS.subsection.tpl Exemplu: Autounattend-windows10.oobe.tpl

Orice lucru cu un sistem de operare in numele sablonului care se potriveste cu sistemul curent pe care il construiti va avea prioritate fata de acelasi sablon numit fara un sistem de operare in numele fisierului. Orice sablon cu un sistem de operare in nume care nu se potriveste cu sistemul actual pe care il construiti este ignorat.

Avand in vedere urmatoarele fisiere din directorul curent, fisierele aldine vor fi incarcate automat si imbinate impreuna pentru a fi redate pentru a produce fisierul final Autounattend.xml pentru Windows2012r2:

  • Autounattend.tpl
  • packer.tpl
  • Autounattend-windows2012r2.tpl
  • Autounattend-windows2008.tpl
  • Autounattend-windows2012r2.windowsPE.tpl
  • Autounattend-windows2008.windowsPE.tpl
  • Autounattend.windowsPE.tpl
  • Autounattend.offlineServicing.tpl

Variabile sablon

  • OSName
  • Cheie de produs
  • WindowsImageName
  • VirtualboxGuestOsType
  • VmwareGuestOsType
  • IsoURL
  • IsoChecksumType
  • IsoChecksum
  • Comunicator
  • Nume de utilizator
  • Parola
  • Dimensiune disc
  • Berbec
  • CPU
  • Fara cap
  • Actualizari Windows

Functii sablon

  • Contine
  • A inlocui
  • ToUpper
  • Pentru a reduce
  • SafeComputerName

Registrul OS

Registrul sistemului de operare contine atribute predefinite pentru fiecare sistem de operare pentru care inductorul poate genera sabloane Packer. Packer-windows are propriul registru care implicit contine diverse editii de incercare ale sistemului de operare Windows. Acest lucru este perfect daca aveti nevoie rapid de o cutie Vagrant pentru testarea Windows.

S-ar putea sa descoperiti ca doriti sa va construiti propria cutie folosind propriul gust ISO sau OS care nu este acceptat de Windows-ul de ambalare. Aici intra in joc crearea propriului fisier de registry al sistemului de operare personalizat. Formatul de fisier JSON este destul de explicativ, asa ca iata-l:

{“windows10”: {“iso_url”: “./iso/CLIENTENTERPRISEEVAL_OEMRET_X64FRE_EN-US.ISO”, “iso_checksum_type”: “sha1”, “iso_checksum”: “56ab095075be28a90bc0b510835280975c6bb “:” Windows81_64 “,” vmware_guest_os_type “:” windows8srv-64 “,” product_key “:” FEED-ME2D “}}

Cu exceptia tastei_produs, toate celelalte campuri sunt obligatorii.

In mod implicit, inductor cauta in directorul de lucru curent un fisier numit osregistry.json. Daca il denumiti altceva sau se afla intr-un alt director, puteti specifica locatia utilizand steagul –osregistry.

Contribuind

Solicitari Pull Va rugam sa va asigurati ca creati modificarile intr-o ramura a ramurii principale.