Подтвердить что ты не робот

Как обеспечить виртуальную машину, используя Vagrant, Chef и/или Puppet с сертификатом SSL для конкретного компьютера?

У меня есть требование, когда я хочу предоставить нескольким виртуальным машинам специальные сертификаты SSL (генерируемые с использованием машинного IP/имени хоста), требуемые Java-приложением.

Я могу создать эти сертификаты с некоторыми именами, такими как QA-Machine01, Prod-Machine01 и т.д., и может хранить их в папке где-то.

Как я могу заставить Vagrant динамически выбирать эти сертификаты, принимает его имя (QA-Machine01, Prod-Machine01) и предоставляет VM имя сертификата как имя машины?

4b9b3361

Ответ 1

Бродячие файлы - это рубиновый код, поэтому, если у вас есть все сертификаты в каталоге, вы можете написать цикл в своем бродяжном файле из Dir.glob, чтобы сделать multimachine vagrantfile:

Пример:

mnames = Dir.glob("/my/cert/store/*.crt")

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  mname.each do |filename|
    hostname = File.basename(filename).gsub(File.extname(filename),'')

    config.vm.define hostname do |box|
      box.vm.hostname = "#{hostname}.my.domain"
      [.. any configuration you wish ...]
      box.vm.provision :chef_client do |chef|
        chef.add_recipe "my_recipe"
        [..chef conf for your case ...]
      end
    end
  end
end

Затем вы можете vagrant up создать и предоставить все машины или вызвать vagrant up QA-Machine01 только для машины QA.

Ответ 3

Мне непонятно, что вы имеете в виду, когда говорите, что хотите, чтобы "бродяга" динамически выбирал эти сертификаты ". Обычно это шеф-повар, который будет использовать эти сертификаты (поскольку это будет технология, которая будет устанавливать веб-сервер, ssl-прокси или что-то, что будет использовать сертификаты). Также неясно, что такое операционная среда, но, полагая, что если вы депонируете на QA и prod, у вас есть сервер chef-server, я рекомендую использовать chef-vault.

В этом случае мы используем data_bags и, в частности, chef-vault data_bags для этой цели. У нас есть хранилище с именем ssl-certificates с элементами, содержащимися в нем для CN сертификата SSL, который содержит. Запрос поиска элемента используется для доступа к области доступа только к машинам (машинам), на которых размещается этот CN.

Поскольку chef-vault имеет резервный механизм для использования незашифрованных обычных пакетов данных, он делает его идеальным для использования в обеих средах dev/qa, где поддерживается безопасная учетная запись и используется в производстве, где поддерживается хранение ваших Закрытые ключи SSL имеют решающее значение.