如何解决使用Ansible在AWS ECS Fargate任务定义中的多个端口和安装点
我仔细阅读了此处提供的文档
https://docs.ansible.com/ansible/latest/collections/community/aws/ecs_taskdefinition_module.html
它为我提供了设置Fargate任务定义的漂亮示例。但是,它仅显示了一个端口映射的示例,此处未显示安装点。 我想动态添加端口映射(取决于我的应用程序)和体积/装载点
为此,我正在为应用定义如下的host_var(可以有许多具有不同安装点和端口的此类应用)
---
task_count: 4
task_cpu: 1028
task_memory: 2056
app_port: 8080
我的任务定义yaml文件如下所示
- name: Create/Update Task Definition
ecs_taskdefinition:
aws_access_key: "{{....}}"
aws_secret_key: "{{....}}"
security_token: "{{....}}"
region: "{{....}}"
launch_type: FARGATE
network_mode: awsvpc
execution_role_arn: "{{ ... }}"
task_role_arn: "{{ ...}}"
containers:
- name: "{{...}}"
environment: "{{...}}"
essential: true
image: "{{ ....}}"
logConfiguration: "{{....}}"
portMappings:
- containerPort: "{{app_port}}"
hostPort: "{{app_port}}"
cpu: "{{task_cpu}}"
memory: "{{task_memory}}"
state: present
我能够创建/更新任务定义。
新要求是
- 现在我们可以有多个(或没有)端口映射,而不是一个端口。
- 我们还将有多个(或没有)安装点和卷
这是我认为修改后的ansible host_var应该如下所示的端口 [container_port1:host_port1,container_port2:host_port2,container_port3:host_port3]
task_count: 4
task_cpu: 1028
task_memory: 2056
#[container_port1:host_port1,container_port2:host_port2,container_port3:host_port3]
app_ports: [8080:80,8081:8081,5703:5703]
我不确定在该目录的端口中使用ansible剧本该怎么做。
问题的另一部分是,尽管我能够通过aws控制台在容器中创建体积并进行模切,但我无法使用ansible来做到这一点。
这是AWS fargate的json片段,类似于(对于批量而言)。取决于应用,可以有许多这样的安装座。我想通过在host_vars中定义安装点和卷来动态实现这一点
-
-
-
"mountPoints": [
{
"readOnly": null,"containerPath": "/mnt/downloads","sourceVolume": "downloads"
}
-
-
-
-
-
-
"volumes": [
{
"efsVolumeConfiguration": {
"transitEncryptionPort": ENABLED,"fileSystemId": "fs-ecdg222d","authorizationConfig": {
"iam": "ENABLED","accessPointId": null
},"transitEncryption": "ENABLED","rootDirectory": "/vol/downloads"
},"name": "downloads","host": null,"dockerVolumeConfiguration": null
}
我不确定该怎么做。 官方文档提供的帮助很少。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。