置备虚拟机是什么意思?
What does it mean to provision a virtual machine?
我看到 "provisioning" 这个词在虚拟化中随处可见,但我似乎无法在 google 上找到它的明确定义。它只涉及设置客户操作系统并为其分配资源,还是还包括下载软件和更新?或者它是否包括更多内容,例如设置共享文件夹和配置?
定义和示例
Puppet is a configuration management system that allows you to define the state of your IT infrastructure, then automatically enforces the correct state.
Vagrant 允许您使用 shell 脚本、Puppet、Chef 或 Ansible 等配置器来配置您的机器作为 provisioning process:
的一部分
Provisioners in Vagrant allow you to automatically install software, alter configurations, and more on the machine as part of the vagrant up process.
一般来说,如果您想自动设置或配置节点,无论是否是虚拟的,那么支持硬件 and/or OS 配置的配置管理工具就是您所需要的。
预配通常意味着功能状态 - 超出普通服务器创建的状态。
一个典型的例子是:提供一个网络服务器或提供20个网络服务器。
实际上这意味着:
- 创建 20 个服务器。
- 安装提供网络流量所需的软件包
- 可能创建一个负载均衡器
-(也许)将所有这些盒子加入负载均衡器
通过 Chef Provisioning 表示的示例(来自: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
我看到 "provisioning" 这个词在虚拟化中随处可见,但我似乎无法在 google 上找到它的明确定义。它只涉及设置客户操作系统并为其分配资源,还是还包括下载软件和更新?或者它是否包括更多内容,例如设置共享文件夹和配置?
定义和示例
Puppet is a configuration management system that allows you to define the state of your IT infrastructure, then automatically enforces the correct state.
Vagrant 允许您使用 shell 脚本、Puppet、Chef 或 Ansible 等配置器来配置您的机器作为 provisioning process:
的一部分Provisioners in Vagrant allow you to automatically install software, alter configurations, and more on the machine as part of the vagrant up process.
一般来说,如果您想自动设置或配置节点,无论是否是虚拟的,那么支持硬件 and/or OS 配置的配置管理工具就是您所需要的。
预配通常意味着功能状态 - 超出普通服务器创建的状态。
一个典型的例子是:提供一个网络服务器或提供20个网络服务器。 实际上这意味着: - 创建 20 个服务器。 - 安装提供网络流量所需的软件包 - 可能创建一个负载均衡器 -(也许)将所有这些盒子加入负载均衡器
通过 Chef Provisioning 表示的示例(来自: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