Python 无法使用boto创建示例VPC。socket.gaierror:[Errno-2]名称或服务未知
我是一个初学者,正在尝试使用boto创建VPCPython 无法使用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
[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