1

Я пытаюсь настроить кластерную / галактическую виртуальную машину в VirtualBox, используя Vagrant и Fabric (через cloudbiolinux), и критически важным шагом является передача параметров "пользовательских данных" в виртуальную машину. Непонятно (по крайней мере, мне), как это вводится в ВМ.

Как передать эквивалент виртуальным машинам VirtualBox, управляемым vagrant (при условии, что vagrant является важной переменной здесь)?

2 ответа2

1

Как это работает в AWS:

AWS использует API для отображения метаданных и пользовательских данных, видимых для виртуальной машины. Важной вещью с пользовательскими данными является конечный результат; обычно представляет переменные или запускает скрипт. В обоих случаях метаданные представлены с их встроенным API-интерфейсом, доступным через URL в каждом случае (см. Ссылки для дальнейшего чтения ниже). Если пользовательские данные начинаются с шебанга, экземпляр знает, как выполнить пользовательские данные в виде сценария. Если пользовательские данные не начинаются с шебанга, экземпляр автоматически ничего не делает. Любые сценарии инициализации в экземпляре могут обращаться к пользовательским данным по указанному выше URL-адресу и использовать любые пары ключ / значение, которые он находит при выполнении сценариев.

Как это работает в Vagrant:

Концепция пользовательских данных AWS не существует. Вместо этого поведение можно имитировать с помощью провайдеров в Vagrant. Самый простой способ продублировать это поведение - использовать поставщика оболочки (или chef/puppet, если вас устраивает этот поставщик), как я упоминал выше. Основное различие между Vagrant и AWS заключается в том, где находятся пользовательские данные: в AWS пользовательские данные фактически не существуют в экземпляре (только API), где, как и в Vagrant, вам придется хранить пользовательские данные где-то на файловая система виртуальной машины. Скрипты, читающие пользовательские данные, должны понимать это различие.

Ссылки для дальнейшего чтения:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html http://docs.vagrantup.com/v2/provisioning/index.html

0

Просто исправление, плагин vagrant AWS имеет возможность отправлять пользовательские данные:

Данные пользователя

Вы можете указать пользовательские данные для загружаемого экземпляра.

Vagrant.configure("2") do | config | # ... другие вещи

config.vm.provider "aws" do | aws |

# Option 1: a single string
aws.user_data = "#!/bin/bash\necho 'got user data' > /tmp/user_data.log\necho"

# Option 2: use a file
aws.user_data = File.read("user_data.txt")   end end 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .