SaltStack - соль для облачной инфраструктуры

Соль предоставляет отдельный модуль, 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.

  • Создайте файл my-amazon-cloud.conf в /etc/salt/cloud.providers.d/

  • Добавьте нового провайдера с помощью 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 -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