- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一本剧本来部署带有互联网网关的 VPC。由于某种原因,Ansible 模块无法找到网关。 documentation此模块上的内容稀疏,示例不完整。
Ansible 位:
- name: Create default VPC
ec2_vpc_net:
name: acme_baseline
cidr_block: 10.11.0.0/16
region: us-east-1
state: present
tags:
Owner: "someuser"
register: baseline_vpc
- name: Create internet gateway
ec2_vpc_igw:
vpc_id: "{{ baseline_vpc.vpc.id }}"
region: us-east-1
state: present
tags:
Name: "acme_baseline"
Owner: "someuser"
register: baseline_igw
直接 AWS CLI 可以毫无问题地找到 VPC:
# aws ec2 describe-vpcs --vpc-ids vpc-0123546897 --region us-east-1
{
"Vpcs": [
{
"IsDefault": false,
"Tags": [
{
"Value": "acme_baseline",
"Key": "Name"
},
{
"Value": "someuser",
"Key": "Owner"
}
],
"CidrBlockAssociationSet": [
{
"CidrBlock": "10.11.0.0/16",
"CidrBlockState": {
"State": "associated"
},
"AssociationId": "vpc-cidr-assoc-00001444444"
}
],
"VpcId": "vpc-0123546897",
"CidrBlock": "10.11.0.0/16",
"State": "available",
"DhcpOptionsId": "dopt-aaaaaaa",
"OwnerId": "000000000000",
"InstanceTenancy": "default"
}
]
}
两个 Ansible block 的输出(详细模式 x3):
ansible-playbook 2.7.9
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible-playbook
python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
TASK [aws-baseline : Create default VPC] ***************************************************************************************************************************************
task path: /root/foo/roles/aws-baseline/tasks/main.yml:26
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/sh -c 'echo ~root && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz `" && echo ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz="` echo /root/.ansible/tmp/ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz `" ) && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/amazon/ec2_vpc_net.py
<localhost> PUT /root/.ansible/tmp/ansible-local-14593RSX_GI/tmpMcth9v TO /root/.ansible/tmp/ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz/AnsiballZ_ec2_vpc_net.py
<localhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz/ /root/.ansible/tmp/ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz/AnsiballZ_ec2_vpc_net.py && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz/AnsiballZ_ec2_vpc_net.py && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-zzzzzzzzzzzzzzzzzzzzzz/ > /dev/null 2>&1 && sleep 0'
ok: [localhost] => {
"changed": false,
"invocation": {
"module_args": {
"aws_access_key": null,
"aws_secret_key": null,
"cidr_block": [
"10.11.0.0/16"
],
"dhcp_opts_id": null,
"dns_hostnames": true,
"dns_support": true,
"ec2_url": null,
"multi_ok": false,
"name": "acme_baseline",
"profile": null,
"purge_cidrs": false,
"region": "us-east-1",
"security_token": null,
"state": "present",
"tags": {
"Name": "acme_baseline",
"Owner": "someuser"
},
"tenancy": "default",
"validate_certs": true
}
},
"vpc": {
"cidr_block": "10.11.0.0/16",
"cidr_block_association_set": [
{
"association_id": "vpc-cidr-assoc-00001444444",
"cidr_block": "10.11.0.0/16",
"cidr_block_state": {
"state": "associated"
}
}
],
"classic_link_enabled": false,
"dhcp_options_id": "dopt-aaaaaaa",
"id": "vpc-0123546897",
"instance_tenancy": "default",
"is_default": false,
"owner_id": "000000000000",
"state": "available",
"tags": {
"Name": "acme_baseline",
"Owner": "someuser"
}
}
}
TASK [aws-baseline : Create internet gateway] **********************************************************************************************************************************
task path: /root/foo/roles/aws-baseline/tasks/main.yml:37
<localhost> ESTABLISH LOCAL CONNECTION FOR USER: root
<localhost> EXEC /bin/sh -c 'echo ~root && sleep 0'
<localhost> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /root/.ansible/tmp/ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx `" && echo ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx="` echo /root/.ansible/tmp/ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx `" ) && sleep 0'
Using module file /usr/lib/python2.7/site-packages/ansible/modules/cloud/amazon/ec2_vpc_igw.py
<localhost> PUT /root/.ansible/tmp/ansible-local-14593RSX_GI/tmp1Ttirp TO /root/.ansible/tmp/ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx/AnsiballZ_ec2_vpc_igw.py
<localhost> EXEC /bin/sh -c 'chmod u+x /root/.ansible/tmp/ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx/ /root/.ansible/tmp/ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx/AnsiballZ_ec2_vpc_igw.py && sleep 0'
<localhost> EXEC /bin/sh -c '/usr/bin/python /root/.ansible/tmp/ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx/AnsiballZ_ec2_vpc_igw.py && sleep 0'
<localhost> EXEC /bin/sh -c 'rm -f -r /root/.ansible/tmp/ansible-tmp-xxxxxxxxxxxxxxxxxxxxxxxxxxx/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
WARNING: The below traceback may *not* be related to the actual failure.
File "/tmp/ansible_ec2_vpc_igw_payload_o6xIsP/__main__.py", line 244, in main
result = ensure_igw_present(connection, vpc_id, tags, check_mode=module.check_mode)
File "/tmp/ansible_ec2_vpc_igw_payload_o6xIsP/__main__.py", line 184, in ensure_igw_present
'Unable to create Internet Gateway, error: {0}'.format(e))
fatal: [localhost]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"aws_access_key": null,
"aws_secret_key": null,
"ec2_url": null,
"profile": null,
"region": "us-east-1",
"security_token": null,
"state": "present",
"tags": {
"Name": "acme_baseline",
"Owner": "someuser"
},
"validate_certs": true,
"vpc_id": "vpc-0123546897"
}
},
"msg": "Unable to create Internet Gateway, error: EC2ResponseError: 400 Bad Request\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response><Errors><Error><Code>InvalidVpcID.NotFound</Code><Message>The vpc ID 'vpc-0123546897' does not exist</Message></Error></Errors><RequestID>111111111-22222222-33333</RequestID></Response>"
}
最佳答案
我复制粘贴了你的代码,它对我有用(Ansible 2.7.10)
从错误判断,您是 AWS 端最终一致性的受害者。
解决方案是在每个步骤之间稍等片刻。
但是,我强烈建议不要为此使用 Ansible。使用任何基础设施即代码工具在 AWS 中进行基本的基础设施配置。 CloudFormation、Terraform 或来自 AWS 的新 CDK(仍在开发中)等工具。
我说的是个人经历。您希望使用 IaC 部署核心云基础设施,并使用 Ansible 等其他配置管理工具部署更多动态事物(实例等)。
关于linux - Ansible ec2_vpc_igw VPC 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55716775/
尽管我的 EC2 实例(带有针对 ECS 优化的 AIM)正在运行 ecs 代理,但容器并未在我的 EC2 中启动。为了确认 ecs-agent 正在我的 EC2 实例上运行,我检查了: ecs 日志
我想在一个任务定义中使用客户端和服务器在 aws ecs 中运行套接字程序。当我使用 awsvpc 网络模式并每次连接到本地主机上的服务器时,我都可以运行它。这很好,所以我不需要知道服务器的 IP 地
我有一个在 AWS ECS 上运行的 Docker 容器。我不想要负载均衡器,因为容器是用来处理 websocket 连接的。 https://aws.amazon.com/getting-start
我想在我的 AWS ECS/Fargate 集群上的公共(public) Docker 镜像中启动交互式 shell,以便从集群内部运行网络/连接测试。 似乎官方的方法是使用 aws ecs run-
我在 ECS Fargate 上托管了一个 Shiny 的应用程序。它运行得相当好,但偶尔在使用该应用程序时它会崩溃。我在事件选项卡中将其追溯到以下内容: service YYYY has start
在 AWS ECS 中创建容量提供程序时。我们正在填充的值 Target capacity %,在超过这个值后我们的集群缩小,但我很好奇当前集群的这个值是如何计算的,如果我想检查当前的是什么集群的值(
在 AWS ECS 中创建容量提供程序时。我们正在填充的值 Target capacity %,在超过这个值后我们的集群缩小,但我很好奇当前集群的这个值是如何计算的,如果我想检查当前的是什么集群的值(
我在 AWS 上设置了具有多个目标组和应用程序负载均衡器的 Fargate ecs 服务。它按预期运行。 然后我尝试使用本教程设置管道 https://docs.aws.amazon.com/Amaz
我有一个运行任务的 ECS 集群服务,可以使用 AWS 控制台查看其 Cloudwatch 日志流。 如何为 awslogs-stream-prefix 设置日期,因为我想按日期识别日志流。 "c
我正在使用两个容器部署 ECS Fargate 任务:1 个反向代理 nginx 和 1 个 python 服务器。对于每个我有一个 ECR 存储库,我有一个 CI/CD CodePipeline 设
我在 AWS ECS 上部署了一个 CloudFormation 堆栈,比如 teststack , 通过命令 aws cloudformation deploy --template-file ./
我这里有一些具体的用例。我需要自动扩展在 ECS Fargate 上运行的分布式 Web 应用程序。问题是所有节点都需要在内存中保留相同的数据(因此增加节点数量无助于内存压力)。因此,只有在水平(添加
我正在寻找有关为 ECS 任务分配内存的指南。我正在为希望在服务器成本上尽可能便宜的客户运行 Rails 应用程序。我正在查看具有 2 个 CPU 和 4 GB 内存的中等服务器大小。 大多数情况下,
我是 ECS 新手,我正在尝试使用 Cloudformation 部署它。 我通过查看文档以及从博客和一些文章中找到的一些示例来制作以下 cloudformation 模板。 但是,由于某种原因,它在
也许这很愚蠢,但如果我创建一个 ECS 任务定义(例如参见 https://aws.amazon.com/blogs/compute/better-together-amazon-ecs-and-aw
ECS 的容器定义允许您指定 memoryReservation对于每个容器: The soft limit (in MiB) of memory to reserve for the contain
我在 ca-central 区域创建了一个 AWS ECS 实例。它与每次更新服务时都会更改的动态公共(public) ip 一起使用。到目前为止一切都很好。 由于需要一个公网静态IP,所以我在同一区
Invalid 'containerPort' setting for container 'prerenderContainer'.(Service: AmazonECS; Status Code:
如果我在 ECS 服务级别进行自动扩展,我看不到使用容量提供程序扩展 ECS 集群的意义: https://docs.aws.amazon.com/AmazonECS/latest/developer
关闭。这个问题不符合 Stack Overflow guidelines 。它目前不接受答案。 想改进这个问题?更新问题,使其成为 Stack Overflow 的 on-topic。 1年前关闭。
我是一名优秀的程序员,十分优秀!