gpt4 book ai didi

docker - 使用 Ansible 在 Docker 容器内运行命令

转载 作者:IT老高 更新时间:2023-10-28 12:36:29 36 4
gpt4 key购买 nike

我想要完成的是在已经使用 Ansible 在 Digital Ocean Ubuntu/Docker Droplet 上创建的 Docker 容器内运行命令。

似乎在这方面找不到任何东西,或者我主要是遗漏了一些东西。这是我的剧本中的 Ansible 任务。我对 Ansible 很陌生,因此我们将不胜感激任何建议或智慧。

- name: Test Deploy
hosts: [my-cluster-of-servers]

tasks:
- name: Go Into Docker Container And Run Multiple Commands
docker:
name: [container-name]
image: [image-ive-created-container-with-on-server]
state: present
command: docker exec -it [container-name] bash

最佳答案

ansible github project 上与一些非常有帮助的开发人员讨论后,一个更好的方法是这样的:

- name: add container to inventory
add_host:
name: [container-name]
ansible_connection: docker
changed_when: false

- name: run command in container
delegate_to: [container-name]
raw: bash

如果你的镜像中安装了 python,你可以使用 command 模块或任何其他模块来代替 raw。

如果您想在远程 docker 主机上执行此操作,请添加:

ansible_docker_extra_args: "-H=tcp://[docker-host]:[api port]"

到 add_host block 。

Ansible documentation一个更完整的例子。

关于docker - 使用 Ansible 在 Docker 容器内运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878795/

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