在 Mac OS X 上使用 ansible 创建 AWS vpc

AWS vpc creation using ansible on Mac OS X

我在从 mac os x 创建 aws vpc 时遇到问题,但完全相同的 command/role 正在从 ubuntu.

工作

我已经完成的步骤 Mac OS X:

进行上述所有更改后,出现此错误:

PLAY ***************************************************************************

TASK [vpc : Creating an AWS VPC inside mentioned Region] ***********************
task path: /Users/arbab/ansible2/aws/roles/vpc/tasks/main.yml:2
ESTABLISH LOCAL CONNECTION FOR USER: xxxxxxxxx
127.0.0.1 EXEC ( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196 )" && echo "$( echo $HOME/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196 )" )
127.0.0.1 PUT /var/folders/rq/yhlwx3c971x6p88qwmvhpg600000gn/T/tmpoyL88U TO /Users/arbab/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196/ec2_vpc
127.0.0.1 EXEC LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 /usr/bin/python /Users/arbab/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196/ec2_vpc; rm -rf "/Users/arbab/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196/" > /dev/null 2>&1
An exception occurred during task execution. The full traceback is:
Traceback (most recent call last):
  File "/Users/arbab/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196/ec2_vpc", line 2867, in <module>
    main()
  File "/Users/arbab/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196/ec2_vpc", line 700, in main
    (vpc_dict, new_vpc_id, subnets_changed, igw_id, changed) = create_vpc(module, vpc_conn)
  File "/Users/arbab/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196/ec2_vpc", line 338, in create_vpc
    previous_vpc = find_vpc(module, vpc_conn, id, cidr_block)
  File "/Users/arbab/.ansible/tmp/ansible-tmp-1453191395.76-205801730631196/ec2_vpc", line 198, in find_vpc
    previous_vpcs = vpc_conn.get_all_vpcs(None, {'cidr': cidr, 'state': 'available'})
  File "/Library/Python/2.7/site-packages/boto/vpc/__init__.py", line 111, in get_all_vpcs
    return self.get_list('DescribeVpcs', params, [('item', VPC)])
  File "/Library/Python/2.7/site-packages/boto/connection.py", line 1186, in get_list
    raise self.ResponseError(response.status, response.reason, body)
boto.exception.EC2ResponseError: EC2ResponseError: 401 Unauthorized
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>AuthFailure</Code><Message>AWS was not able to validate the provided access credentials</Message></Error></Errors><RequestID>2318e170-a400-499c-8713-4c0b3ec1850d</RequestID></Response>

fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "invocation": {"module_name": "ec2_vpc"}, "parsed": false}

PLAY RECAP *********************************************************************
127.0.0.1                  : ok=0    changed=0    unreachable=0    failed=1

错误存在未经授权的错误

boto.exception.EC2ResponseError: EC2ResponseError: 401 Unauthorized

您能否通过 env 命令检查 AWS 凭据是否设置正确? ansible 期望的名称是:

export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'