Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法使用boto创建示例VPC。socket.gaierror:[Errno-2]名称或服务未知_Python_Sockets_Ansible_Boto_Amazon Vpc - Fatal编程技术网

Python 无法使用boto创建示例VPC。socket.gaierror:[Errno-2]名称或服务未知

Python 无法使用boto创建示例VPC。socket.gaierror:[Errno-2]名称或服务未知,python,sockets,ansible,boto,amazon-vpc,Python,Sockets,Ansible,Boto,Amazon Vpc,我是一个初学者,正在尝试使用boto创建VPC [root@localhost orchestration]# cat create-vpc.py #!/usr/bin/python import boto.vpc import pdb from boto.vpc import VPCConnection #c = VPCConnection() c=boto.vpc.connect_to_region('us-east-1') vpc = c.create_vpc('10.0.1

我是一个初学者,正在尝试使用boto创建VPC

 [root@localhost orchestration]# cat create-vpc.py
#!/usr/bin/python

import boto.vpc
import pdb


from boto.vpc import VPCConnection

#c = VPCConnection()

c=boto.vpc.connect_to_region('us-east-1')

vpc = c.create_vpc('10.0.12.0/16')
subnet = c.create_subnet(vpc.id, '10.0.12.1/24')
这是我创建VPC的示例脚本。 但是,我收到一个错误“gaierror:[Errno-2]名称或服务未知”

这是完整的回溯

Traceback (most recent call last):
  File "create-vpc.py", line 13, in <module>
    vpc = c.create_vpc('10.0.12.0/16')
  File "/usr/lib/python2.7/site-packages/boto/vpc/__init__.py", line 135, in create_vpc
    return self.get_object('CreateVpc', params, VPC)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 1192, in get_object
    response = self.make_request(action, params, path, verb)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 1116, in make_request
    return self._mexe(http_request)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 913, in _mexe
    self.is_secure)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 705, in get_http_connection
    return self.new_http_connection(host, port, is_secure)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 747, in new_http_connection
    connection = self.proxy_ssl(host, is_secure and 443 or 80)
  File "/usr/lib/python2.7/site-packages/boto/connection.py", line 792, in proxy_ssl
    int(self.proxy_port)), timeout)
  File "/usr/lib64/python2.7/socket.py", line 559, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known
另外还有telnet的o/p

[root@localhost orchestration]# telnet yun.local 80
Trying 192.168.240.1...
telnet: connect to address 192.168.240.1: Connection refused
仅供参考

[root@localhost编排]#nslookup ec2.us-east-1.amazonaws.com
服务器:172.19.1.11
地址:172.19.1.11#53
名称:ec2.us-east-1.amazonaws.com
地址:54.239.26.182
[root@localhost编排]#
[root@localhost编排]#
[root@localhost编排]#挖掘ec2.us-east-1.amazonaws.com
;  DiG 9.9.4-RedHat-9.9.4-18.el7 ec2.us-east-1.amazonaws.com
;; 全局选项:+cmd
;; 得到答案:

;; ->>HEADER要在boto中创建VPC连接(或任何服务连接对象),您应该使用以下咒语:

import boto.vpc
c = boto.vpc.connect_to_region('us-east-1')  # or whatever

这样,您就可以保证有一个正确初始化的VPCConnection对象指向正确的端点。

您定义了要连接的区域吗?是的,我已经在python脚本本身中定义了该区域。
#/usr/bin/python import boto.ec2 ec2=boto.ec2.connect_to_region('us-east-1')打印ec2 ec2.run_实例('ami-0129cc68',key_name='/root/IOX_key.pem',instance_type='t2.micro',security_groups='sg-08d0ba6d')
谢谢您的建议,但我仍然收到相同的错误<代码>文件“/usr/lib64/python2.7/socket.py”,第556行,在getaddrinfo(主机、端口、0、SOCK_流)中为res创建连接:socket.gaierro:[Errno-2]名称或服务未知
[root@localhost编排]#cat create-vpc.py#/usr/bin/python import boto.vpc从boto.vpc导入pdb.vpc导入vpc连接#c=vpc连接()c=boto.vpc.connect_到_地区('us-east-1')vpc=c.create_-vpc('10.0.12.0/16')子网=c.create_子网(vpc.id,'10.0.12.1/24')嘿,Garnet!我仍然得到同样的错误。这是我进一步AWS编排活动的拦路虎。你能提出一些建议吗?你得到的错误基本上是一个DNS错误。找不到与服务端点关联的主机。因此,要么它使用了错误的主机名,要么你的DNS工作不正常。你能用你现在的代码更新你原来的问题吗?在注释中很难阅读。您的代码似乎是正确的(尽管您可以删除“from boto.vpc import vpc connection”行,但它没有做任何事情)。创建连接后,是否可以添加“打印(c.host)”?主机的价值是什么?它应该是“ec2.us-east-1.amazonaws.com”。它是?如果是这样,如果您尝试查找该主机,例如“nslookup ec2.us-east-1.amazonaws.com”或“dig ec2.us-east-1.amazonaws.com”,会发生什么情况?是的,c.host的值是ec2.us-east-1.amazonaws.com我已经用nslookup和dig的o/p编辑了这个问题!请建议!!
[root@localhost orchestration]# telnet yun.local 80
Trying 192.168.240.1...
telnet: connect to address 192.168.240.1: Connection refused
[root@localhost orchestration]# nslookup ec2.us-east-1.amazonaws.com
Server:         172.19.1.11
Address:        172.19.1.11#53

Name:   ec2.us-east-1.amazonaws.com
Address: 54.239.26.182

[root@localhost orchestration]#
[root@localhost orchestration]#
[root@localhost orchestration]# dig ec2.us-east-1.amazonaws.com

; <<>> DiG 9.9.4-RedHat-9.9.4-18.el7 <<>> ec2.us-east-1.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24619
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;ec2.us-east-1.amazonaws.com.   IN      A

;; ANSWER SECTION:
ec2.us-east-1.amazonaws.com. 0  IN      CNAME   ec2.amazonaws.com.
ec2.amazonaws.com.      48      IN      A       54.239.20.1

;; Query time: 153 msec
;; SERVER: 172.19.1.10#53(172.19.1.10)
;; WHEN: Tue Nov 17 23:32:12 EST 2015
;; MSG SIZE  rcvd: 90
import boto.vpc
c = boto.vpc.connect_to_region('us-east-1')  # or whatever