仮想化で「プロビジョニング」という言葉がどこでも使用されているのを目にしますが、グーグルで明確な定義を見つけることができないようです。ゲストオペレーティングシステムをセットアップしてリソースを割り当てるだけですか、それともソフトウェアとアップデートのダウンロードも含まれますか?それとも、共有フォルダーや構成のセットアップなど、それ以上のものが含まれていますか?
人形の定義 から:
Puppetは、ITインフラストラクチャの状態を定義し、正しい状態を自動的に適用できる構成管理システムです。
Vagrantを使用すると、シェルスクリプト、Puppet、Chef、Ansibleなどのプロビジョニングツールを使用して、マシンを プロビジョニングプロセス の一部として構成できます。
Vagrantのプロビジョナーを使用すると、Vagrantアッププロセスの一環として、ソフトウェアを自動的にインストールしたり、構成を変更したりできます。
一般に、仮想かどうかに関係なく、ノードのセットアップまたは構成を自動化する場合は、ハードウェアやOSのプロビジョニングをサポートする構成管理ツールが必要です。
プロビジョニングとは、通常、機能状態、つまりVanillaサーバーの作成を過ぎたものを意味します。
典型的な例は次のとおりです。Webサーバーをプロビジョニングするか、20台のWebサーバーをプロビジョニングします。実際には、次のことを意味します。-20台のサーバーを作成します。 -Webトラフィックを提供するために必要なパッケージをインストールします-おそらくロードバランサーを作成します 多分)これらすべてのボックスをロードバランサーに結合します
Chefプロビジョニングを介した上記の例(from:---(https://github.com/vinyar/tokyo_chef_provisioning )
## Setting up empty array
elb_instances = []
## Generic name
name = 'stack_example'
## machine_batch allows parallel creation of machines
machine_batch 'hello_world' do
1.upto(20) do |n|
## Just a variable to make things easier
instance = "#{name}-webserver-#{n}"
## Machine resource is used to create a single server
machine instance do
machine_options ({
bootstrap_options: {
:instance_type => "t1.micro",
image_id: 'AMI-b6bdde86',
:key_name => "stack_key"},
:ssh_username => "root"})
recipe "webserver"
tag "#{name}-webserver"
converge true
end
## Populating array with instance name on each loop.
elb_instances << instance
end
end
## Creating load balancer
load_balancer "#{name}-webserver-lb" do
load_balancer_options({
:availability_zones => ["us-west-2a", "us-west-2b", "us-west-2c"],
:listeners => [{:port => 80, :protocol => :http, :instance_port => 80, :instance_protocol => :http }],
})
## Passing array as a list of machines to the load balancer
machines elb_instances
end