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