基本情報
概要
Packer(パッカー)とは、マシンイメージの自動生成/管理を行なうコマンドラインツールです。マシンイメージ作成に関するさまざまな問題を解決するためのサポートを行います。
基本説明
Packerは、マシンイメージ(仮想マシンイメージファイル、コンテナイメージファイルなど)の自動生成を行います。「Ansible」や「Chef」のマシンイメージ版のように機能します。
各種仮想化ツールでは、それぞれ独自のディスクイメージ形式が採用されており、それぞれ専用のツールを利用する必要があります。複数の仮想化ツールを併用する場合、非常に煩雑な作業が必要となります。Packerを使用すれば、マシンイメージに関する面倒な作業を単純化できます。
仮想環境構築/共有ツール「Vagrant」との関係
Packerは、仮想環境構築/共有ツール「Vagrant」の開発元でもあるHashiCorpが開発しています。
「VirtualBoxのVMをisoから作成し、そこからVagrant用Boxを作る」という手間がかかる作業を、Packerを使用すれば「JSON設定ファイルから自動作成」できます。
Packerの利点
・VagrantのBoxファイルを自前で作れる
・サイトで公開されているブラックボックスなBoxファイルを使わずにすむ
・isoからBoxファイルを作成する段階で、実行しておきたい処理も設定できる
主な特徴
コマンドラインツール
Packerは、コマンドラインツールであるため、正確/迅速に処理を行えます。特に、何回も同じ作業を繰り返す場面で効果を発揮します。
Packer用テンプレートファイル
Packerのマシンイメージ管理のために、JSON形式のPacker用テンプレートファイルを使用します。「どのような環境で使用するのか」「どのようなマシンイメージを作成するのか」などの情報を記述します。
抽象化マシンイメージ概念「アーティファクト」
「アーティファクト」とは、Packer独自の抽象化マシンイメージ概念です。環境ごとに異なるマシンイメージを抽象化し、各種情報がまとめられた成果物となります。
「ビルダー」機能
「ビルダー」は、マシンイメージ生成を行なう機能です。
「プロビジョナー」機能
各種ミドルウェア/アプリケーションなどのインストール(設定)作業をマシンイメージ作成の中に組み込めます。
アーティファクト共有サービス「Atlas」
Packerは、HashiCorpの提供するアーティファクト共有サービス「Atlas」と連携できます。容易にアーティファクト共有を行えます。
「ポストプロセッサー」機能
「Tar形式で圧縮」「Docker/Atlasなどにアップロード」などの機能を組み込めます。
対応プラットフォーム
Packerは、さまざまなプラットフォームに対応しています。
・AWS「Amazon Elastic Compute Cloud(Amazon EC2)」
・Google Cloud Platform「COMPUTE ENGINE」
・Docker
・OpenStack
・Oracle VM VirtualBox
・VMware など
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Vagrant」など。
ライセンス情報
Packerのライセンスは「Mozilla Public License Version 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
参考元サイト
・Think IT →システム運用 →マシン・イメージを自動構築し、作業効率を高めるPacker入門
・さくらのナレッジ →「Packer」でDocker用のイメージファイルを作ってみよう
・SONICMOOV LAB →【IaC入門】PackerでEC2のAMIを作成して起動してみる
・Fusic Developers Weblog →PackerでVagrantで使うVirtualBox用のboxを生成する
・Qiita →Packer+Vagrant+Virtualboxを使ってCentOS7環境を構築してみた
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。