我想将一个文件复制到一个Docker容器,这是我的Ansible剧本步骤之一。我使用jinja 2“模板”创建文件。我可以将文件复制到/tmp/中,然后运行命令将其复制到Docker容器,例如:'docker cp/tmp/配置文件. json我的图像:/应用程序/配置文件/路径/'但是我正在寻找不使用“/tmp”或类似的更好的方法。
dsekswqp1#
Ansible有一个docker connection plugin,你可以用它来与剧本中现有的容器交互,例如,如果我有一个名为mycontainer的容器:
docker
mycontainer
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 07899303ac55 alpine "sleep inf" 7 seconds ago Up 2 seconds mycontainer
我可以创建一个Ansible清单,如下所示,将ansible_connection变量设置为community.general.docker:
ansible_connection
community.general.docker
all: hosts: mycontainer: ansible_connection: community.docker.docker
现在,我可以在这样一个剧本中瞄准容器:
- hosts: mycontainer gather_facts: false become: true tasks: - name: create target directory in container file: path: /target state: directory - name: copy a file into the container copy: src: example.file dest: /target/example.file
1条答案
按热度按时间dsekswqp1#
Ansible有一个
docker
connection plugin,你可以用它来与剧本中现有的容器交互,例如,如果我有一个名为mycontainer
的容器:我可以创建一个Ansible清单,如下所示,将
ansible_connection
变量设置为community.general.docker
:现在,我可以在这样一个剧本中瞄准容器: