Должен ли сервер Chef быть публичным?

У меня есть сервер Chef, работающий в нашей локальной сети, и я проверил его на других машинах в той же сети, и все работало нормально. Я запустил экземпляр ec2 и попытался запустить его, и он работает, пока не попытается подключиться к серверу Chef. У меня вопрос, есть ли способ обнародовать сервер Chef? Или есть способ, которым я могу обойти то, что узел требует от сервера?

2 ответа

Решение

Когда вы применяете наиболее распространенную модель для использования Chef Client вместе с Chef Server, клиенту необходимо получить доступ к серверу. Вы можете применить любую сетевую технику от VPN для внесения в белый список IP-адресов клиентов, но клиент (обычно) регистрируется регулярно.

Другим способом было бы использовать Chef Zero (в старые добрые времена люди использовали Chef Solo для этого, и вы могли бы найти некоторые сообщения в блоге об этом). Таким образом, вы можете запускать свои кулинарные книги с локального диска (одного из экземпляров EC2) или IIRC напрямую с HTTP-URL, то есть S3.

Chef не следует модели push, которая позволила бы вам настроить целевой экземпляр только через соединение SSH. Если вам это действительно нужно, тогда Ansible вам подойдет.

Тем не менее, я бы порекомендовал вам позволить вашему Chef Server также работать на AWS - или напрямую использовать их Chef, предлагающий AWS OpsWorks.

У меня сейчас такая же настройка, как и у вас:

  • Chef Server (внутренний)
  • Экземпляр AWS EC2 (внешний)

Когда я загружаюсь с сервера Chef на AWS EC2, он не работает.

Решение, которое сработало для меня:

  • Свяжите свой Chef Server с публичным IP-адресом. Я сделал это через обратный NAT.
  • Как только ваш Chef Server будет открыт для общественности, убедитесь, что ваш внутренний брандмауэр разрешает соединения TCP/IP из экземпляра 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
Другие вопросы по тегам