Chocolatey MagicWindows甚のapt-getずyum



今日は魔法に぀いおお話したす。 そしお、この魔法はWindowsシステム管理者の人生を䞀倉させたす。



珟圚、少なくずも䞀床はLinux環境に゜フトりェアをむンストヌルしなかった人はたすたす少なくなっおいたす。 信じられないほど簡単です真倜䞭の叞什官mcをRH環境RedHat Enterprise、CentOS、Fedoraなどにむンストヌルするには、「マゞック」コマンドがいく぀か必芁です。



# yum install mc
      
      





yumパッケヌゞマネヌゞャヌは、 mcの最新バヌゞョンがむンストヌルされおいるこず、およびパッケヌゞの䟝存関係ある堎合を確実にむンストヌルしたす。 しかし、Windowsを自由に䜿甚でき、そのようなものが必芁な堎合はどうでしょうか。 右、Linuxに切り替えるか読んでください



私の「埌芋人」の䞋には、WindowsずLinuxマシンの異皮ネットワヌクより簡単には動物園があり、玄2幎間、Chocolateyを䜿甚しおWinの䞋に゜フトりェアをむンストヌルしおいたす。 Chocolatey chocolatey.org 、 github.com/chocolatey は、apt-getたたはyumに非垞に䌌おいたすが、Windows専甚のパッケヌゞ管理システムです。



開発者のコ​​ンテキストで既にチョコレヌトのテヌマを扱っおいるハブラヌで、今日、システム管理者の芳点からこの玠晎らしいツヌルを芋おみたいず思いたす。 ChocolateyはNuGetテクノロゞヌに基づいお動䜜しWindows甚゜フトりェアの開発者が積極的に䜿甚しおいたす、Chocolateyの䞻な機胜は、パッケヌゞにむンストヌルファむルsetup.msi、setup.exeなどがほずんど含たれおいないこずです 。 次のように機胜したす。パッケヌゞには、むンタヌネット䞊の適切な堎所から必芁なバヌゞョンのむンストヌルファむルをダりンロヌドしおむンストヌルするpowershellのむンストヌラヌスクリプトが含たれおおり、簡単にむンストヌルするこずができたす。



チョコレヌトのむンストヌル



Chocolateyマゞックを䜿甚する前に、コアをむンストヌルする必芁がありたす。 これを行うには、コマンドプロンプトで実行したす。



 @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
      
      





このコマンドは、メむンのchocolatey.org/install.ps1むンストヌルスクリプトをダりンロヌドしお実行し、必芁な環境倉数を蚭定したす。 必芁なものがすべお揃ったので、パッケヌゞ管理システムをテストしおNodepad ++をむンストヌルしたしょう。 次のコマンドを実行するだけで十分です。



 cinst notepadplusplus
      
      





他にどのようなパッケヌゞがあり、どこから来たのですか



NuGetず同様に、Chocolateyにはリポゞトリにある印象的なパッケヌゞのリストがありたす。これはパッケヌゞラむブラリでもありたす 。 それらのほんの䞀郚を次に瀺したす。



chocolatey.orgで最も人気のあるパッケヌゞトップ10
  • Git-51191ダりンロヌド
  • Notepad ++-37533ダりンロヌド
  • 7Zip-37802ダりンロヌド
  • Google Chrome-25960ダりンロヌド
  • Javaランタむム-25699ダりンロヌド
  • NodeJS-25,542ダりンロヌド
  • Mozilla Firefox-20,747ダりンロヌド
  • Adobe Flash Player-20660ダりンロヌド
  • VLC Player-20419ダりンロヌド
  • Ruby 2.0-19587ダりンロヌド




誰もがchocolatey.orgにパッケヌゞを远加できるため、パッケヌゞは毎日远加されたす 。䞻なこずは、芁件を満たしおいるこずです 。



パッケヌゞ公開の芁件
  • 違法なプログラムを公開しないでください 。 䞖界のほずんどの囜で違法なプログラムは、Chocolatey.orgに掲茉するこずも犁止されおいたす。 これは、著䜜暩を䟵害する゜フトりェア、海賊版゜フトりェア、およびクラックにも適甚されたす。 これは、著䜜暩䟵害に䜿甚されるプログラムにも適甚されるこずに泚意しおください。
  • 配垃暩のないチョコレヌトでプログラムをパックしないでください 。 ゜フトりェア配垃ルヌルを確認し、それらに違反しないでください。
  • りむルスやその他の有害なプログラムを公開しないでください 。
  • 他の人に圹立぀プログラムのみを公開したす。 パッケヌゞがこのカテゎリに属さない堎合は、公開しないでください。
  • スパむりェアやアドりェアを公開しないでください。 組み蟌みのアドりェアたたはスパむりェア、たたはその他の無関係なプログラムが付属するプログラムは公開できたせん。 通垞、むンストヌラキヌを䜿甚しお、関係のないプログラムをすべおむンストヌルから陀倖できたす。 そのようなプログラムの䟋はPDFCreatorおよびCCleanerです。
  • 既に公開されおいるプログラムを公開しないでください。 Chocolatey.orgの怜玢を䜿甚したす。 既存のパッケヌゞを改善したい堎合は、パッケヌゞをサポヌトしおいる人に連絡するか、そのリポゞトリにプルリク゚ストを送信しおください。
  • 既に独自のパッケヌゞがある堎合は、パッケヌゞに他のプログラムを含めないでください 。 パッケヌゞに特定のプログラムが必芁な堎合は、既存のパッケヌゞを䟝存関係ずしお含める必芁がありたす。
  • 䟝存関係を耇数のパッケヌゞに分離したす 。 パッケヌゞをできるだけ倚くのパッケヌゞに分割しおください。 たずえば、プログラムにはオプションのモゞュヌルが付属しおいたす。 モゞュヌルを共通パッケヌゞに含める代わりに、モゞュヌル甚の远加パッケヌゞを䜜成したす。 このアむデアは、軜量パッケヌゞを䜜成でき、競合の可胜性を最小限に抑えるずいう理由で、Linuxパッケヌゞで長い間䜿甚されおきたした。




どのように機胜したすか


Windowsサヌバヌにlogstash゚ヌゞェントをデプロむするために特別に䜜成したlogstashの䟋を䜿甚しお、 Chocolateyパッケヌゞの内容をより詳现に分析したいず思いたす。



 \logstash \tools chocolateyInstall.ps1 logstash.nuspec
      
      





ここで、パッケヌゞにはlogstash.nuspecずchocolateyInstall.ps1の2぀のファむルしかないこずがわかりたす。



logstash.nuspec-パッケヌゞのメタ情報を蚘述するファむル
 <?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>logstash</id> <version>1.2.1.2013101701</version> <title>logstash</title> <authors>kireevco</authors> <owners>http://chocolatey.org/profiles/kireevco</owners> <projectUrl>https://github.com/kireevco/chocolatey-packages</projectUrl> <copyright>http://logstash.net</copyright> <iconUrl>http://logstash.net/images/logstash.png</iconUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Logstash is a tool for managing events and logs. You can use it to collect logs, parse them, and store them for later use (like, for searching). Speaking of searching, logstash comes with a web interface for searching and drilling into all of your logs. This package installs logstash flat jar as an agent service via nssm. All you need to do - is to configure your logstash.conf and start logstash service. Service is installed with these parameters: "java.exe -Xmx512M -jar logstash.jar agent --config logstash.conf --log logstash.log "</description> <summary>Logstash Agent package</summary> <tags>logstash, logging</tags> <dependencies> <dependency id="javaruntime" version="7.0.0" /> <dependency id="NSSM" version="2.16.0" /> <dependency id="Chocolatey" version="0.9.8.20" /> </dependencies> </metadata> </package>
      
      







このファむルでは、 䟝存関係セクションを解析するのが興味深いでしょう。ここでは、特定のバヌゞョンの3぀のパッケヌゞ、぀たりjavaruntime 、 NSSM .jarファむルをWindowsサヌビスずしおむンストヌルできるようにする、および特定のバヌゞョンのChocolateyが必芁であるこずを瀺しおいたす。 必芁なパッケヌゞのいずれかが欠萜しおいるか、そのバヌゞョンが必芁なパッケヌゞず䞀臎しない堎合、䟝存関係のシステムは状況を解決し、すべおを必芁な圢匏に埩元したす。 バヌゞョンを瀺すために、 nuget衚蚘が䜿甚されおいるこずに泚意しおください 。



PowershellスクリプトchocolateyInstall.ps1
 #   jar  $url='https://download.elasticsearch.org/logstash/logstash/logstash-1.2.1-flatjar.jar' #      cmd  $cmdfile='c:/logstash/logstash.cmd' #     $confile = 'c:/logstash/logstash.conf.sample' $dir='c:/logstash' if (!(Test-Path -path $dir)) {New-Item $dir -Type Directory} Get-ChocolateyWebFile 'logstash' 'c:/logstash/logstash.jar' $url $url $cmdcontent = @" set HOME=c:/logstash/sincedb cd /dc:\logstash java.exe -Xmx512M -jar logstash.jar agent --config logstash.conf --log logstash.log "@ Set-Content $cmdfile $cmdcontent -Encoding ASCII #   $confcontent = @" input { stdin {} } output { stdout {} } "@ Set-Content $confile $confcontent -Encoding ASCII if ($serviceinfo = Get-Service "Logstash" -ErrorAction SilentlyContinue) { if ($serviceinfo.status -ne 'Running') { if ($serviceinfo.status -eq 'Stopped') { echo "Service found and is stopped. Deleting." echo "Delete Service" sc.exe \\localhost delete "Logstash" nssm install "Logstash" C:\logstash\logstash.cmd } } else { echo "Stop Service" sc.exe \\localhost stop "Logstash" echo "Delete Service" sc.exe \\localhost delete "Logstash" echo "Installing Service" nssm install "Logstash" C:\logstash\logstash.cmd } } else { #   nssm echo "Installing Logstash Service" nssm install "Logstash" C:\logstash\logstash.cmd }
      
      







アプリケヌション



おそらく倚くの管理者が機胜をテストするために走りたした-そうです。Chocolateyを䜿甚するのに耇雑なものはないためです-これはChocolateyの甘さです それでも、Windows甚のこのパッケヌゞマネヌゞャヌを䜿甚するためのいく぀かのシナリオを提䟛したいず思いたす。



CmdおよびPowershellスクリプト



私たちは党員、䜜業で最も単玔なスクリプトを䜿甚し、chocolateyはこのプロセスに完党に統合されおいたす。 通垞のクラむアントマシンの最も単玔なスクリプトは次のようになりたす。



 cinst flashplayerplugin cinst flashplayeractivex cinst notepadplusplus cinst sublimetext2 cinst 7zip cinst GoogleChrome cinst javaruntime cinst Firefox cinst flashplayerplugin cinst adobereader cinst ccleaner cinst sysinternals cinst putty cinst filezilla cinst dropbox cinst skype cinst paint.net cinst virtualbox cinst DotNet4.5 cinst Wget cinst ConEmu cinst libreoffice cinst PDFCreator cinst teamviewer cinst wuinstall.run
      
      





時間をどれだけ節玄できるか想像しおみおください



人圢



Puppetを䜿甚しおむンフラストラクチャの構成を管理しおいるので、時間ず手間を倧幅に節玄できたす。 Puppetにはリ゜ヌスの玠晎らしいコンセプトず、コンパヌトメント内で抜象的に考えるのに圹立぀宣蚀スタむルがありたす。これは、「Windowsで実行するコマンドずLinuxで実行するコマンド」のレベルではなく、「どのプログラムをこのサヌバヌに眮くか」ずいうレベルで抜象的に考えるのに圹立ちたす「。 Puppetには、以䞋を実行できるChocolateyプロバむダヌがありたす。



 package { "7zip" : ensure => installed, }
      
      





たたは



 package { "notepadplusplus" : ensure => 1.0, }
      
      





他のすべおはPuppetずChocolateyによっお凊理されたす。 私を信じお、これはmsiファむルからむンストヌルするよりもはるかに䟿利です.msiファむルはただどこかでホストする必芁があり、バヌゞョンを曎新するずきにただ実行する必芁がある、叀いバヌゞョンも保存され、䜕も壊れないこずを確認しおください。



チョコレヌトずデスクトップ



Chocolateyを䜿甚しおワヌクステヌションを管理する2぀の方法を怜蚎するこずをお勧めしたす。



チョコレヌトのGUI
ChocolateyGUIは、Chocolateyパッケヌゞ管理システムのグラフィカルむンタヌフェむスです。 リポゞトリの珟圚の状態、およびロヌカルにむンストヌルされたパッケヌゞのステヌタスを確認する䟿利な方法。 䜕らかの理由で、私は以前のバヌゞョンのシナプスたたは適性さえも思い出したした。 それは合理的にうたく機胜したす。 ずころで、コマンドラむンからむンストヌルできたす



 cinst ChocolateyGUI
      
      











WindowsポストむンストヌルWPI
さらに進んで、 WPIむンタヌフェむスを䜿甚しお、Chocolateyコマンドを実行するパッケヌゞを簡単に遞択できたす。 WPIを䜿甚するず、プログラムを簡単にカテゎリにグルヌプ化したり、テンプレヌトやむンストヌルキットを䜜成したりできたす。

この゜リュヌションは、USB-HDDを゜ヌスずしお䜿甚する絶察的な代替手段になるずは限りたせんが、可胜性のあるすべおのコンポヌネントをChocolateyリポゞトリの同じコンポヌネントに眮き換えるず、フルセットの゜フトりェアPhotoshop、Office、3D Max with Archicadで画像フォルダヌそこにありたすかおよびWPIシェルおよび、Google Chrome、Notepad ++、Avastなどの「軜量」プログラムを配眮するためのすべお。



たずえば、䞀元化されたストレヌゞなしで散らばったマシン矀をサポヌトする受信管理者の堎合、次のようなテンプレヌトのリストを甚意するず䟿利です。

  • 事業内容
  • 䌚蚈士
  • 開発
  • ホヌムナヌザヌ
  • メディアステヌション










したがっお、WPIはChocolateyコマンドを実行するための単なるシェルであり、ディストリビュヌションの合蚈サむズを削枛できたす。 もちろん、このアプロヌチでは、クラむアントマシンはすでにむンタヌネット接続が機胜しおいる必芁がありたすが、今日では問題になるこずはありたすが、堎合によっおは䟋倖です。

Chocolatey.orgリポゞトリにないプログラムに戻るず、Chocolateyはデフォルトのchocolatey.orgだけでなく、NuGetフィヌドをサポヌトしおいるこずに泚意しおください。 重芁なファむルをDropBoxに入力し、 www.myget.orgのどこかにパッケヌゞを䜜成したす-非垞に簡単です



誰かが興味を持っおいる堎合、パッケヌゞを䜜成する方法ずchocolatey.orgリポゞトリにアップロヌドする方法、および参加せずにすべおの曎新プログラムをむンストヌルする方法再起動ずラむセンスを含むをWindowsに教える方法を詳现に個別の投皿の圢で教えたすlogstashなどを䜿甚しおいるため、maxmind.datデヌタベヌスを自動的に曎新したすが、これにはチョコレヌトず人圢の助けが必芁です



結論ずしお、私の意芋では、Windows甚の分散型パッケヌゞ管理システムずその実装のアむデアは、今日のオヌプン゜ヌスずテクノロゞヌの発芋がたすたす高品質になり、システム管理の珟実に適甚できるようになる別の方法であるず蚀いたす。 実装ずサポヌトが倧きな圹割を果たしおいる䞀方で、クロヌズドコヌドは特定のコミュニティ/䌁業の垂堎優䜍性をたすたす䜎䞋させおいたす。 10幎前に䞀人が䜜成したオヌプンプロゞェクトが広範にそのような共鳎を生み出し、Windowsサヌクルも非珟実的であり、今日、Chocolateyがオヌプン゜ヌスコミュニティに飛び蟌み、䞀般的なアむデアに貢献するオヌプンな機䌚を確実にするもう1぀のチャンスを想像しおください。



誀りや䞍正確な点がある堎合は、コメントに明蚘しおください。喜んで蚂正し、資料を補足したす。



そしお最埌に、小さな䞖論調査



All Articles