Packer は、HashiCorp によって開発された強力なオープンソース ツールで、ユーザーが単一のソース構成から複数のプラットフォーム用に同一のマシン イメージを作成できるようにします。一方、SaltStack は、簡単な構成管理、リモート実行、オーケストレーションを可能にする堅牢なインフラストラクチャ自動化および管理ソリューションです。このブログ投稿では、Packer サプライヤーとして、プロビジョニングのために SaltStack で Packer を使用する方法について説明します。
基本を理解する
統合に入る前に、各ツールが何をもたらすのかを理解することが重要です。 Packer は、Amazon EC2、Google Compute Engine、VMware などのさまざまなプラットフォーム用のマシン イメージを構築することで機能します。 JSON ベースの構成ファイルを使用して、ベースイメージ、プロビジョナー、ポストプロセッサーなどのビルドプロセスを定義します。
SaltStack (Salt とも呼ばれる) は、高性能の構成管理およびリモート実行システムです。サーバー、デスクトップ、その他のデバイスを効率的に管理できます。 Salt はマスター - ミニオン アーキテクチャを使用しており、マスターが複数のミニオンを制御および管理します。
前提条件
このガイドに従うには、次のものをインストールする必要があります。
- パッカー: Packer の最新バージョンは、HashiCorp の公式 Web サイトからダウンロードできます。
- ソルトスタック: SaltStack をローカル マシンにインストールします。インストールプロセスはオペレーティングシステムによって異なる場合があります。たとえば、Ubuntu では次のコマンドを使用できます。
wget -O - https://repo.saltproject.io/py3/ubuntu/20.04/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add - echo "deb https://repo.saltproject.io/py3/ubuntu/20.04/amd64/latest focus main" | sudo tee /etc/apt/sources.list.d/saltstack.list sudo apt-get update sudo apt-get install Salt-Master Salt-minion
Packer と SaltStack の統合
Packer と SaltStack の統合には、Packer のプロビジョナーとして SaltStack を使用することが含まれます。これを実現する手順は次のとおりです。


ステップ 1: Packer 構成ファイルを作成する
新しい JSON ファイルを作成します。たとえば、Packer_salt.json。このファイルはビルド プロセスを定義します。
{ "builders": [ { "type": "amazon-ebs", "access_key": "YOUR_AWS_ACCESS_KEY", "secret_key": "YOUR_AWS_SECRET_KEY", "region": "us -west-2", "source_ami": "ami - 0c55b159cbfafe1f0", "instance_type": "t2.micro", "ssh_username": "ubuntu", "ami_name": "packer - Salt - {{timestamp}}" } ], "provisioners": [ { "type": "salt - masterless", "local_state_tree": "salt/roots", "local_pillar_roots": "salt/pillar" } ] }
上記の構成では次のようになります。
- の
建設業者セクションでは、構築するマシンイメージのタイプ (この場合は Amazon EBS イメージ) を定義します。 - の
プロビジョナーセクションでは、塩 - マスターレス手数料。のローカル状態ツリーそしてlocal_pillar_rootsSaltStack の状態とピラーが保存されているディレクトリを指します。
ステップ 2: SaltStack の状態とピラーを設定する
を作成します。塩/根そして塩/柱プロジェクトディレクトリ内のディレクトリ。
州: SaltStack の状態は、システムの望ましい状態を定義します。たとえば、ファイルを作成しますソルト/ルーツ/top.sls次の内容で:
ベース: '*': - apache
このファイルは、SaltStack にアパッチすべてのミニオンに伝えます。次に、ファイルを作成しますソルト/ルート/apache.slsApache Web サーバーをインストールして起動するには:
apache: pkg.installed: - 名前: apache2 service.running: - 名前: apache2 - 有効化: True
柱: ピラーは、機密データまたは特定のミニオンに固有のデータを保存するために使用されます。ファイルを作成するソルト/ピラー/top.sls:
ベース: '*': - example_pillar
そしてソルト/ピラー/example_pillar.sls:
example_variable: 「これは変数の例です」
ステップ 3: Packer ビルドを実行する
ターミナルで次のコマンドを実行して、Packer ビルドを開始します。
パッカービルド Packer_salt.json
Packer は EC2 インスタンスを作成し、SaltStack をインストールし、定義した状態とピラーを適用します。ビルドが完了すると、希望の設定で構成された Amazon Machine Image (AMI) が作成されます。
SaltStack で Packer を使用する利点
- 一貫性: Packer と SaltStack を併用すると、すべてのマシン イメージが同じ構成で構築されるようになります。これにより、「自分のマシンで動作する」という問題が解消され、異なるプラットフォーム間で一貫した環境が提供されます。
- オートメーション:マシンイメージの構築とプロビジョニングのプロセス全体を自動化できます。これにより時間が節約され、人的ミスのリスクが軽減されます。
- スケーラビリティ: 同一のマシン イメージを作成し、それらを複数のサーバーに展開することで、インフラストラクチャを簡単に拡張できます。
当社が提供するさまざまなタイプのパッカー
パッカーのサプライヤーとして、当社はさまざまな用途に合わせたさまざまなパッカーを提供しています。当社の人気製品の一部をご紹介します。
- 電動水中ポンプパッカー: このパッカーは電動水中ポンプ システムで使用するように設計されています。確実なシールを実現し、液体の漏れを防ぎます。
- フラクパッカーのドラッグ: 破砕作業に最適なこのパッカーは高圧に耐えることができ、取り付けと取り外しが簡単です。
- 圧縮開孔パッカー: このパッカーはオープンホール用途に適しています。圧縮を利用して密閉性を高め、液体の移行を防ぐのに非常に効果的です。
調達に関するお問い合わせ
弊社の Packer 製品にご興味がある場合、またはプロビジョニングのニーズに対応する SaltStack での Packer の使用に関する詳細が必要な場合は、調達についての話し合いのために弊社にお問い合わせいただくことをお勧めします。当社の専門家チームは、お客様の要件に最適なソリューションを見つけるお手伝いをいたします。
参考文献
- ハシコーポレーション(nd)。パッカーのドキュメント。 https://www.packer.io/docs から取得
- 塩プロジェクト。 (nd)。 SaltStack のドキュメント。 https://docs.saltproject.io/en/latest/ から取得
