2014-11-21 2 views
1

У меня есть проект репо, который я хочу настроить с помощью Vagrant для нашей команды разработчиков программного обеспечения. У меня есть сервер шеф-повара, я немного затрудняюсь с пониманием того, как написать VagrantFile, чтобы сделать его пригодным для использования несколькими членами команды разработчиков программного обеспечения ...Предоставление vagrant vm с шеф-поваром и несколькими пользователями - как обращаться с файлами * .pem?

Сценарий 1: У каждого пользователя есть пользовательский настрой на шеф-сервере ...

так в VagrantFile ..

config.vm.provision "chef_client" do |chef| 
    chef.chef_server_url = "https://my-chef-server/" 

    # best way to set this? pass it in as a variable? set it as an ENV variable? 
    chef.validation_client_name = "users-name" 
    # users can have their .pem files on their local machine... 
    chef.validation_key_path = "~/.chef/users-name.pem 
end 

Сценарий 2: использовать те же имя пользователя для каждого проекта ...

config.vm.provision "chef_client" do |chef| 
    chef.chef_server_url = "https://my-chef-server/" 
    chef.validation_client_name = "the-project-name" 

    # would this need to be committed to the project repo then? 
    chef.validation_key_path = ".chef/users-name.pem 
end 

Я также читал о файлах knife.rb, но похоже, что они попадают в репо, и это кажется очень странным способом заниматься вещами. A), который все еще не поддерживает нескольких пользователей, и B) безопасно ли иметь эти ключи проверки в репо? Тот факт, что я не могу найти многого в Google об этом, также заставляет меня поверить, что я могу пропустить что-то очевидное, поэтому любое направление будет оценено по достоинству.

+0

Вы можете закончить так много ответов, что есть пользователи бродяг и шеф-поваров ... Personnaly Я использую env vars в бродячем файле для подобных случаев. – Tensibai

ответ

2

Вариант 1

Использовать испытательную кухню. Я знаю, что это называется ТЕСТ-кухня, но вам не нужны тесты, чтобы использовать ее. Он автоматически будет использовать ваш локальный файл knife.rb для вас, поэтому не нужно ставить секреты где-нибудь, как репо. Добавленный бонус, вы можете использовать любой из кухонных плагинов для запуска в облачные провайдеры, докер и т. Д. Я знаю, что Vagrant поддерживает многие из этих вариантов, но я чувствую, что кухня делает его немного чище и проще.

Вариант 2

Поместите пользователя и key_path в переменные окружения, и ссылаться на те, в вашем Vagrantfile.

+0

локальный файл 'knife.rb' живет в' ~/.chef/knife.rb' по умолчанию правильно? Вот где я думаю, что тестовая кухня все равно его ищет? Поэтому, возможно, я мог бы просто прочитать этот файл в начале 'VagrantFile' и использовать значения внутри. – ptr

+0

Я думаю, что я ошибался ... клиенты все проверяли повара-репо на местном уровне и предоставляли виртуальным машинам использование своего местного шеф-репо вместо того, чтобы указывать на него непосредственно на github или аналогичном. Теперь это немного больше! – ptr

Смежные вопросы