CHEF Server--Error: Network Error: getaddrinfo: nodename nor servname provided, or not known
CHEF Server--Error: Network Error: getaddrinfo: nodename nor servname provided, or not known
我正在尝试更新托管在 AWS EC2 实例上的 Chef 服务器。这是我尝试连接到服务器时发生的情况:
$ knife ssl check
Error: Network Error: getaddrinfo: nodename nor servname provided, or not
known
我只能想到刀具配置的问题。然而,所有 knife 函数都在 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/*
看起来问题是由于您使用了 EC2 实例的内部 DNS 名称。除非您通过 VPN 连接到您的 AWS VPC,否则这将无法解决。
您应该更改工作站的 knife.rb 以使用 Public DNS 名称(如果存在)。如果您不想为您的实例创建 public 端点,您将需要通过 VPN 连接到您的 VPC 以使内部端点可解析。
我正在尝试更新托管在 AWS EC2 实例上的 Chef 服务器。这是我尝试连接到服务器时发生的情况:
$ knife ssl check
Error: Network Error: getaddrinfo: nodename nor servname provided, or not
known
我只能想到刀具配置的问题。然而,所有 knife 函数都在 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/*
看起来问题是由于您使用了 EC2 实例的内部 DNS 名称。除非您通过 VPN 连接到您的 AWS VPC,否则这将无法解决。 您应该更改工作站的 knife.rb 以使用 Public DNS 名称(如果存在)。如果您不想为您的实例创建 public 端点,您将需要通过 VPN 连接到您的 VPC 以使内部端点可解析。