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