¶ÔÓÚÈç½ñµÄWindows×Ô¶¯»¯ÁìÓòÀ´Ëµ£¬¿ÉÒÔÒÔ¼¸ÖÖ²»Í¬µÄ·½Ê½À´¿´´ýËüµÄ·¢Õ¹¡£Ò»ÖÖ·½Ê½Êǽ«Windows×Ô¶¯»¯Ä¿Ç°µÄ×´¿öÓëÎåÄê֮ǰ½øÐбȽϣ¬ÕâÖÖ·½Ê½»òÐí»áÁîÈ˶ÔÓÚÕâÃż¼ÊõµÄ·¢Õ¹ÉîÊܹÄÎ裬²¢¶ÔδÀ´µÄ·¢Õ¹³äÂúÀÖ¹Û¡£ÁíÒ»ÖÖ·½Ê½Êǽ«Èç½ñµÄWindows×Ô¶¯»¯Éú̬ϵͳÓë»ùÓÚLinuxµÄ»ù´¡ÉèÊ©ÖÐËùÓõŤ¾ß½øÐбȽϡ£Ò»ÑÛ¿´ÉÏÈ¥ËüÃÇËÆºõûʲô²»Í¬£¬µ«Ëæ×ÅÄã¸üÉîÈëµÄ¹Û²ìÓë¸ü¶àµÄʵ¼ùÖ®ºó£¬Ä㿪ʼÒâʶµ½ÕæÊµµÄÇé¿ö£¬²»¿É·ñÈÏ£¬Windows×Ô¶¯»¯µÄ³ÉÊì¶ÈÓëLinuxÏà±Èȷʵ´æÔÚ×Ųî¾à¡£
ÕâÁ½ÖֱȽϷ½Ê½¶¼Ó뵱ǰµÄWindows×Ô¶¯»¯×´¿ö±³ºóµÄ¹ÊÊÂÏà¹Ø¡£ÔÚ±¾ÎÄÖУ¬ÎÒ½«Í¨¹ý¶Ôµ±½ñʵ¼ÊÓ¦ÓÃÖеÄWindows×Ô¶¯»¯³¡¾°µÄ¹Û²ì£¬ÉîÈë̽Ë÷ÕâÁ½ÖֱȽϷ½Ê½µÄÒâÒå¡£Windows×Ô¶¯»¯ÔÚ2014ÄêµÄ·¢Õ¹Çé¿öÈçºÎ£¿Í´µãÔÚÄÄÀËüÓëLinuxƽ̨ÓÐ×ÅÔõÑùµÄ²»Í¬£¿WindowsºÍLinuxÊÇ·ñ»á×îÖÕÐγÉÒ»ÖÖ½üËÆµÄ×Ô¶¯»¯·½Ê½£¬»¹ÊÇ˵ËüÃÇÒÀ¾ÉË®»ð²»ÈÝ£¬¸÷×ÔÔÚ×Ô¼ºµÄÊг¡ÖÐÕ¼¾Ýһϯ֮µØ£¿
Äã²ÉÓõÄWindows×Ô¶¯»¯·½Ê½¿ÉÄÜÓëÎҵIJ»Í¬
ʵÏÖWindows×Ô¶¯»¯µÄ·½Ê½¶àÖÖ¶àÑù£¬²»¹ýÕâЩ·½Ê½×îÖÕ¿ÉÒÔ¹é½áΪÕâÈýÀࣺ
1.ÍêÈ«²»²ÉÓÃ×Ô¶¯»¯
2.ÆóÒµ¼¶½â¾ö·½°¸
3.¿ªÔ´£¨µ«Î´±ØÊÇÃâ·ÑµÄ£©
Ê×ÏÈ¿´Ò»ÏµÚÒ»ÖÖ·½Ê½£¬Óû§Ñ¡Ôñ²»¶ÏÖØ¸´Ëöʲ¢¾ö¶¨²»²ÉÓÃ×Ô¶¯»¯¡£µÚ¶þÖÖ·½Ê½Äܹ»ÌṩƯÁÁµÄ±¨±í£¬µ«Òª¾¹ýÎÞÊý´ÎµÄµã»÷£¬¿ÉÄÜ»¹»áÌṩһ¸ö¹¦ÄÜÓÐÏ޵Ŀɱà³ÌAPI½çÃæ¡£µÚÈýÖÖ·½Ê½Í¨¹ýÔʼ´úÂëµÄ¼¯³ÉÌṩÁ˼«´óµÄÁé»îÐÔ£¬µ«ÍùÍùÌṩµÄÎĵµºÜÓÐÏÞ£¬²¢ÇÒÐèÒª±àд´óÁ¿µÄ×Ô¶¨Òå´úÂë²ÅÄܹ»´´½¨Ò»¸öÍêÕûµÄ¶Ëµ½¶Ë½â¾ö·½°¸¡£±¾ÎÄÖ÷ҪרעÓÚµÚÈýÖÖ·½Ê½£¬ÒòΪÎÒ¸öÈ˶ÔÕâÖÖ·½Ê½×îÓоÑé¡£
ÉèÖÃ
Ê×ÏÈÈÃÎÒÃÇÀ´ÌÖÂÛÒ»ÏÂÉèÖá£ËäÈ»ÉèÖÃWindows»·¾³µÄ·½Ê½Óкܶ࣬µ«ÎÒËùչʾµÄ·½Ê½ÊÇÎÒÃÇÔÚCenturyLink
Cloudƽ̨ÉÏËùÓ¦ÓõÄÁ÷³Ì¡£ÓÉÓÚÎÒÃǵĻ·¾³ÖлìºÏʹÓÃÁËLinuxÓëWindows·þÎñÆ÷£¬Òò´ËÐèÒªÒ»ÖÖÄܹ»¼¯³ÉÕâÁ½ÖÖ²Ù×÷ϵͳµÄ½â¾ö·½°¸¡£ÎÒÃÇ×îÖÕ¾ö¶¨Ê¹ÓÃChef×÷ΪÅäÖùÜÀí¹¤¾ß£¬²¢ÇÒ³ÉΪËüÃǵĻúÆ÷×ÊÔ´²úÆ·
¡ª¡ª Chef MetalµÄbeta°æ±¾µÄÔçÆÚʹÓÃÕß¡£ÎÒÃÇËùʹÓõÄÖ÷ÒªÐéÄâÆ½Ì¨ÊÇVMware vSphere¡£ÏÖÔÚÈÃÎÒÃÇ¿´Ò»¿´ÕâЩ¼¼ÊõÊÇͨ¹ýÔõÑùµÄ·½Ê½½áºÏÔÚÒ»Æð£¬¶ÔWindowsºÍLinux»úÆ÷½øÐÐÉèÖõģº

ÈçͼËùʾ£¬ÎÒÃÇͨ¹ýÒ»¸öÉèÖÃÆ÷½Úµã±£´æ×Åij¸öÊý¾ÝÖÐÐÄËùÓзþÎñÆ÷µÄĿ¼£¨ÓÉChef·þÎñÆ÷Ìṩ£©£¬Èç¹ûËü²ì¾õij¸ö·þÎñÆ÷ûÓб»ÕýÈ·ÉèÖ㬲¢ÇÒËü´æÔÚÓÚÕâ¸öĿ¼֮ÖУ¬ÄÇôÉèÖÃÆ÷¾Í»áʹÓÃChef
Metal¶Ô¸Ã½Úµã½øÐÐÉèÖá£Chef MetalΪChefÉú̬»·¾³ÌṩÁËÒ»ÖÖеġ°×ÊÔ´¡±£¬¼´»úÆ÷×ÊÔ´¡£ÕâÖÖ×ÊÔ´µÄ¶¨Òå°üÀ¨ºËµÄÊýÁ¿¡¢ÄÚ´æ¡¢VM¾µÏñµÄÄ£°åµÈÊôÐÔ¡£
machine 'web' do machine_options :memory_mb => 4096, :num_cpus => 2 recipe 'active_directory' end |
Chef Metal±¾ÉíÁ˽âÔÚChefÖеĻúÆ÷µÄͨÐÅÇé¿ö£¬µ«Ëü²¢²»Á˽âVMwareµÄ´æÔÚ¡£Ê¹ÓÃÕß¿ÉÒÔÀûÓÃChef
MetalµÄ²å¼þÄ£ÐÍ´´½¨Ò»¸öÇý¶¯³ÌÐò£¬ËüÖªµÀÈçºÎÓëruby vSphere SDK£¨rbvmomi£©½øÐн»»¥£¬²¢ÇÒÄܹ»½«Chef
MetalµÄ¸ß²ã´Î³éÏóת»»ÎªÊµ¼ÊµÄVM¡¢Êý¾Ý´æ´¢¡¢¼¯Èº¡¢²Ù×÷ϵͳ×Ô¶¨ÒåÄ£°åµÈµÈ¡£
Çý¶¯³ÌÐò´úÂëÔÚChef MetalÖбíÏÖΪһÖÖ¼ÆËã×ÊÔ´£¬Chef Metal´Ó¶øÁ˽âÈçºÎÔÚChef¿Í»§¶ËÖÐÒýµ¼ÕâһʵÀý£¬²¢½«Æäת»»ÎªÔÚÎÒµÄÅäÖÃÖÐËù¶¨ÒåµÄ½ÇÉ«£¬Ëü¿ÉÒÔÊÇÒ»¸öweb·þÎñÆ÷¡¢Ò»¸ö»î¶¯Ä¿Â¼·þÎñÆ÷¡¢Ò»¸öÎļþ·þÎñÆ÷»òÆäËüÈκνÇÉ«¡£
×ܵÄÀ´Ëµ£¬ÕâÌ×·½°¸ÊÇ¿ÉÐе쬵«»òÐíÄãÖ»ÊÇÏ£ÍûÄܹ»ÉèÖÃһ̨Windows·þÎñÆ÷£¬¾¡Á¿±ÜÃâ´î½¨ÆäËü·þÎñÆ÷£¬ÒÔ¼°±àд×Ô¶¨Òåruby´úÂëµÄ¸´ÔÓÐÔ¡£ÕâÖÖÇé¿öÏ¿ÉÒÔ²ÉȡһЩÆäËüÇáÁ¿¼¶µÄ·½Ê½£¬ÎÒ½«ÎªÄãչʾÆäÖеļ¸ÖÖ¡£
Windows Azure PowerShell Cmdlets
Èç¹ûÄãÓµÓÐÒ»¸öAzureÕʺţ¬Ö»ÐèÏÂÔØAzure PowerShellÄ£¿é£¬¾ÍÄܹ»½«ÔÚAzure webÃÅ»§ÍøÕ¾ÉϿɽøÐеÄÒ»ÇвÙ×÷½øÐÐ×Ô¶¯»¯£¬±ÈÈçÖ»ÐèÒ»ÐдúÂë¾ÍÄܹ»´´½¨Ò»¸öAzure
IaaSÐéÄâ»ú£º
$cred=Get-Credential AzureAdmin New-AzureQuickVM ¨CServiceName ServiceTest1 -Windows -Name MyVM ` -ImageName 3a50f22b388a4ff7ab41029918570fa6__Windows-Server-2012-Essentials-20131217-enus ` -Password $cred.GetNetworkCredential().Password -AdminUsername $cred.UserName ` -Location "West US" ¨CWaitForBoot |
Hyper-V PowerShell Ä£¿é
Èç¹ûÄãµÄÏ¥ÉϵçÄÔ°²×°ÁËWindows 8רҵ°æ£¬ÄÇô¾Í¿ÉÒÔͨ¹ýÆäÖÐ×Ô´øµÄhypervisorʵÏÖWindowsÉèÖõÄ×Ô¶¯»¯¡£Èç¹ûÄ㻹ûÓÐÍê³ÉÕâÒ»²½£¬Çë°´ÕÕÒÔÏ·½Ê½´ò¿ªÕâÒ»¹¦ÄÜ£º
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All dism.exe /Online /Enable-Feature:Microsoft-Hyper-V-Management-PowerShell |
Ëæºó´´½¨ÄãµÄVM£º
New-VM -Name "myVM" -MemoryStartupBytes 1GB -NewVHDPath "D:\VHDs\w81.vhdx" -NewVHDSizeBytes 60GB Set-VMDvdDrive -VMName myVM -Path "C:\ISOs\EVAL_EN-US-IRM_CENA_X64FREE_EN-US_DV5.iso" Start-VM "myVM" |
ÎÞÐèÐí¿É
ÊÖÍ·ÉÏÅöÇÉûÓпÉÓõÄWindows ISO£¿²»Òª½ô¡£Äã¿ÉÒÔ´Ó΢ÈíµÄTechNet»òMSDNÍøÕ¾ÏÂÔØWindowsÃâ·ÑÆÀ¹À°æ±¾µÄISO»òVHDÎļþ¡£ÕâЩ¾µÏñÔÚ¼¸¸öÔÂÖ®ºó²Å»á¹ýÆÚ£¬µ±È»²»ÒªÔÚÉú²ú»·¾³ÖÐʹÓÃÕâЩ¾µÏñ£¬µ«ÎÒһֱʹÓÃËüÃǽøÐвâÊÔ¡£
¹ØÓÚWindows¸üеÄÌáʾ
½«Windows¸üÐÂÔ¤ÏȰ²×°ÔÚÄãµÄ»ù´¡¾µÏñÎļþÖУ¬Õâ¿ÉÒÔʡȥÄ㼸¸öСʱµÄʱ¼äÓÃÓڵȴý¸üÐÂÍê³É¡£ÄãÐèÒªÒ»ÖÖ×Ô¶¯»¯Á÷³Ì£¬Äܹ»¶ÔÕâЩ¾µÏñÎļþ½øÐÐÈÕ³£¸üС£ÎÒÇ¿ÁÒ½¨ÒéÄãÑо¿Ò»ÏÂijЩ¹¤¾ßµÄʹÓã¬ÀýÈçpacker.io¡£PackerÔÚLinuxÊÀ½çÖÐÒѾ¹ãΪÈËÖª£¬²»¹ý½üÆÚÔÚWindowsÉçÇøÖÐÒ²µÃµ½ÁËÒ»¶¨µÄ¹Ø×¢¡£ËüÊÇÒ»ÖÖÓÃÓÚ´´½¨»ù´¡VM¾µÏñµÄ¹¤¾ß£¬Í¨¹ýÒ»¸öÅäÖÃÎļþ¸æËßpackerÈçºÎ´´½¨Õâ¸ö¾µÏñ¡£ÕâÖÖ·½Ê½ºÜÏñÅäÖùÜÀí£¬µ«²Ù×÷µÄ¶ÔÏóÊǾµÏñ£¬¶ø²»ÊÇ»úÆ÷¡£Êµ¼ÊÉÏpackerÄܹ»ÓëÐí¶àÁ÷ÐеÄÅäÖùÜÀí¹¤¾ß½øÐм¯³É£¬ÀýÈçChef£¬´Ó¶øÀûÓÃÅäÖùÜÀí½â¾ö·½°¸ÖÐÌṩµÄDSL´´½¨ÄãËùÐèµÄ¾µÏñ¡£
´òÔìеÄWindowsʵÀý
ÏÖÔÚÄãÓÐÁËÒ»¸ö¿ÕµÄWindows VM£¬ÄÇô½ÓÏÂÀ´ÄØ£¿ÕýÈçÎÒ֮ǰËùÖ¸³öµÄ£¬ÎÒÃÇʹÓÃChefÔÚCenturyLink
Cloudƽ̨ÉÏ´´½¨Windows»úÆ÷¡£´Ó¼¼Êõ²ãÃæÉÏ˵£¬ÄãÐèÒª±àдһЩRuby´úÂ룬µ«¶àÊýÇé¿öÏÂÖ»ÐèʹÓÃDSL¾Í¹»ÁË£¬¶ÔÓÚ
RubyµÄרҵ֪ʶҪÇ󼸺õûÓС£Chef½«×é³Éһ̨·þÎñÆ÷µÄ¶àÖÖͨÓóéÏó¸ÅÄîÒÔ¹¹½¨¿éµÄÐÎʽ½øÐй«¿ª£¬ËüÃDZ»³ÆÎª×ÊÔ´¡£Äã¿ÉÒÔ½«ËüÃÇ×éºÏ³ÉΪ¸ü´óµÄ×ÊÔ´£¬ÔÚChefµÄÊõÓïÖгÆÎªrecipe¼°cookbook¡£
ÒÔÏ´úÂë±íÏÖÁËÒ»¸ö×¢²á±í¼üµÄ×ÊÔ´£º
# Disable the ServerManager. registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager' do values [{ :name => 'DoNotOpenServerManagerAtLogon', :type => :dword, :data => 0x1 }] end |
ÒÔÏ´úÂ뽫ij¸öÓû§¼ÓÈëÒ»¸ö×é×ÊÔ´ÖУº
group "administrators" do action :modify members node['platform_ftp']['fileshare_user'] append true end |
˳±ã˵һ¾ä£¬ÕâÖÖ·½Ê½ÔÚWindows»òLinuxÉ϶¼Äܹ»ÔËÐС£Êµ¼ÊÉÏ´ó¶àÊý×ÊÔ´¶¼ÊÇÆ½Ì¨Î޹صģ¬Ö»ÒÀ¿¿ÓÚij¸öµ×²ãÌṩÕßÄ£ÐÍ£¬Ëü½«¾ßÌåʵÏÖίÍиøÌض¨µÄƽ̨¡£
×ÊÔ´µÄ¸ÅÄî²»½ö½öÏÞÓÚChef
×ÊÔ´ÕâÖÖ³éÏó¸ÅÄî²¢·ÇChefËù¶ÀÓеģ¬ÔÚÆäËüÅäÖùÜÀí¹¤¾ßÖÐҲʹÓÃÁËÏàͬµÄÊõÓÀýÈçÁ÷ÐеÄPuppetºÍÔÚPowerShell
4¼°¸ü¸ß°æ±¾ÖÐÄÚÖõÄ΢ÈíDSC£¨ÆÚÍû״̬ÅäÖã©¡£PowerShellÍŶӻ¹ÓÐÐí¶àµØ·½ÐèÒªÏòPuppet¡¢Chef¡¢CFEnginesµÈ¹¤¾ß¿´Æë£¬µ«ËûÃÇ×·¸ÏµÄ½Å²½·Ç³£¿ì£¬ÏÖÒÑÍÆ³öÁË¿ÉÓÃÓÚWindowsÉϵÄÐÂ×ÊÔ´¿É¹©ÏÂÔØ£¬ÃûΪ×ÊÔ´wave°ü£¬×îеİ汾ÊÇwave
7¡£
ÔÚÐí¶àÅäÖùÜÀí¹¤¾ßÖУ¬³ýÁË×ÊÔ´Ö®Í⻹ÓÐÐí¶à¸´ÔӵŤ×÷¡£ÀýÈ籨±í¡¢°æ±¾¿ØÖÆ¡¢½ÚµãÒýµ¼¡¢´ò°üµÈµÈ¡£Êµ¼ÊÉÏ£¬ÏñChefÕâÑùµÄ¹¤¾ßÒÑ¾Î§ÈÆ×Å×ÔÉí´òÔìÁËÒ»¸öÍêÕûµÄ¿ªÔ´Éú̬ϵͳ£¬Îª²âÊÔ¡¢ÒÀÀµ¹ÜÀíºÍ¸÷ÖÖСÐͲå¼þÌṩÁ˶îÍâµÄ¹¤¾ß£¬Äܹ»Ìî²¹Windows·þÎñÆ÷±¾ÉíÓë¸÷ÖÖÌØ¶¨µÄÒµÎñÐèÇóÖ®¼äµÄ²î¾à¡£Î¢ÈíÒÑÈÏʶµ½ÕâÖÖ²î¾àµÄ´æÔÚ£¬ÓÚÊǺÍChefµÈ²úÆ·½øÐÐÁ˽ôÃܺÏ×÷£¬²¢Í¨¹ýChef
recipe½«ËüµÄDSC×ÊÔ´½øÐй«¿ª¡£ÕâÒ²Òâζ×Å£¬Ò»·½ÃæÄܹ»ÀûÓÃÓÉDSC×ÊÔ´ËùÌṩµÄÄ³Ð©ÌØ±ðµÄWindows×Ô¶¯»¯ÄÜÁ¦£¬Í¬Ê±Ò²Äܹ»ÀûÓÃChefµÄ¿çƽ̨¹¦ÄÜ£¬°üÀ¨ËüµÄ±¨±í¡¢ÆóÒµ·þÎñÆ÷ÌØÐÔ£¬ÉõÖÁÄܹ»ÓëËüµÄ¿ªÔ´ÉçÇøÍêȫʵÏÖ¶Ô½Ó¡£
Èç¹ûÏëÁË½â¹ØÓÚÔÚChefÖÐʵÏÖDSC£¬ÒÔ¼°Ê¹ÓûùÓÚPowerShellµÄ²âÊÔ¹¤¾ß¶Ô×Ô¶¯»¯¹ý³Ì½øÐвâÊÔµÄÏêϸÄÚÈÝ£¬ÇëÔĶÁÕâһƪ²©¿ÍÎÄÕ£¬Ëü½«Ò»²½²½µØ´øÄãÁ˽âÕâÒ»Ö÷Ìâ¡£
»ñÈ¡Chocolaty
Èç¹ûÄãÎÞÒâ¿Ë·þÅäÖùÜÀí¹¤¾ßÄǶ¸Ç͵ÄѧϰÇúÏߣ¬¶øÖ»ÊÇÏëͨ¹ýËüÍê³É¼¸¸öÓ¦ÓõÄ×Ô¶¯»¯£¬ÄÇôÄã¿ÉÒÔ¶ÔWindowsÔÚ°ü¹ÜÀí·½ÃæËùÌṩµÄ¹¦ÄܽøÐÐÒ»·¬µ÷²é¡£
¶àÄêÒÔÀ´£¬Windows°ü¸ñʽµÄÊÂʵ±ê×¼ÊÇMSIÎļþ£¬µ«Ëµ¾äʵ»°£¬ËüµÄ¹¦ÄÜÎÞ·¨Óëapt-get»òyumÏàÌá²¢ÂÛ¡£¼¸Äê֮ǰ£¬ÎÒµÄÅóÓÑRob
Reynolds¾ÍÒâʶµ½£¬ÈËÃÇÐèҪһЩ¸ü¼òµ¥£¬²¢ÇÒÄܹ»¸üºÃµØÖ§³ÖhttpµÄ¹¤¾ß£¬Òò´ËËû¿ªÊ¼¿ª·¢Chocolatey¡£Ëä˵ÎÒÓöµ½µÄWindows¼¼Êõר¼ÒÖÐÓÐÐí¶àÈË´ÓûÓÐÌý˵¹ýChocolatey£¬ÕâÒ»µã×ÜÊÇÈÃÎҸоõºÜ³Ô¾ª£¬µ«ËüÒѾÔÚWindows¸ß¼¶Óû§ÈºÌåÖлñµÃÁ˺ܸߵÄÁ÷Ðжȣ¬ÉõÖÁ΢ÈíPowerShellÍŶÓÒ²ÔÚ×îа汾µÄPowerShellÖд´½¨ÁËÒ»¸öChocolatey¿Í»§¶Ë¡£Ã»´í£¬Ï¸ö°æ±¾µÄWindows½«×Ô´øChocolatey¡£
ÈÃÎÒÃǹ۲ìÒ»ÏÂÕâЩÃüÁ
cinst googlechrome cinst git cinst ruby cinst vagrant cinst VisualStudio2013ExpressWeb |
ËüÃǵÄ×÷ÓÃÊÇÔÚºǫ́°²×°ËùÁгöµÄ¸÷ÖÖÈí¼þ£¬¶øÎÞÐèͼÐÎÓû§½çÃæµÄ½éÈ룬²»±ØÒ»Â·µã»÷¡°ÏÂÒ»²½¡±¡¢¡°ÏÂÒ»²½¡±¡¢¡°Íê³É¡±¡£ÕýÈçapt-getÒ»Ñù£¬ÄãÄܹ»·¢ÏÖ¡¢ÏÂÔØ²¢Éý¼¶Äã×î³£ÓõÄWindowsÓ¦Óá£
ËäÈ»ChocolateyµÄ¼¼ÊõûµÃ˵£¬²¢ÇÒ¿ª·¢¹¤×÷Ҳʮ·Ö»îÔ¾£¬µ«Ëü×î´óµÄÈõµãÔÚÓÚËüµÄÉú̬ϵͳ¡£Çë²»ÒªÎó½âÎÒµÄÒâ˼£¬ºÍWindows
OSSÒ»Ñù£¬ChocolateyµÄÉçÇøÍ¬ÑùÊ®·Ö»îÔ¾¡£µ«Óëapt-getµÈ¹¤¾ß²»Í¬µÄÊÇ£¬Chocolatey°ü¶àÊýÊÇÓÉÉçÇø½øÐпª·¢¼°Î¬»¤µÄ£¬¶ø²»ÊÇÓɰüÈí¼þ×÷Õß±¾È˽øÐÐά»¤£¬µ±È»Ò²ÓÐһЩÀýÍâ¡£ÕâÒâζ×ÅÓÐЩÇé¿öÏ£¬°ü»òÐíûÓеõ½¼°Ê±¸üУ¬»òÕß»áÊÔͼ´ÓʧЧµÄURLÖÐÏÂÔØÈí¼þ¡£ÔÚ¶àÊýÇé¿öÏÂÕâÖÖÇé¿ö²¢²»ÑÏÖØ£¬µ«ÓÐʱ¾³£»áÓöµ½ÕâÖÖÎÊÌâ¡£
²»¹ý£¬ÕýÈçÎÒÃÇÒѾ¿´µ½DSCµÄáÈÆðʹµÃÅäÖùÜÀí¼¼Êõ³ÉΪÁËWindowsµÄÖ÷Á÷£¬ÎÒ¸Ò´ò¶Ä£¬ÔÚ°ü¹ÜÀí·½ÃæÒ²»á¿´µ½Í¬ÑùµÄ½øÕ¹¡£Ò»µ©ÔÚWindowsÖгöÏÖÁËÕâÖÖ¹¤¾ß£¬²¢ÇÒÄܹ»ÈÃWindowsÓû§Í¨¹ýTechNetÉÏµÄ°×Æ¤Ê鿪ʼѧϰʾÀý£¬ÄÇôÈðü¹ÜÀí¹¤¾ß³ÉΪÈÕ³£¹¤¾ßµÄÈÕ×ÓÒ²¾Í²»Ô¶ÁË¡£
ʹÓÃBoxstarter½øÐÐChocolatey·ç¸ñµÄ»úÆ÷¹¹½¨
¼ÌÐø»Øµ½¸Õ²ÅµÄ»°Ì⣬ÔõÑùÄܹ»´´½¨Ò»¸öWindows»·¾³£¬¶øÓÖ±ÜÃâʹÓ÷±ÖصÄÅäÖùÜÀí¹¤¾ßÄØ£¿ÈÃÎÒÃÇ¿ìËÙµØä¯ÀÀÒ»ÏÂÕâ¸ö¹¤¾ß£¬ËüÀûÓÃÁËChocolateyµÄ¹¦ÄÜ£¬²¢ÇÒÄܹ»½â¾öÔڴеÄWindows»·¾³Ê±ÔÚ»úÆ÷Òýµ¼Ê±Ëù¾³£Óöµ½µÄ¸÷ÖÖÍ´¿à¡£Ê×ÏÈÎÒ񻮯¹âÒ»µã£ºÎÒ¾ÍÊÇÕâ¸ö¹¤¾ßµÄ×÷Õß¡£
BoxstarterΪChocolatey°ü¼ÓÈëÁËÖØÆôºó×Ô¶¯»Ö¸´µÄ¹¦ÄÜ£¬²¢ÇÒÌṩÁËһЩ¶îÍâµÄÃüÁËüÄܹ»Ôö¼Óµ×²ãµÄ¹¦Äܲ¢ÇÒ½øÐÐ×Ô¶¨Òå¡£±ÜÃâÔÚ°²×°ÀàËÆSQL
Server¡¢Visual StudioµÈÓ¦Ó㬻òÊÇÔÚ´ò¿ªWindowsÌØÐÔÒÔ¼°°²×°Windows¸üÐÂʱ¾³£³öÏֵĻúÆ÷¹¹½¨´íÎó¡£
BoxstarterÓëChocolatey½ÓÊÜͬÑùµÄ°²×°ÃüÁî×Ö·û´®£¬ËüÄܹ»¼ì²âµ½µÈ´ýÖØÆôµÄÇé¿ö¡¢×Ô¶¯½øÐÐÖØÆô¡¢ÔÚ±ØÒªÊ±ÖØÐµÇ¼Óû§£¬²¢·µ»Ø°üµÄ°²×°¹ý³Ì¡£Boxstarter×îÊÜ»¶ÓµÄÌØÐÔÖ®Ò»ÔÚÓÚ£¬ÄãÎÞÐè´´½¨Ò»¸ö°ü¡¢Ò²²»±Ø°²×°Chocolatey¡¢Boxstarter»òÆäËüÈκÎÏȾöÌõ¼þ£¬¾ÍÄܹ»ÊµÏÖÕâÒ»¹¦ÄÜ£¬Í¨¹ýÒ»¸öURL¾ÍÄܹ»Íê³ÉÒ»ÇвÙ×÷¡£¾ÙÀýÈçÏÂ
£º
http://boxstarter.org/package/nr/url?https://gist.githubusercontent.com/mwrock/ 8518683/raw/43ab568ff32629b278cfa8ab3e7fb4c417c9b188/gistfile1.txt |
ÒÔÉÏÁ´½Ó½«Ìṩһ¸ö΢ÈíClickOnce·ç¸ñµÄÓ¦ÓÃ×÷ΪÒýµ¼³ÌÐò£¬ÒÔÌṩBoxstarterµÄ°²×°£¬Ëæºó½«½ôËæBoxstarter
URL ºóµÄgist URLÖеÄÄÚÈݽøÐдò°ü¡£ÄãÒ²¿ÉÒÔÑ¡Ôñ°²×°Boxstarter PowerShellÄ£¿é£¬Ê¹ÓÃÕâЩģ¿éͨ¹ýChocolateyÉèÖÃÔ¶³ÌWindows»·¾³¡£ËüÒÀÈ»Äܹ»ÓÅÑŵضÔÖØÆô½øÐд¦Àí£¬²¢ÔÊÐíÄãʹÓÃÔÚ±¾µØ³£ÓõÄPowerShell´î½¨»·¾³¡£
ÄãÒ²Ðí²»»á½ö½öͨ¹ýBoxstarter»òChocolateyÓÃÓÚÉèÖú͹ÜÀíÔËÐÐÖеķþÎñÆ÷£¬µ«¶ÔÓÚÿ¸ö¿ª·¢Õß»úÆ÷À´ËµÊǷdz£ÓÅÐãµÄ¹¤¾ß¡£
SSHÔÚÄÄÀ
Èç¹ûÄãÔø¾ÔÚUnix»òLinuxÖнøÐйýʵս£¬ÄãÒ²Ðí»áÈÏΪWindowsÒѾĬÈÏʵÏÖÁËSSH·þÎñÆ÷µÄ¹¦ÄÜ¡£ËäÈ»´Ó¼¼ÊõÉÏÀ´ËµËü²¢²»ÊÇSSH£¬µ«Æä¸ÅÄîÊÇÏàͬµÄ¡£Ðí¶àÈ˶ÔÓÚ΢ÈíûÓдÓÒ»¿ªÊ¼¾ÍʹÓÃSSH¸Ðµ½À§»ó²»½â£¬Èç¹ûÄãÏëÖªµÀ΢ÈíΪʲô²»Ê¹ÓÃSSH£¬ÇëÌýÒ»ÏÂÕâ¸ö²¥¿ÍÒôƵ¡¢PowerShellµÄ×÷ÕßJeffrey
Snover¶Ô´Ë½øÐÐÁËÉîÈë̽ÌÖ¡£
ΪÁË»ñµÃÓëSSHÏà½üËÆµÄ¹¦ÄÜ£¬WindowsʹÓÃÁËwinrm£¨WindowsÔ¶³Ì¹ÜÀí£©£¬ÕâÊÇÒ»¸ö»ùÓÚSOAPµÄweb
service£¬Äܹ»Í¨¹ýHTTP(s)·¢ËÍ»ò»ñÈ¡ÏûÏ¢£¬²¢½«Æäת»»Îª±¾µØÃüÁîÐС£ÕâÒ»¹¦ÄÜ×îÔç³öÏÖÓÚPowerShell
v2.0ÖУ¬ÔÚËæºóµÄÿ¸öа汾Öж¼¶Ô¹¦ÄܽøÐÐÁËÔöÇ¿£¨µ±Ç°µÄPowerShell°æ±¾ÊÇbeta v5£©£¬Óû§¿ÉÒÔʹÓá°PowerShell
Remoting¡±£¬ËüµÄ¹¦Äܽ¨Á¢ÓÚwinrmÖ®ÉÏ£¬²¢ÇÒÌṩÁËÒ»¸ö»¥¶¯ÐÔµÄÔ¶³Ì¿ØÖÆÌ¨£¬ÓëSSH»á»°µÄʹÓü¸ºõûÓвî±ð¡£
ÏÖÔÚÎÒÒѾԶ³ÌÁ¬½Óµ½Ä³Ò»Ì¨Azure VM£º

ÓÐÈË¿ÉÄÜ»áÕù±ç£¨°üÀ¨ÎÒ×Ô¼ºÔÚÄÚ£©µÀ£¬Ô¶³ÌPowerShellµÄ¹¦ÄÜ±ÈÆðSSH¸üΪÏȽø£¬ÒòΪËüÔÚÔ¶³ÌÓë±¾µØshellÖ®¼äÌṩÁ˸ü¸ß¾«¶ÈµÄͨÐÅÓë²Ù×÷ÄÜÁ¦¡£
ÎÒ¸öÈ˵ÄÌåÑéÊÇ£¬Ô¶³ÌPowerShellµÄÖ÷ҪȱµãÔÚÓÚËü²»ÏñSSHÄÇôÈÝÒ×˳ÀûÉÏÊÖ£¬ÓÈÆäÊÇÔÚÀϰ汾µÄWindowsϵͳÉÏ£¬µ«¼´Ê¹ÔÚ½üÆÚµÄϵͳ£¬ÀýÈçWindows
2008 R2ÉÏÒ²²»ÄÇôÈÝÒ×ʹÓá£ÔÚ»ñµÃÊÚȨµÄLinux»úÆ÷ÉÏ£¬SSH¿ÉÒÔÖ±½ÓʹÓ㬶øÔÚWindowsϵͳÉÏÔòÐèÒª½øÐÐÊʵ±µÄÅäÖá£ÔÚWindows
2012 R2ÉÏËäÈ»²»±ØÔÙ½øÐÐÈκÎÅäÖ㬵«Ç°ÌáÊÇÒѾÂú×ãÁËijЩÌõ¼þ£¬ÀýÈçÒѾ¼ÓÈëÁËÓò¡¢ÔÚͬһ¸ö×ÓÍøÖУ¬»òÊÇÐèÒªÆäËüijЩ×é²ßÂÔÉèÖá£
Èç¹ûÄã´òËã³¢ÊÔ´Ó·ÇWindowsƽ̨ÉÏÔ¶³Ì·ÃÎÊWindowsϵͳ£¬ÄÇô¼´Ê¹Ê¹ÓÃÔ¶³ÌPowerShellÒ²ÎÞÄÜΪÁ¦£¬ÄãΨһµÄÑ¡Ôñ¾ÍÊÇÖ±½Óµ÷ÓÃwinrm
web service¡£²»¹ý»¹ÓÐһЩ¿çƽ̨µÄAPI¿ÉÒÔÑ¡Ôñ£¬ÓÃRuby¿ª·¢µÄWinRM¾ÍÊÇÒ»¸öÁ÷ÐеÄÑ¡Ôñ£¬ÎÒ¸öÈËÒ²¾³£Ê¹ÓÃËü£¬Shawn
NealÒ²·Ç³£»ý¼«µØÎ¬»¤×ÅÕâ¸öÏîÄ¿¡£
require 'winrm' endpoint = 'http://mywinrmhost:5985/wsman' krb5_realm = 'EXAMPLE.COM' winrm = WinRM::WinRMWebService.new(endpoint, :kerberos, :realm => krb5_realm) winrm.cmd('ipconfig /all') do |stdout, stderr| STDOUT.print stdout STDERR.print stderr end |
ÎÒÄѵÀ²»Äܹ»Ê¹ÓÃVagrantÂð£¿
¼ò¶ÌµÄ»Ø´ðÊÇ£º¿ÉÒÔ£¡Èç¹ûÄ㻹²»ÊìϤVagrant£¬¾ÍÏȼòµ¥½éÉÜһϣºVagrantÊÇÒ»ÖÖ¶ÔÐéÄ⻯½øÐгéÏóµÄ¹¤¾ß£¬Äܹ»¼ò»¯¸öÈË»úÆ÷ÉèÖõĹý³Ì£¬Í¨³£ÓÃÓÚ¿ª·¢»ò²âÊÔÄ¿µÄ£¬¿ÉÒÔÔÚÍŶӳÉÔ±Ö®¼äºÜ·½±ãµØ½øÐй²Ïí¡£Èç¹ûÄ㻹ûÓÐʹÓùýVagrant£¬ºÜÄÑÓÃÓïÑÔÓÐЧµØ±íÏÖ³öËüµÄ¹¦ÄÜÓë¼òÒ×ÐÔ¡£Ðí¶à²»ÊìϤËüµÄÈË»á±íʾ£¬¡°ÎÒºÜÂúÒâĿǰʹÓõÄhypervisor£¨VMware¡¢virtual
box¡¢Hyper-VµÈµÈ£©£¬ÎªÊ²Ã´»¹ÒªÒý½øÆäËü¹¤¾ß£¿¡± VagrantÄܹ»ºÜ·½±ãµØ¹²ÏíÒ»¸ö1K×óÓÒ´óСµÄµ¥Ò»Îļþ£¨Í¨³£ÔÚÔ´´úÂë¿ØÖÆÏµÍ³ÖйÜÀí£©£¬ËüÄܹ»ÒÔÒ»ÖÖÒ×¶ÁµÄDSL±íʾÔں䦻ñÈ¡³õʼµÄVM¾µÏñ¡¢ÈçºÎÅäÖÃÍøÂ磬ÒÔ¼°ÈçºÎΪ»ù´¡¾µÏñ¼ÓÈë¶îÍâµÄ×Ô¶¯»¯ÄÜÁ¦¡£ÔÚÄãµÄÍŶÓÖлòÐíÓгÉԱʹÓÃÁ˲»Í¬µÄÐéÄ⻯¼¼Êõ£¬µ«¡°vagrantfile¡±Í¨¹ý³éÏóÏû³ýÁËËüÃÇÖ®¼äµÄ²îÒì¡£
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "mwrock/Windows8.1-amd64" config.vm.box_url = "https://wrock.blob.core.Windows.net/vhds/win8.1-vbox-amd64.box" config.vm.guest = :Windows config.winrm.username = "vagrant" config.winrm.password = "vagrant" config.winrm.port = 55985 end |
ÕâÊÇÒ»¸ö·Ç³£¼òµ¥µÄvagrantfileʾÀý£¬ËüµÄ×÷ÓÃÊÇÉèÖÃÒ»¸öWindows 8.1µÄvagrant»·¾³¡£´ÓURL¾Í¿ÉÒÔ¿´³öÀ´£¬Õâ¸ö»ù´¡¾µÏñÊÇÓÉÎÒµÄWindows
Azure StorageÕʺÅÌṩµÄ¡£Vagrant»á½«ËùÓжԶ˿ںÅ55985µÄÇëÇóת·¢µ½vitual
box VMÉÏ¡°ÕæÕý¡±µÄwinrm¶Ë¿ÚºÅ5985¡£
Vagrant×î½ü¸Õ¸Õ¶ÔWindowsʵÏÖÁ˵ÚÒ»µÈµÄÖ§³Ö£¬ÎÒ¸öÈ˵ĸоõÊÇVagrant¶ÔLinuxϵͳµÄÖ§³Ö¸üºÃ£¬µ«ÕâÖÖÇé¿öÔÚÿ´Î·¢²¼ºó¶¼ÓÐËù¸ÄÉÆ¡£ÎªÁËÑÝʾͨ¹ýVagrantÉèÖÃWindowsϵͳÓж෽±ã£¬Ê×ÏÈÏÂÔØvagrant£¬È»ºóÖ´ÐÐÒÔÏÂÃüÁ
vagrant init mwrock/Windows8.1-amd64 vagrant up |
Õâ¸öÃüÁÉèÖÃÒ»¸öWindowsϵͳ£¬ÎÞÂÛÄãʹÓõÄÊÇVirtualBox»òÊÇHyper-V£¨ÄãÖÁÉÙÐèÒªÓõ½ÆäÖÐÒ»ÖÖ¼¼Êõ£©¡£Èç¹ûÄ㻹ûÓлñÈ¡»ù´¡¾µÏñ£¬ÄÇô²»±ØÂé·³£¬ÔÚµ÷ÓÃÕâ¶ÎÃüÁîʱ»á×Ô¶¯ÏÂÔØ¸Ã¾µÏñ¡£ÔÚÕâÀïÄãʵ¼ÊÉÏÒѾ¿ªÊ¼¸Ð¾õµ½ËüÓ¦ÓÃÔÚWindowsϵͳÖеIJ»±ãÁË£¬µäÐ͵ÄWindows»ù´¡¾µÏñ¾¹ýѹËõºóԼΪ3.5GB£¬Õâ¸öÎļþ³ß´ç·Ç³£´ó£¬Í¨³£À´Ëµ±ÈLinux¾µÏñ´ó30±¶ÒÔÉÏ¡£²»¹ý£¬Õâ¸öÏÂÔØ¹ý³Ìͨ³£ÊÇÒ»´ÎÐԵģ¬Vagrant»á½«Ëü»º´æÔÚ±¾µØ£¬Òò´ËÎÞÐè½øÐÐÖØ¸´ÏÂÔØ¡£
ÈÝÆ÷»¯
Èç¹û²»Ì¸Ì¸ÈÝÆ÷»¯¼¼Êõ»òÊÇDocker£¬ÎÒ¾ÍÎÞ·¨½áÊøÕâ¸ö»°Ìâ¡£DockerÄܹ»Ã÷ÏÔ¼õÉÙÉèÖÃÒ»¸ö¼ÆËãʵÀýËùÐèµÄʱ¼ä£¬²¢ÇÒËü³ÐŵÄܹ»³ä·Ö¼ò»¯´ò°üÓ¦ÓõĹý³Ì¡£
ĿǰÔÚWindowsϵͳÉÏ»¹²»´æÔÚÈÝÆ÷¡£¶ÔÓÚijЩÈËÀ´Ëµ£¬ÕâÒ»ÊÂʵ¾Í×ãÒÔÈÃËûÃǾö¶¨Ô¶ÀëWindows£¬»ò¿ªÊ¼´ÓWindows»·¾³ÖÐÏòÍâÇ¨ÒÆ¡£ÔÚCenturyLink
Cloud»·¾³ÖУ¬ÎÒÃǽ«ËùÓлùÓÚLinuxµÄ»ù´¡ÉèÊ©¶¼Í¨¹ýDocker½øÐÐÁ˳õʼ»¯·þÎñÆ÷¹¹½¨²âÊÔ¡£¶øÍŶÓÖеÄÿ¸öÈ˶¼»á¸æËßÄ㣬¶ÔWindows·þÎñÆ÷µÄ×Ô¶¯»¯½øÐвâÊÔÓëµ÷ÕûÔ¶±ÈLinuxÂé·³µÃ¶à£¬ÆäÔÒò¾ÍÊÇÔÚWindows»·¾³ÖÐÎÞ·¨Ê¹ÓÃDockerÕâÒ»ÊÂʵ¡£
ÓÐÒ»¼Ò¹«Ë¾¶ÔÓÚÈçºÎ½«ÈÝÆ÷»¯ÌØÐÔÒýÈëWindows»·¾³Í¶ÈëÁ˾޴óµÄµ÷ÑÐÁ¦Á¿£¬ÄǾÍÊÇspoon.net¡£ÔçÔÚÐéÄâ×ÀÃæÁìÓòÖУ¬ËûÃǾͿªÊ¼Í¶ÈëÕâÒ»¸ÅÄîµÄÑз¢ÁË£¬µ«ºÜ¿ìËûÃǾÍÔÚ·þÎñÆ÷»·¾³ÖмÓËÙÁËÕâÒ»½ø³Ì¡£Äã¿ÉÒÔ´´½¨Ò»¸öspoonÈÝÆ÷£¬ËüÌṩÁËÒ»¸ö¸ôÀëµÄÎļþϵͳÒÔ¼°×¢²á±í£¬ÆäÃüÁîÐнçÃæÒ²ºÜÓÐDockerµÄ·ç¸ñ¡£Ä¿Ç°ÔÚ·þÎñÓëÍøÂ繦ÄÜÉÏ»¹´æÔÚ×ÅһЩ²»×㣬µ«Ðí¶àÎÊÌâÔÚ±¾ÎÄ·¢²¼Ê±»òÐíÒѾµÃµ½½â¾öÁË¡£Î񵀮ÚÍûÊÇÓÐÒ»ÌìÄܹ»½«WindowsÈÝÆ÷ÓëÎÒµÄChef×Ô¶¯»¯¹¤×÷Á÷ÕûºÏÔÚÒ»Æð¡£
SpoonµÄCEO Kenji Obata×î½üÔÚTwitterÉϵÄһƪÌû×ÓÖз¢²¼Á˹ØÓÚÈÝÆ÷»¯Chef¿Í»§½ÚµãµÄ¼¸ÕŽØÍ¼¡£

×Ô´ÓÕâÆªÌû×Ó×î³õ·¢²¼Ö®ºó£¬¹ØÓÚÔÚWindowsÉÏʵÏÖÈÝÆ÷»¯µÄ½ø³Ì³öÏÖÁ˸üÓÐȤµÄ±ä»¯£¬Î¢Èí¸Õ¸ÕÐû²¼½«ÓëDockerÕ¹¿ªºÏ×÷£¬½«WindowsÈÝÆ÷ÒýÈëDockerÉú̬ϵͳ¡£ÖÁÓÚʲôʱºòÄܹ»ÊµÏÖ£¬ÒÔ¼°ËüµÄ¹¤×÷·½Ê½ÈçºÎ»¹²»Çå³þ¡£²»¹ý΢ÈíÄܹ»¹«¿ªÐÔµØ×ö³öÕâÒ»³Ðŵ£¬ÕâÒ»µãȷʵºÜÁîÈËÕñ·Ü¡£¿´ÆðÀ´£¬WindowsÈÝÆ÷½«À´±Ø½«ÒÔijÖÖ·½Ê½³öÏÖÔÚÎÒÃÇÃæÇ°¡£
ÏÈ·æÊ±´úÒÑÀ´ÁÙ
¶ÔÓÚWindows×Ô¶¯»¯À´Ëµ£¬ÏÖÔÚÕýÊÇÒ»¸ö·Ç³£¼¤¶¯ÈËÐĵÄʱ¿Ì¡£µ±ÎÒ×î½ü¸Õ¸ÕÀ뿪΢Èí¼ÓÈëCenturyLink£¬¿ªÊ¼ÍêÈ«½øÈë¿çƽ̨֮ÂÃʱ£¬ÎҸоõËÆºõ×Ô¼ºËƺõÒѾվÉÏÁËÒ»¸ö¸ßµã£¬Õý×¼±¸Ä¿»÷Ò»¸ö·þÎñÆ÷×Ô¶¯»¯ÎÄÃ÷µÄ³öÏÖ¡£ËäÈ»ÓжàÖÖ·½Ê½Äܹ»ÃèÊöÕâÒ»¾°Ï󣬵«ÎÒϲ»¶ÏëÏóΪ×Ô¼ºÒѾ´ó̤²½Âõ½øÁËÎ÷´ó»Ä×¼±¸½øÐпª¿Ñ¡£ËäȻǰ½øµÄµÀ·²¢²»Æ½Ì¹£¬µ«ÎҸоõWindows×Ô¶¯»¯µÄʱ»úºÍ´´ÐÂÌõ¼þÒÑÂõÏò³ÉÊì¡£Îҷdz£ÆÚ´ý×Å¿´µ½ËüÄܹ»½«ÎÒÃÇ´øÍùºÎ´¦¡£
|