SaltStack 云基础设施
Salt 提供了一个单独的模块,
Salt Cloud 来提供各种云提供商的虚拟机,如 Amazon AWS、Google Compute 等。 Salt Cloud 是一个通用接口,用于配置和管理各种云提供商的虚拟机.
Cloud Config-Salt Cloud 的主要配置文件是/etc/salt/cloud,它适用于所有虚拟机。主要配置文件称为 Cloud Config。
Cloud Providers-为了针对特定的云提供商,我们可以使用特定的配置文件,它们位于/etc/salt/cloud.providers.d/*.conf 中,它们被称为 云提供商。
Cloud Profiles-要针对特定的 VM,我们还可以使用特殊的配置文件,该文件仅适用于该特定的 VM,它们位于/etc/salt/cloud.profiles.d/*.conf,这些被称为云配置文件。
对于虚拟机,
云中的设置首先应用配置,然后在
云提供商中应用,最后由
云配置文件完成覆盖。
Salt云的安装
默认情况下,Salt Cloud 内置于 Salt 中并且随时可用。如果它不可用,我们可以使用下面的命令安装它。
由于 Salt Cloud 是一个单独的模块并在自己的进程中运行,因此它也可以安装在 Salt Minion 系统中,而不是安装在 Salt Master 中。
配置虚拟机
要配置虚拟机,我们需要定义云提供商和云配置文件。两者都创建好后,我们就可以配置一个新的虚拟机来使用它。
云提供商
云主机信息在云提供商配置文件中配置。通常,需要配置的基本信息是云驱动、用户名、密码、私钥等。让我们创建一个名为
my-amazon-cloud的新云提供商。
在/etc/salt/cloud.providers.d/下创建一个文件 my-amazon-cloud.conf
使用 ec2 驱动程序添加新的提供程序。
my-amazon-cloud:
driver: ec2
id: '<AWS_ID>'
key: '<AWS_KEY>'
private_key: /path/to/privatekey.pem
keyname: <name of the key>
securitygroup: default
minion:
master: <master server>
Salt 为各种云主机提供开箱即用的驱动程序,例如 GoGrid、HP Cloud、Google Compute Engine (GCE)、Amazon AWS、Joyent、Linode、OpenNebula、ProfitBricks、Proxmox、Saltify、VexxHost、VMWare 等。
一旦配置了云提供商,我们就可以查询提供商的可用位置、可用机器映像及其各种大小。
salt-cloud--list-location my-amazon-cloud
salt-cloud--list-images my-amazon-cloud
salt-cloud--list-sizes my-amazon-cloud
云配置文件
云配置文件指定虚拟机映像和大小。可以在-/etc/salt/cloud.profiles.d/下进行配置。让我们创建一个简单的配置文件,
simple.conf。
aws_micro:
provider: my-amazon-cloud
image: <image_id>
size: <machine_id e.g. t1.micro>
虚拟机
配置提供程序和配置文件后,我们可以使用 salt-cloud 轻松提供虚拟机,如下所示。
salt-cloud-p aws_micro master minion1 minion2
其中,
p – 配置文件名称 master、minion1 和 minion2 是新的虚拟机。
新创建的虚拟机的详细信息可以通过以下命令获取。
可以使用以下命令销毁虚拟机-
slat-cloud-d master minion1
云图
Cloud Map 是一种特殊格式,用于一次创建多个虚拟机。映射文件的格式是指定配置文件,然后在其下添加虚拟机列表。
示例地图文件如下-
micro:
-web1
-web2
large:
-db1
-db2
映射文件可以作为参数传递给 salt-cloud 命令以创建虚拟机,如下所示-
salt-cloud-m /path/to/mapfile