SaltStack - Salt雲基礎架構



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 Providers)

  • 雲配置檔案 (Cloud Profiles) − 要定位特定的虛擬機器,我們也可以使用一個特殊的配置檔案,它只適用於該特定的虛擬機器,它們位於 /etc/salt/cloud.profiles.d/*.conf,這些稱為雲配置檔案 (Cloud Profiles)

對於虛擬機器,首先應用雲配置 (Cloud Config)中的設定,然後應用雲提供商 (Cloud Providers)中的設定,最後由雲配置檔案 (Cloud Profiles)覆蓋。

Salt Cloud 的安裝

預設情況下,Salt Cloud 內置於 Salt 中,可以直接使用。如果不可用,我們可以使用以下命令安裝它。

pip install salt-cloud

由於 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 是新的虛擬機器。

可以使用以下命令獲取新建立的虛擬機器的詳細資訊。

salt-cloud --query

可以使用以下命令銷燬虛擬機器:

slat-cloud -d master minion1

雲對映

雲對映是一種特殊的格式,用於一次建立多個虛擬機器。對映檔案格式是指定配置檔案,然後在其下新增虛擬機器的列表。

示例對映檔案如下:

micro:
   - web1
   - web2
large:
   - db1
   - db2

對映檔案可以作為引數傳遞給 salt-cloud 命令以建立虛擬機器,如下所示:

salt-cloud -m /path/to/mapfile
廣告