У меня есть сервер Chef, работающий в нашей локальной сети, и я тестировал его с другими машинами в той же сети, и все работало нормально. Я запустил экземпляр ec2 и попытался выполнить загрузку, и он работает, пока не попытается подключиться к серверу Chef. Мой вопрос: есть ли способ сделать сервер Chef общедоступным? Или есть способ обойти все, что узел требует от сервера?
В настоящее время у меня такая же настройка, как и у вас:
Когда я загружаюсь с Chef Server на AWS EC2, он не работает.
Решение это сработало для меня:
В экземпляре AWS EC2 измените файл hosts, включив в него следующие
# Chef Server Public IP Address | Chef Server Hostname
111.111.111.111 production-chef-server.mydomain.com
knife bootstrap aws-ec2-public-ip -x root
Когда вы применяете наиболее распространенную модель для использования Клиент шеф-повара вместе с Поварский сервер, то клиенту необходимо связаться с сервером. Вы можете применить любую сетевую технику, от VPN до добавления IP-адресов клиентов в белый список, но клиент (обычно) проверяет это регулярно.
Другой способ - использовать Шеф-повар Зеро (в старые добрые времена люди использовали Шеф-повар Соло для этого, и вы можете найти несколько сообщений об этом в блогах). Таким образом, вы можете запускать свои кулинарные книги с локального диска (одного из экземпляров EC2) или IIRC непосредственно с URL-адреса HTTP, то есть S3.
Шеф-повар не соблюдает От себя модель, которая позволит вам настроить целевой экземпляр только через SSH-соединение. Если вам это действительно нужно, то Ansible может вам больше подойти.
Тем не менее, я бы порекомендовал вам позволить вашему Chef Server также работать на AWS или напрямую использовать их предложение Chef. AWS OpsWorks.