放浪CentOSのボックスを作るためにパッカーパッカーツールを使用して、画像ファイルの生成

ミラーリングOpenStackの
OpenStackの上で仮想マシンを作成するには、仮想マシンイメージを使用するようにバインドされています。
平均的なユーザーのために、すでに作成した仮想マシン・イメージを使用することができます。一般的には、公式ビルドのオペレーティングシステムであり、提供されます。

一部のユーザーは、あなたが特別なカスタム仮想マシンイメージを必要とし、独自のニーズを持っていることがあります。
今回は主に変換ミラー/画像フォーマット/イメージ作成の変化を伴います。
OpenStackのユーザーは、公式ドキュメントを参照することができます。

変更のミラーリング
画像フォーマットの変更を、ツール、および様々な方法があります。
* Guestfishとguestmount guestfsを提供します。
guestfishもっと面白い、guestfishは、シリアルポートと仮想マシンを介して通信する仮想マシンを、開始します。この我々に基づいて、仮想マシン内で変更することができます。
* Virt- *ツール。
*ループループバックデバイスの方法は、ミラーの内容を変更します。

画像フォーマット変換は、
通常、コンバートのqemu-IMGに使用されています。
VirtualBoxが生に変換するツールを持っています。

画像作成
二つの一般的な方法があります。
手動ビルドは、この方法は比較的簡単ですが、プロセスはより複雑です。開発者、または小規模な状況に。
自動ビルドは、OpenStackの公式文書では、ツールおよびビルドに、多くの方法を提供します。

多くの自動ビルドツール、主に存在するディスクドライブ仮想化ソフト・ビルダー、オズ、VMBuilder、 VeeWee、パッカー、ImageFactory、SUSE Studioが。
これは、ディスクドライブ仮想化ソフト・ビルダーTripleOのサブプロジェクトではOpenStackの、比較的よく各ツールの機能、主要なLinuxオペレーティングシステムでサポートされている(Fedoraの/ CentOSの/ RedHatの/ Ubuntuの/ Debianの)で
ミラーリングの)。

ディスクドライブ仮想化ソフト・ビルダーのインストールを実行するには、環境変数を設定、比較的単純な、直接クローンコードです。

Ubuntuの-VM作成ディスクドライブ仮想化ソフト#
ディスクドライブ仮想化ソフト-Builderは、カスタム要素、ミラーに含まれる、すなわち要素をサポートしています。(そのようなユーザは、インストール・パッケージ、構成のいくつかの並べ替えを作成するように)
、必要に応じてユーザが定義することができ、次いで、ディスクイメージを作成する指定時間。特定の参照ディスクドライブ仮想化ソフト・ビルダー指導。

原則ディスクドライブ仮想化ソフト・ビルダーが比較的簡単である、ホスト上の仮想マシンイメージを作成し、キックスタート自動化インストールイメージの内容によって/ chrootの道をマウントすることです。
よりインターフェイス/プラグイン機構のプログラムのような要素は、ディレクトリ内のカスタマイズされたスクリプトは、実装に画像の完全なカスタマイズ要素を指定しました。
全体のプロセスは、仮想マシンを起動する必要はありません。

主なツールは、Linuxのミラーを作るトップで、自動車生産ミラーリングウィンドウをサポートしていません。

私はまた、自動生産が可能であるミラーリング次、ウィンドウを検索し、それに統合されていませんなぜそれが現時点では明らかではありません。作成プロセスは、わずかに大きい差であってもよいです。Windowsイメージの作成、
一般的に仮想マシンを作成する必要がありますが、OSのインストールが応答ファイルによって自動的に完了します。フロッピーディスク上の一般的な応答ファイルでは、仮想フロッピーディスクファイルを作成する必要があります。
----------------

仮想化とクラウドコンピューティングの台頭として、パッカー、ドッカーと他のサービステンプレートツールは、テンプレートツールの背後に表示されます多数のサーバーの開始と比べて、鏡像である場合、インストールソフトウェアを繰り返す同じコードを実行し、システム設定の構成管理ツールを使用します、唯一のオペレーティングシステム、ソフトウェア、コンフィギュレーションファイルをテストされていた完全なサーバーを捕獲するために状態のスナップショットが含まれている必要がある、というように、そしてその後すぐに大きく改善などテラフォームツール、することにより、画像ベースのサーバー、データベースなどの振り付けを作成ミラーリング経営効率のインフラと作成し、こうして技術をミラーリングするの不可欠な部分主要なクラウドプラットフォームを構成し、インフラストラクチャを作成するための最初のステップとして、自然な形にIACの礎石をミラーリング。

3.ミラーリング武器パッカー
のような、静的なユニットは、事前に設定オペレーティングシステムおよびプリインストールされたソフトウェアが含まれ、あなたはすぐにそれを実行している新しい仮想マシンインスタンスを作成することができ、異なるプラットフォームが異なる画像フォーマットをサポートしている、ミラーリングと呼ばれますAWSのEC2のAMIはをサポートし、VMwareはVMDK / VMXは、ECSのAlicloudがそうでRAWとVHD形式とをサポートし、サポートしています。各クラウドプラットフォームは、ユーザーの基本イメージの数が付属していますが、ユーザーのクラウドプラットフォームの増加成熟度で、ユーザーはますます強いイメージパーソナライゼーション、などのための商業の考慮を必要とする、また、ユーザーはシステムをしたいです異なるクラウドプラットフォーム間を移動する能力を持って、もちろん、ミラーの移行をパーソナライズする機能を備えています。主要なクラウドプラットフォームを提供しますがWEBインターフェイスツールは、ユーザーが手動でカスタムイメージを作成することができますが、また、対応するAPIを開く画像の可能な自動化されたスクリプトカスタムによってパーソナライズ作成することができます。しかし、そこにいくつかの制限があり、エンドユーザーのニーズを満たすことができない、この文脈でパッカーが誕生しました。

3.1パッカーは何か
、パッカーは、WindowsやLinux、およびMac OS上などの人気主流のオペレーティングシステム上で実行することができ、単一のテンプレートファイルからマルチプラットフォームの一貫性、軽量オープンソースツールを作成するためのミラーであり、マルチ効率的な並列を作成することができますミラーリングされたときにインターネット例えばAWS、アズールとAlicloudミラーは、その目的は、実際には、構成管理ツールのような人形/シェフ置換されていない、又は人形シェフパッカーは、ソフトウェアおよびその他のツール必要なイメージをインストールするために使用することができます。パッカー自動化されたプラットフォームにより、それは非常に簡単で、画像の様々を作成します。

ミラーを作成するためのパッカーを使用するには、次のような利点があります。

インフラ展開Xunjie:パッカーのミラーリングを使用すると、設定を完了するのに数秒で起動することができますし、マシンはかなり分または数時間よりも、設定されています。仮想マシンの開発は、通常より長く設定時間を待たずに、数秒で起動することができますので、これは、生産を助長するだけでなく、発展に資するだけではありません。
ポータビリティ:パッカーは、複数のプラットフォームで同じイメージを作成するので、あなたがAlicloudで生産、OpenStackのプライベートクラウドのテスト段階のようなの開発者、および(VMwareなどやVirtualBoxのような)仮想デスクトップソリューションを実行することができます。それぞれの環境には、究極のポータビリティを提供し、同じマシンイメージを実行します。
改善された安定性:画像の建設における機械のパッカーすべてのソフトウェアのインストールと設定。これらのスクリプトにエラーがある場合、彼らはむしろマシンを起動した後、数分よりも、早期に発見されます。
より良いテスト容易性:マシンイメージを構築した後、画像はすぐにマシンを起動することができ、そしてスモークテストによってミラーが正常に動作していることを確認します。
グッドスケーラビリティ:パッカーは、プラグイン機構を使用して、必要に応じて機能を拡張することは容易であり、多くの人気のある技術やツールと統合。
同社はHashiCorp生態系の一部であり、
組成と原則3.2パッカーや
ビルダー(ビルダー)、(産卵)プロビジョニング、(ポストプロセッサ)ポストプロセッサ3つの成分を含むパッカー、JSON形式のテンプレートファイルを使用して、柔軟にすることができます並行して、これらの3つの成分の組み合わせは、自動的にマルチプラットフォーム一貫したイメージファイルを作成します。作成がミラーリングシングルタスクを単一のプラットフォームを構築するために呼び出され、その結果はまた、単一の構築物の加工物(アーティファクト)と呼ばれ、構造体の複数を並列に実行することができます。

また、ビルダーとして知られているBuilderは、単一のプラットフォーム用のミラーを作成することができます。建設は、一部の構成を読み取って実行し、ミラーを生成するためにそれを使用しています。実際、生成された画像を作成するための呼び出しビルドビルダーの一環として。一般的なビルダーはVirtualBoxは、Alicloud ECSとAmazon EC2を含んでいます。ビルダーは、プラグインの形式で作成され、パッカーに添加することができます。
プロビジョニング(産卵)、Buiderにソフトウェアをインストールおよび設定するには、このコンポーネントは、マシンを実行するために作成しました。彼らは、ミラーの主な仕事は、便利なソフトウェアが含まれて実行します。一般的な誘導体は、その上のシェフ、人形や、シェルスクリプトが含まれています。
ポストプロセッサ(ポストプロセッサ)、または他のビルダーは、新しいプロセッサワークを作成するプロセスの結果を使用しています。圧縮処理した後、例えば、圧縮仕事のために、作業プロセッサのアップロードは、一度アップロードしました。
ミラーイメージを作成するために、パッカー原理は、一例として、アリの雲画像作成プロセスに複雑ではありません。

 

 

 1.アリクラウドビルダーは、設定ファイルが対応するAPIアリクラウドECS例提供、ネットワーク設定要求とセキュリティルールによって作成された著者に従って定義され、設定ファイルを読み込みます。 

2.アリクラウド制御システムは、APIリクエストは、configureネットワークとセキュリティの規則に従ってECSインスタンスを作成し、上のようにします。
必要に応じて、派生3. WinRMのリモートプロトコルのようなSSH接続や、ソフトウェアのインストールおよび構成テンプレートファイルを介して設定ファイル、ECSインスタンスを読み出します。
4.ソフトウェアがインストールされ、構成されたECSインスタンスは、インスタンスの状態をキャプチャするために、ミラーのビルダー要求作成を必要とするとき。
5. aliyun制御システムは、要求に応じてミラーを作成し、処理を終了する、または任意のエラーを作成する作成処理が発生した後、ビルダーは、一時的なリソースを保持するか、必要に応じて対応する構成テンプレートをクリアします。
前記プロセッサがで構成されている場合、さらに例えば、パッカー・ポストプロセッサalicloud-によって、前のステップで生成された画像を処理することができるインポートプロセッサ、ECSローカルミラーミラーリングシステムに導入することができる
の理解でパッカーの原理および利点の後、我々は独自のイメージを作成するためにそれを使用する方法を実践を通して学ぶことができます。

3.3インストールパッカー
の例として、ここに最初のパッカー公式サイト(https://www.packer.io/downloads.html)対応オペレーティングシステムのインストールパッケージからダウンロードし、Mac OS Xのx64の、HTTPS(公式サイトのリンクをクリックしてください/ /releases.hashicorp.com/packer/0.12.3/packe_0.12.3_darwin_amd64.zip)インストールパッケージパッカーのスクリーンショットをダウンロード

そして、次の図にして得られた出力は、パッカーは、今インストールした場合、次のコマンドを実行し、ダウンロードディレクトリに、端末、ナビゲートを開きます。

 

 

 アリクラウドパッカープラグ提出プロセスはまだ、それはアリクラウドオープンソースツールのサイトから必要なので(https://github.com/alibaba/opstools)ダウンロードアリクラウドパッカープラグ(https://github.com/ので、 alibabaの/パッカープロバイダ/リリース/ダウンロード/ V1.1 /パッカービルダー-alicloud-ecs_darwin-amd64.tgz)、その後、次のように出力された場合、プラグインがインストールされ、コマンドを実行します。

 

 パッカーパッカー・ビルダー・alicloud-ECSパッカー・ポストプロセッサ-alicloudインポート 

3.4パッカーの例
ミラーリングされたデータベースの簡単な例を作成することにより、以下のパッカーを使用する方法を学ぶためのRedisが含まれています。

首先打开常用的文件编辑器,输入如下内容,将其中<<…>>部分替换成你自己的实际值,并且存储为alicloud.json模板文件:
{
“builders”: [{
“type”:”alicloud-ecs”,
“access_key”:”<>”,
“secret_key”:”<>”,
“region”:”cn-beijing”,
“image_name”:”packer_basic”,
“source_image”:”centos_7_2_64_40G_base_20170222.vhd”,
“ssh_username”:”root”,
“instance_type”:”ecs.n1.tiny”,
“io_optimized”:”true”
}],
“provisioners”: [{
“type”: “shell”,
“inline”: [
“sleep 30”,
“yum install redis.x86_64 -y”
]
}]
}
打开命令行终端,输入如下命令: 3.
packer build aliclouod.json
alicloud-ecs output will be in this color.

==> alicloud-ecs: Prevalidating alicloud image name…
alicloud-ecs: Found image ID: centos_7_2_64_40G_base_20170222.vhd
==> alicloud-ecs: Start create alicloud vpc
==> alicloud-ecs: Start creating vswitch…
==> alicloud-ecs: Allocated alicloud eip 47.93.55.94
==> alicloud-ecs: Connected to SSH!
==> alicloud-ecs: Provisioning with shell script: /var/folders/
3q/w38xx_js6cl6k5mwkrqsnw7w0000gn/T/packer-shell077409543
alicloud-ecs: Loaded plugins: fastestmirror
alicloud-ecs: Determining fastest mirrors
…………………..
alicloud-ecs: Installed:
alicloud-ecs: redis.x86_64 0:3.2.3-1.el7
………………….
alicloud-ecs: Complete!
==> alicloud-ecs: Start delete alicloud image snapshots
==> alicloud-ecs: Clean the created VPC
Build ‘alicloud-ecs’ finished.

==> Builds finished. The artifacts of successful builds are:
–> alicloud-ecs: Alicloud images were created:

cn-beijing: m-2zehwk9as9ed3yna7pq0
3. 十几分钟后,你就可以在自定义镜像列表里看到刚刚创建好的镜像packer_basic


4.阿里云的Packer插件

阿里云的插件开发起步较晚,虽然已经向官方提交了PR,但是还没有合并的主流中去,所以目前只能以外挂的插件方式运行,当前已经支持从基础镜像创建新的自定义镜像和上传本地基于KVM创建的镜像到ECS镜像列表,现在国内对于Packer插件的文档也比较少,如果读者需要更详细的实战资料,可以参考如下两篇博客,也欢迎读者能够在阿里云Packer官方插件资源库提出需求或者贡献力量。

实战Packer创建chef server镜像(https://yq.aliyun.com/articles/72043)
Packer创建阿里云本地镜像(https://yq.aliyun.com/articles/72218)
5. Packer应用场景分析
应用场景1:

官方提供的基础镜像只能提供有限的操作系统版本组合,而有些专有云用户需要特定版本的操作系统镜像,通过工单的形式周期过长,用户难以接受,而由用户自己制作基础镜像的不但技术要求高,从本地上传到镜像列表的操作也很复杂,用户很难制作出能够正常运行的基础镜像,而使用packer,其post-processor能够自动的将本地镜像上传到镜像列表中,通过提供一些基础模板,用户只需要修改模板文件的源ISO,就可以创建出指定版本的基础镜像,极大的降低了镜像制作的门槛。

应用场景2:

在镜像市场中有许多第三方镜像,ISV制作镜像中包含的内容是什么,对阿里云及用户都是不透明的,我们无法清晰的看到镜像中是否有隐患或不安全的内容,为了确保安全,只能进行大量的安全扫描,一方面,使得ISV发布镜像的周期较长,另一方面,通过扫描二进制文件,很难完全避免安全风险。而通过packer模板文件制作的镜像,我们可以清晰的看到脚本中执行的命令,相比二进制文件,安全扫描也容易得多,而且也方便ISV做镜像的版本管理,以及多平台的镜像制作,提高镜像制作的效率,不需要ISV一遍一遍的手工制作。

应用场景3:

在弹性伸缩(ESS)中,镜像的生成是否方便高效起着重要的作用,当检测到工作负载达到阀值的时候,需要使用镜像来生成新的实例,当弹性伸缩的应用数量达到一定规模的时候,通过手工来创建镜像是难以接受的。特别是当需要升级应用时,如果使用传统的方式,直接在运行时实例上在线升级应用,一方面,在线升级的速度较慢,而且会影响在线用户的检验,另一方面,当出现错误的时候,回滚也比较困难,很容易形成较长时间的当机,而采用Packer,结合Jenkins和Terraform等工具,能够将应用的从代码到镜像升级,产生更新后实例的过程完全自动化。当Jenkins检测到有代码提交时,可以触发Packer根据模板使用更新后代码创建新的镜像,然后Jenkins触发Terraform来创建新ECS实例,将新实例加入伸缩组,并将旧实例移出伸缩组,这样就完成了应用的更新,当检测到新代码出现问题的时候,又可以将旧实例重新加入伸缩组而移除新实例来完成回滚。

6.展望
诚然,引入新的机制,会引入相应的学习曲线,对于packer来说,编写可用的镜像模板文件不是一件简单的事情,但是随着开源的盛行,很多常用的的模板都能够从github上找到,例如如下资源库(https://github.com/chef/bento)中就包含大量的模板,当然,由于阿里云的packer插件支持才刚刚起步,所以也欢迎大家以阿里云官方packer插件资源库(https://github.com/alibaba/packer-provider)来贡献一份力量。
————————————————
使用packer制作vagrant centos box    ----》  https://www.cnblogs.com/qinqiao/p/packer-vagrant-centos-box.html

おすすめ

転載: www.cnblogs.com/klb561/p/12005894.html