зеркало из https://github.com/golang/build.git
0c0bd36a74
Also, I rebuilt the Windows image with the 30GB base image. I named it -v2 during manual testing with gomote, and I'm keeping it like that now, so update dashboard/builders.go too. Fixes golang/go#10071 Change-Id: I30029310cbf61fb21ef80063f9822cb90ce843c0 Reviewed-on: https://go-review.googlesource.com/7914 Reviewed-by: David Crawshaw <crawshaw@golang.org> |
||
---|---|---|
.. | ||
README |
README
Unlike the other operating systems which have a bash script that runs on Linux and scripts qemu to prepare a GCE image, the Windows image builder image is prepared by hand, following this list of instructions: -- In the GCE project's Networks > Default network, edit the "RDP" rule and set its "Target tag" to "allow-rdp". (VMs will require the "allow-rdp" tag to have any RDP access from the outside) -- in GCE, create a new Windows 2008 server instance. Set its initial username to "wingopher" and the password to something. Be sure to uncheck "Delete the boot disk when instance terminates". -- boot it. first boot is slow. -- Connect with RDP to it. (I used the OS X Microsoft Remote Desktop in the Mac App Store) -- In initial “Initial Configuration Tasks” window: * disable automatic installation of updates. They’ll just interrupt the builds later. And we don't care about security since this isn't going to be Internet-facing. No ports will be accessible * disable Windows Error Report (“Not participating”) * disable the Windows firewall (GCE provides its own) -- Enable auto-login: * Start > Run > Open: "control userpasswords2" [OK] * Uncheck the "Users must enter a user name..." box (it already was unchecked for me) * Click to highlight the sole user (this makes it be the auto-login user) * Press "OK" * Enter password twice. -- Prevent password expiration. This bit us once, and I'm not sure this is yet sufficient, but: User Accounts (from above) > Advanced (tab) > Advanced (button) > [lusrmgr]: for all three users, disable password expiration (right click and then Properties and it's a checkbox) -- Download winstrap. * Bring up cmd.exe (Start > Run > "cmd" [OK]) * Copy/paste (Right click: paste) this into cmd.exe: bitsadmin /transfer mydownloadjob /download /priority normal https://storage.googleapis.com/winstrap/winstrap-2015-02-11-046f2a8.exe c:\users\wingopher\Desktop\winstrap.exe * It should appear on the desktop. -- double click winstrap. type "go" and press <enter>. abort it once it's downloaded everything. (close the window) -- make the Buildlet start on boot: * Start > All Programs > right click "Startup" * Right-mouse-drag "Start Buildlet" from the desktop (from winstrap) to the Startup folder and "Create shortcuts here" -- Install wix35 (ignore the warning about notinstalling "Votive" something) -- Install git with middle option: "Use Git from Windows Command Prompt", otherwise all the defaults. -- click yes yes yes on the tdm64-gcc installer question defaults. Then do the tdm64-gcc installer again but do 32-bit this time. You should then have two TDM installs at c:\TDM-GCC-64 and c:\TDM-GCC-32. Don’t pick other locations. The gobuilder adds those to your path. -- disable GCE service so things boot quickly and don't kill the user we've configured on boot. - Run Regedit, - Go to the registry entry "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services" - delete the Google Compute Engine folder. -- disable GCEStartupTask in the "Task Scheduler", for the same reason. Maybe only one of these two is required. Might as well do both. -- shutdown the machine -- delete the GCE image (but not its boot disk) -- Go to GCE Compute > Images > New Image and create an image named "windows-buildlet" with "Source Type" of "Disk" and pick the Source Disk from the previously-deleted image. You can now delete the old disk if you want. ** Misc docs: http://www.win2008workstation.com/configure-auto-logon/ https://cloud.google.com/compute/docs/operating-systems/windows -- notably "windows-startup-script-cmd" ala: gcloud compute instances add-metadata <INSTANCE> --zone <ZONE> --metadata windows-startup-script-cmd="net user <USERNAME> <PASSWORD>" https://github.com/golang/winstrap http://golang.org/s/windowsbuilderhowto