2015年6月20日土曜日

Chocolateyで社内PCのソフトウェアをコマンドラインで管理する

更新:
2015-06-24 自PCにパッケージをインストールせずに、公式サイトからnupkgをダウンロードするよう変更。 2015-06-26 タイトルに「コマンドラインで」というのを追加しました。

はじめに

昨今ではオープンソースなどのフリーソフトウェアも発展し、業務に欠かせないものとなっています。 ということで社内のPCのアプリケー ション管理は大変です。社員一人ひとりのPCにログインし、 決められたソフトをインストールして、定期 的に更新しな ければなりません。 そうしなければセキュリティ・ホールのあるソフトウェアを社員が使い続けてしまうかもしれません。 その労力は並大抵のものではありません(たぶん)。

ということで今回はChocolateyというパッケージ管理ソフトを使用して社内にリポジトリを作成し、 コマンドラインでソフトウェアを管理しようという話です。 コマンドラインで済むので、更新は定期的にバッチファイルなどを動かせば常に最新のアプリケーションが使用できます。

ちなみにADでも配布できるよという話は今回は忘れます。

Chocolateyについて

時のたつのは早いもので、最後に何か書いてからもうすぐ2年となりそうです。 あの頃はZero Installに夢中でした。しかし、最近Chocolateyというパッケージ管理ソフトを見つけて夢中になっています。

確かにZero Installは素晴らしいソフトでした。今でもChocolateyよりも高機能です。 Zero Installでしばらくソフトウェアの管理をしてみましたが、ただひとつ欠点がありました。 ウィンドウズ標準のMSIに対応していないのです。なので解凍してごにょごにょしなければなりません。

そこで最近Chocolateyというソフトを見つけました。ずいぶん前からあったソフトみたいですが、 まったく見逃していました。 Chocolateyを使用するとLinuxのyumみたいにコマンドでソフトウェアのインストールやアンインストール、アッ プデートまで出来ます。 やっとWindowsでもコマンドラインでアプリケーションの管理ができるんです! しかもインストールできるパッケージが標準レポ ジトリにたくさんあります。

Chocolateyをインストールする

まず、Chocolateyをインストールしましょう。 Chocolateyのホームページにいって、いや、ホームページに行かなくても以下の長いコマンドを管理者コマンドラインでうってインストールできます。:

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

インストールが終わったら、もうコマンドラインからインストールできます。下記のように。(例: 7Zipの場合)

> choco install 7zip

chocoコマンドのサブコマンドとして実行出来ますが、下記のように短縮出来ます。このブログでは基本的に短縮型で書きます。

> cinst 7zip

インストールできるソフトウェアは下記のコマンドで検索出来ます。

> clist 7zip

ついでにインストールしたソフトウェアは下記コマンドで一覧できます。

> clist -l

社内リポジトリを作成する

本題に移り、社内リポジトリを作成しましょう。まず、ファイルサーバーを用意し、そこにディレクトリを作成しましょう。 例としてパスは \\fs01\chocolatey とします。

そして、インストールしたいパッケージを下記サイトから検索し、画面左のDownloadを押すと、nupkgがダウンロード できます。ダウンロードしたnupkgを \\fs01\chocolatey に入れます。

https://chocolatey.org/packages

次に管理対象のPCに移動し、Chocolateyをインストールします。 その後管理者コマンドプロンプトを開き、ソースとして \\fs01\chocolatey を追加し、デフォルトのソースを無効化します。:

> choco source add -n=local -s=\\fs01\chocolatey
> choco source disable -n=chocolatey

確認は下記コマンドで行います。:

> choco source
Chocolatey v0.9.9.6
chocolatey [Disabled] - https://chocolatey.org/api/v2/
local - \\fs01\chocolatey

これで決められたパッケージのみインストールできます。 以下のようにしてプログラムをインストールします。(管理者コマンドプロンプトで実行してください):

> cinst -y 7zip git procmon procexp

更新するときは、ファイルサーバーのパッケージを最新のものに置き換えてから、管理対象のPCで以下のコマンドを実行します。 バッチなどで定期的に実行するといいでしょう。:

> cup -y all

欠点としては、ソフトウェアの実体はインターネットからダウンロードしてくるので、オフライン環境などでは使用出来ませんが、 ソフトウェアの管理はだいぶ簡単になるのではないでしょうか。

ということで、次は本当に気が向きましたら、保証できませんが、カスタムパッケージの作り方を書きたいと思います。

追記: カスタムパッケージの書き方 を書きました。

終わり。

0 件のコメント:

コメントを投稿