gpt4 book ai didi

docker - 基于变量的 ansible docker mount 卷

转载 作者:行者123 更新时间:2023-12-02 20:34:12 25 4
gpt4 key购买 nike

有没有办法在 volumes: 下挂载一个卷? ansible docker_service 模块中的指令?

我想写一个 docker_compose,并有一个变量来选择要挂载的正确卷。

- name: Add docker_service for the Ansible Container
docker_service:
project_name: jro
definition:
version: '3'
services:
ansible:
image: python:3.7.0a3-alpine3.7
volumes:
- {CONDITION xxx} then "xxx:ccc"
- {CONDITION yyy} then "yyy:ccc:

最佳答案

这不是您通常在 Ansible 剧本中处理条件的方式。你还没有告诉我们你的条件是什么,所以很难直接回答你的问题,但你可以这样做:

- set_fact:
volume_to_mount: foo
when: condition1

- set_fact:
volume_to_mount: bar
when: condition2

- name: Add docker_service for the Ansible Container
docker_service:
project_name: jro
definition:
version: '3'
services:
ansible:
image: python:3.7.0a3-alpine3.7
volumes:
- "{{volume_to_mount}}:/mountpoint"

如果您的条件是主机名或组,您通常会通过使用组或主机 vars 文件来处理它。例如,如果您想为“foo_group”主机组中的所有主机安装卷“foo”,为“bar_group”主机组中的所有主机安装卷“bar”,您将创建 group_vars/foo_group.yml和:
volume_to_mount: foo

groups_vars/bar_group.yml和:
volume_to_mount: bar

如果您需要挂载多个卷,您将执行与上述类似的操作,但使用列表而不是单个值,例如:
volumes_to_mount:
- "bar:/mount_for_bar"
- "foo:/mount_for_foo"

然后在你的 docker_service任务:
- name: Add docker_service for the Ansible Container
docker_service:
project_name: jro
definition:
version: '3'
services:
ansible:
image: python:3.7.0a3-alpine3.7
volumes: "{{ volumes_to_mount }}"

希望这里有一些东西可以为您指明正确的方向。如果您想要更有针对性的答案,请随时提供有关您正在尝试做的事情的更多详细信息。

关于docker - 基于变量的 ansible docker mount 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48114601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com