Установите Chef-Server 11 на инстанс EC2

Я использую Hosted Chef в течение достаточно долгого времени. Хотел изучить сервер шеф-повара с открытым исходным кодом. поэтому я пытаюсь настроить свой Chef-Server 11 на экземпляре EC2.

У меня работает Chef-сервер, и я могу получить доступ к веб-интерфейсу для него. У меня есть рабочая станция шеф-повара, настроенная на другом экземпляре ec2, который также работает нормально.

Проблема: я не могу загрузить кулинарную книгу. Я получаю следующую ошибку, когда пытаюсь загрузить кулинарную книгу:

# knife cookbook upload getting-started
Uploading getting-started [0.4.0]
/opt/chef/embedded/lib/ruby/1.9.1/net/http.rb:763:in `initialize': Connection refused - connect(2) (Errno::ECONNREFUSED)

Однако другие list команды knife работают нормально.

Я сделал свою домашнюю работу и наткнулся на следующие ссылки:

http://www.opscode.com/blog/2013/03/11/chef-11-server-up-and-running/

http://www.curvve.com/blog/servers/2013/script-to-configure-and-set-your-hostname-and-fqdn-on-ec2-instances/

So,

Упоминается, что для работы chef-server требуется работающее полное доменное имя. Я установил свое общедоступное имя хоста ec2 в качестве имени хоста сервера, а также установил его в /etc/hosts. Перезагрузил экземпляр. Снова побежал chef-server-ctl reconfigure. И все еще сталкивается с той же ошибкой.

ВОПРОС: Как определить часть полного доменного имени экземпляра EC2 для работы chef-server? если кто-то успешно настроил chef-server на EC2 и смог загрузить кулинарные книги, поделитесь своими шагами для тренировки FQDN.


person slayedbylucifer    schedule 25.10.2013    source источник
comment
Как вы установили chef-server на amazon linux и какую операционную систему вы выбрали для загрузки? у меня не работает   -  person Michel Feldheim    schedule 26.03.2014


Ответы (4)


Мне было трудно с этим, но это решение сработало!

Отредактируйте /etc/chef-server/chef-server.rb и добавьте следующие строки (создайте файл, если он не существует):

server_name = "THE PUBLIC IP OF YOUR INSTANCE"
api_fqdn server_name
nginx['url'] = "https://#{server_name}"
nginx['server_name'] = server_name
lb['fqdn'] = server_name
bookshelf['vip'] = server_name

Я нашел решение здесь http://sahebjade.blogspot.com/2013/05/check-your-knife-configuration-and.html

person Ben Johnson    schedule 04.12.2013

Вот как я заработал. обновил общедоступное DNS-имя моего экземпляра ec2 (шеф-сервера) в /etc/sysconfig/network и service network restart. Теперь я могу нормально загружать поваренные книги.

Нужно подумать об эластичном IP-адресе как о потенциальном варианте для моего шеф-сервера.

person slayedbylucifer    schedule 25.10.2013

Отредактируйте /etc/chef-server/chef-server.rb и добавьте следующие строки (создайте файл, если он не существует):

bookshelf["vip"] = node["ipaddress"]
bookshelf["url"] = "https://#{node["ipaddress"]}"
erchef['s3_url_ttl'] = 3600

Первые две строки будут указывать URL-адрес вашего шеф-сервера на IP-адрес машины, а третья решит проблему тайм-аута, которая, по-видимому, всегда существует, когда сервер Chef находится на EC2.

person cassianoleal    schedule 28.10.2013

Я хотел расширить некоторые ответы, поскольку они не дают полной картины. Это относится к Chef 11 (надеюсь, Chef 12 умнее)

В моем случае я свернул мастер под VPC #1, который дал ему внутренний адрес, подобный этому.

ip-10-0-0-10.ec2.внутренний

Поскольку изначально я играл только с VPC, я неправильно настроил некоторые вещи, которые мне были нужны, поэтому мне пришлось отказаться от него и создать новую схему. К счастью, мне удалось сделать снимок старого мастера Chef и запустить его в новом VPC, но я обнаружил, что больше не могу войти в Chef. Потребовалось немного покопаться, но я обнаружил в своем журнале /var/log/chef-server/chef-server-webui/current, что установка была перенесена на старое имя хоста, и я установил его как внутренний URL-адрес для... всего. Это вызвало проблемы после изменения внутреннего имени хоста.

2014-12-24_16:19:09.46680 SocketError: Error connecting to https://ip-10-0-0-10.ec2.internal/users/admin - getaddrinfo: Name or service not known

Теперь к ответу ОП

Нужно подумать об эластичном IP-адресе как о потенциальном варианте для моего шеф-сервера.

В моем случае я просто добавил CNAME в CloudFlare и установил его как свой постоянный адрес. Поскольку я могу установить CloudFlare на низкий TTL для этого одного адреса, это позволяет легко перемещать его между изменениями IP (мне не нужен эластичный IP, пока я его настраиваю). Таким образом, я мог бы сказать Chef, чтобы он всегда искал один и тот же URL-адрес и не беспокоился об EIP.

Как только это было сделано, мне пришлось обновить Chef. Я не знаю, что изменилось (это 11.16.4), но я обнаружил, что конфиги живут в /var/opt/chef-server/chef-server-webui/etc/chefserver.rb, в отличие от некоторых других ответов, перечисленных в chef-server.rb. Не уверен, что это YMMV или нет. Я изменил следующее в нижней части этого файла

# Environment specific application configuration.
# These values override the ones set in 'RAILS_ROOT/config/application.rb'
#config.chef_server_url = "https://ip-10-0-0-10.ec2.internal"
config.chef_server_url = "https://chef.mydomain.com"

Я также изменил /var/opt/chef-server/nginx/etc/chef_https_lb.conf

server_name chef.mydomain.com;

Наконец я перезапустил Chef

chef-server-ctl restart

Это, кажется, сделало свое дело. Логин снова работает.

person Machavity♦    schedule 24.12.2014