Назад | Перейти на главную страницу

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

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

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

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

Когда я загружаюсь с Chef Server на 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

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

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

Шеф-повар не соблюдает От себя модель, которая позволит вам настроить целевой экземпляр только через SSH-соединение. Если вам это действительно нужно, то Ansible может вам больше подойти.

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