Сервер CHEF -- Ошибка: ошибка сети: getaddrinfo: имя узла или имя сервера не указано или неизвестно

Я пытаюсь обновить сервер Chef, размещенный на экземпляре AWS EC2. Вот что происходит, когда я пытаюсь подключиться к серверу:

$ knife ssl check
Error: Network Error: getaddrinfo: nodename nor servname provided, or not  
known

Я могу думать только о проблемах с конфигурацией ножа. Однако все функции ножа работают в экземпляре AWS EC2, а не на моем локальном компьютере (Macbook+iTerm).

knife.rb на EC2

log_level              :info
log_location           STDOUT
node_name              'jdoe'
client_key             '/home/ec2-user/.chef/jdoe.pem'
validation_client_name   'chef-validator'
validation_key           '/etc/chef-server/chef-validator.pem'
chef_server_url          'https://ip-xx-x-x-xxx.ec2.internal:443'
syntax_check_cache_path  '/home/ec2-user/.chef/syntax_check_cache'    

knife.rb на локальном компьютере

log_level                :info
log_location             STDOUT
node_name                'jdoe'
client_key               '/Users/.../.chef/jdoe.pem'
validation_client_name   'chef-validator'
validation_key           '/Users/.../.chef/chef-validator.pem'
chef_server_url          'https://ip-xx-x-x-xxx.ec2.internal:443'       
syntax_check_cache_path  '/Users/yoonsulee/.chef/syntax_check_cache'

# Amazon AWS
knife[:aws_access_key_id]='A...........Q'     # actual access key
knife[:aws_secret_access_key]='Q.............................g'      # actual secret access eky
knife[:aws_ssh_key_id]='xyz-abcd'        # general key name used for AWS access

Моя группа безопасности AWS и ACL в порядке. И мне каким-то образом удалось загрузить «trusted_certs» из:

$ knife ssl fetch

В конечном счете, я пытаюсь сделать следующее из моего каталога репозитория Chef:

$ berks upload <new_cookbook> --force
$ knife role from file ../../roles/*

person Josh    schedule 30.10.2015    source источник


Ответы (1)


Похоже, проблема связана с тем, что вы используете внутреннее DNS-имя своего экземпляра EC2. Если вы не подключены через VPN к своему облаку AWS VPC, это не решит проблему. Вам следует изменить файл knife.rb вашей рабочей станции, чтобы использовать общедоступное DNS-имя, если оно существует. Если вы не хотите создавать общедоступную конечную точку для своего экземпляра, вам потребуется подключиться к VPC с помощью VPN, чтобы иметь разрешимые внутренние конечные точки.

person Eytan Avisror    schedule 02.11.2015
comment
Я использовал публичный DNS в knife.rb, но в сообщении об ошибке говорится, что сертификат (загруженный в ~/.chef/trusted_certs) не соответствует сертификату Chef-сервера в экземпляре AWS (var/opt/opscode /../nginx/ca/ИМЯ_ХОСТА_СЕРВЕРА.crt). К вашему сведению, сертификат, который у меня есть, резонирует с указанным выше внутренним/частным DNS. - person Josh; 02.11.2015
comment
сервер шеф-повара должен иметь разрешимое имя хоста. отредактируйте /etc/chef-server/chef-server.rb — измените первую строку: server_name = instance-public-dns-record-здесь сохраните и затем запустите: sudo chef-server-ctl reconfigure Очистите локальную папку trust_certs и повторно запустить нож ssl проверить нож ssl fetch - person Eytan Avisror; 03.11.2015
comment
Я изменил синтаксис chef-server.rb в экземпляре AWS, но не смог запустить команду sudo chef-server-ctl reconfigure: «ОШИБКА: Отказано в доступе — /opt/chef-server/embedded/cookbooks /cache/chef-client-running.pid' 'FATAL: Chef::Exceptions::ChildConvergeError: Процесс запуска Chef завершился неудачно (код выхода 1)' Есть ли способ прочитать репозиторий на моем локальном компьютере из AWS экземпляр для добавления ролей, поваренной книги и т. д.? - person Josh; 03.11.2015
comment
можете ли вы повторно запустить sudo chef-server-ctl reconfigure - вы получаете тот же ответ? может быть просто устаревший pid. - person Eytan Avisror; 04.11.2015
comment
Я изменил «api_fqdn» на общедоступный URL-адрес DNS, который соответствует локальному knife.rb. «проверка SSL на ноже» была проверена, так что это многообещающе. Мне удалось загрузить новые роли из моего каталога репо, используя «роль ножа из файла ../../roles*», но при попытке выполнить «загрузку берксов ‹new_cookbook_name› --force» я получаю сообщение «Произошла ошибка при подключении к Ошибка Chef-сервера. Кроме того, при попытке выполнить «создание сервера ножа ec2...» мне удалось запустить новый экземпляр, но, похоже, не все рецепты были реализованы. Должен ли я просто вернуться к исходному файлу chef-server.rb, который некоторое время назад работал? - person Josh; 04.11.2015