Packer が Atlas の UI を通して、リモートでも使えるようになる、という HashiCorp ブログの投稿がありました。これまではコマンドラインでの作業が必要でしたが、今後はそれが不要。しかも、ビルド時の情報やアーティファクトを共有できるようになりました、という内容です。最後で、今後は GitHub との連携や、 Packer と Terraform との自動連係について触れられています。
というわけで、例によって参考訳です。
原文:
Packer in Atlas: Automate the Building and Managing of Vagrant Boxes and Machine Images
https://hashicorp.com/blog/atlas-packer-vagrant.html
※一応書いておきますと、本blogでの投稿は私個人の意志によるものであり、所属する組織の意見を代表するものでもなく、仕事でもなく、誰からの指示をうけているわけでもなく、すべて興味本位であり、ぶっちゃけ好き勝手に書いています。これまでも、これからも。
–翻訳ここから
■ Packer in Atlas
今日、私達は Packer の Atlas への統合を発表します。リモートで自動的に Packer が構築(ビルド)し、保管し、アーティファクトのバージョン管理を行い、チームやコミュニティに対して Vagrant box を素早く配布します。
Packer はマシンイメージを構築するための、HashiCorp によるオープンソースのプロジェクトです。AMI、Virtualbox イメージ、Docker イメージ、Vagrant box 等、主なマシン・イメージやクラウド事業者のイメージの構築をサポートしています。
現在、Packer が Atlas と統合されており、Vagrant box 等を Atlas に手軽に保管し、リモートでビルドを実行し、アーティファクト作成時の結果を見られます。 Packer ビルドを開発用マシンや他の環境から実行できるようになりました。ビルド時のログや保管時のプロセスは、Atlas上に完全な履歴として残りますので、簡単なウェブ・インターフェースを通して、自分だけでなくチーム全体で変更点を監査(レビュー)できるようになります。
Packer + Atlas のより詳しい理解やスクリーンショットを見るには、このまま読み進めてください。
■ はじめに
これから Atlas と Packer を使ってみましょう。私達はインタラクティブなチュートリアルを用意しました。Atlas で Vagrant box を保管し、構築するための全ての手順をガイドするものです。Vagrant box はアーティファクトの一種であり、他にも AMI や Docker コンテナや、DigitalOcean イメージなども構築できます。
Atlas と Packer の統合に関する詳細を知るには、インタラクティブ・チュートリアル(英語)のページから始めてみましょう。あるいは、以下を読み進めてください。
■ Vagrant box の作成と管理
「packer push」でテンプレートと設定ファイルを関連づけることで、Atlas は自動的に Packer でビルドを実行し、Vagrant box のプロビジョン(自動的な環境構築)を行い、post-process(packer 用語で、マシンイメージ環境構築後の、OS上での様々な自動処理のこと)の処理結果を Atlas 上に保管します。
$ packer push template.json Push successfule to 'packers/example'
Packer push によって、ユーザは「1ステップで」基本設定の変更やプロビジョニング・スクリプトによって、新しい Vagrant box のバージョンを作成します。Vagrant box はプライベートにもパブリックにも設定でき、どちらも Atlas でバージョン管理や Atlas に保管できます。
「packer push」を実行後は、誰でも Vagrant box にアクセスできるようになり(権限の設定次第)、構築用のユーザインターフェースを通して構築時の進行状況をリアルタイムに参照できます。これらのログは常に保存されます。
ビルドが完了すると、作成された box は自動的に Atlsa にアップロードされ、ユーザに利用可能となります。
そして、これまでの Atlas 上の Virtualbox 管理ユーザインターフェースを通して box が利用できるようになります。これで、誰もがローカル環境に box をインストールするために「vagrant init」を実行できるようになり、あるいは「vagrant box outdated」を実行できます。
■ 今後について
Vagrant box の構築や保管は、Atlas における Packer の機能の1つです。
amazon-chroot amazon-ebs amazon-instance digitalocean docker qemu virtualbox-iso vmware-iso
1ヶ月以内に、Atlas は GitHub と連携できるようになります。具体的には、GitHub 上の Packer テンプレートに変更が発生すると、Atlas は自動的にそれをトリガとして新たに Packer を構築するものです。Packer 構築の自動化と、アーティファクトの変更を起点とする Terraform 自動実行を連携することにより、自動化とイミュータブル・インフラストラクチャ管理の基礎となります。
Atlas は私達の商用プロダクトであり、現時点では技術ブレビューです。料金はまもなく公表する予定です。Atlas の料金を公表しても、無料で利用できる範囲は豊富にしますので、Atlas に対する支払いを心配する必要はありません。もし Atlas を大きくスケールさせて使いたい場合、あるいは考えている場合は、hello@hashicorp.com にメールをいただけると、私達はとても嬉しく思います。
— 翻訳ここまで
■用語捕捉
・マシンイメージ ( machien image ) … 仮想マシン起動時に必要となる OS 等の情報が記録されたファイルのこと。仮想化システムやクラウド毎に形式が異なっており、基本的に互換性はない。
・Vagrant box … 仮想マシンの開発環境を整える Vagrant が扱うマシンイメージの形式のこと。
・ビルド ( build ) … 動作可能なマシンイメージを構築する作業のこと。Packer では完成形としてのマシンイメージとして、アーティファクトという呼称をする。
・アーティファクト ( Artifact ) … Packer・Terraform ・Atlas で用いられている呼称で、マシンイメージを抽象化する概念。AMIや各種のイメージに関する情報と、付随するメタ情報を総称する。
・Atlas … HashiCorp が提供しているインターネット上のサービス。クラウド上で開発・運用に関するワークフローを一体化することと目的に開発が進んでいる。現時点で技術プレビュー版という位置付け。
■参考
Packer in Atlas: Automate the Building and Managing of Vagrant Boxes and Machine Images – HashiCorp
https://hashicorp.com/blog/atlas-packer-vagrant.html
■おまけ
Vagrant・Packer から、それぞれ具体的に Atlas にアクセス・連携する方法は、以下の記事で紹介しています。よろしければ、あわせてご覧ください。
開発環境の構築・共有を簡単にするVagrant入門 | Think IT(シンクイット)
http://thinkit.co.jp/story/2015/03/19/5740
マシン・イメージを自動構築し、作業効率を高めるPacker入門 | Think IT(シンクイット)
http://thinkit.co.jp/story/2015/04/13/5875