Учебники

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

Salt предоставляет отдельный модуль Salt Cloud для предоставления виртуальных машин различных облачных провайдеров, таких как Amazon AWS, Google Compute и т. Д. Salt Cloud — это универсальный интерфейс для настройки и управления виртуальными машинами различных облачных провайдеров.

  • Cloud Config — Основной файл конфигурации для Salt Cloud — это / etc / salt / cloud, и он применяется ко всем виртуальным машинам. Основной файл конфигурации называется Cloud Config .

  • Облачные провайдеры. Для таргетинга на конкретных облачных провайдеров мы можем использовать определенный файл конфигурации, который находится в /etc/salt/cloud.providers.d/*.conf, они называются облачными провайдерами .

  • Облачные профили. Для нацеливания на конкретную ВМ мы также можем использовать специальный файл конфигурации, который применяется только к этой конкретной ВМ и расположен в /etc/salt/cloud.profiles.d/*.conf, они называются облачными. Профили

Cloud Config — Основной файл конфигурации для Salt Cloud — это / etc / salt / cloud, и он применяется ко всем виртуальным машинам. Основной файл конфигурации называется Cloud Config .

Облачные провайдеры. Для таргетинга на конкретных облачных провайдеров мы можем использовать определенный файл конфигурации, который находится в /etc/salt/cloud.providers.d/*.conf, они называются облачными провайдерами .

Облачные профили. Для нацеливания на конкретную ВМ мы также можем использовать специальный файл конфигурации, который применяется только к этой конкретной ВМ и расположен в /etc/salt/cloud.profiles.d/*.conf, они называются облачными. Профили

Для виртуальной машины сначала применяются настройки в облачной конфигурации , а затем в облачных провайдерах, и, наконец, переопределение выполняется облачными профилями .

Установка Соляного Облака

По умолчанию Соленое Облако встроено в Соль и легко доступно. Если он недоступен, мы можем установить его с помощью команды ниже.

pip install salt-cloud

Поскольку Salt Cloud является отдельным модулем и работает в своем собственном процессе, его можно установить и в систему Salt Minion вместо Salt Master.

Предоставление виртуальной машины

Чтобы подготовить виртуальную машину, нам нужно определить облачного провайдера и облачный профиль. После того, как оба будут созданы, мы можем предоставить новую виртуальную машину для ее использования.

Облачный провайдер

Информация о хосте облака настраивается в файле конфигурации провайдера Cloud. Обычно основная информация, которую необходимо настроить, — это драйвер облака, имя пользователя, пароль, закрытый ключ и т. Д. Давайте создадим нового поставщика облачных услуг, названного my-amazon-cloud .

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

  • Добавьте нового провайдера, используя драйвер ec2 .

Создайте файл 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 для создания виртуальной машины следующим образом: