Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ansible部署Docker映像_Docker_Ansible - Fatal编程技术网

使用Ansible部署Docker映像

使用Ansible部署Docker映像,docker,ansible,Docker,Ansible,在回顾了这个令人惊叹的论坛之后,我想是时候加入 我对部署多个码头工人的剧本有意见 我的Ansible版本是:2.5.1 我的Python版本是3.6.9 我的Linux映像来自以下站点:osbox Docker服务已安装并在两台机器上运行 根据本网站的介绍,您只需按照说明操作,一切都会完美无瑕。:) (我使用的剧本在上面的链接中) 但是在遵循这些步骤并使用剧本之后,我发现了这个错误 TASK [Pull default Docker image] *********************

在回顾了这个令人惊叹的论坛之后,我想是时候加入

我对部署多个码头工人的剧本有意见

  • 我的Ansible版本是:2.5.1
  • 我的Python版本是3.6.9
  • 我的Linux映像来自以下站点:osbox
Docker服务已安装并在两台机器上运行

根据本网站的介绍,您只需按照说明操作,一切都会完美无瑕。:)

(我使用的剧本在上面的链接中)

但是在遵循这些步骤并使用剧本之后,我发现了这个错误

TASK [Pull default Docker image] ******************************************************************************************************
fatal: [192.168.1.38]: FAILED! => {"changed": false, "msg": "Unsupported parameters for (docker_image) module: source Supported parameters include: api_version, archive_path, buildargs, cacert_path, cert_path, container_limits, debug, docker_host, dockerfile, filter_logger, force, http_timeout, key_path, load_path, name, nocache, path, pull, push, repository, rm, ssl_version, state, tag, timeout, tls, tls_hostname, tls_verify, use_tls"}

我很高兴得到您在这个问题上的支持。

根据Ansible module
docker\u image
中的错误消息,似乎使用了一个参数,但该参数不是为该模块实现的参数的一部分(尚未)。此外,错误消息已列出可用的参数。和以前一样


另一个可能的原因可能是某些参数的行缩进不正确。

添加了
source:pull
选项。由于您使用的是Ansible 2.5.1,因此该选项不可用

您可以使用更高版本2.8或更高版本,也可以从playbook中删除该行,它应该可以工作:

- name: Pull default Docker image
  docker_image:
    name: "{{ default_container_image }}"
您不能保证图像是从注册表中新提取的。如果这对您的情况很重要,您可以先删除映像的任何本地缓存版本:

- name: Remove Docker image
  docker_image:
    name: "{{ default_container_image }}"
    state: absent

- name: Pull default Docker image
  docker_image:
    name: "{{ default_container_image }}"
因此,根据Ansible 2.5的模块,确实没有参数
source

然而,报告告诉我们它已经“添加到2.8中”!因此,您必须更新Ansible版本,才能按原样运行链接的playbook。那是你最好的选择

否则,另一个选择是保留2.5版,只需删除第38行即可

(-)        source: pull

但是我不知道2.8之前的默认行为是怎样的,所以我不能夸耀你它会做你期望的事情

终于有了这个剧本来唱了!:)

我做了以下几件事

  • 升级了Ansibe版本,所以现在它在2.9.15版本上运行
  • 我的python3版本是:3.6.9
  • 将Ansible升级到上面提到的版本后,我收到一条错误消息:无法在OSbox(这是我的机器)python上导入所需的python库(Docker SDK for python(python>==2.7)或Docker py(python 2.6))

    所以,在谷歌搜索这个错误后,我找到了这个URL:

    因此,我决定从我的机器上删除docker,包括使用pip安装的python(我使用命令pip list查看是否安装了docker,并使用:pip uninstall将其删除)

    从我的机器上移除Docker后,我又添加了一个剧本。安装docker compose(这就是解决我的问题的方法,它处理了python版本)


    只需按照我在答案中附加的URL进行操作。

    谢谢您的回答。我会在谷歌上搜索如何将我的Ansible升级到你提到的版本,希望这能解决我的问题。我会在谷歌上搜索如何将我的Ansible升级到你提到的版本,希望这能解决我的问题。谢谢你花时间回复我的帖子。我将升级Ansible并向您汇报。(我想知道他在视频中使用了哪个版本…:)谢谢你花时间回复我的帖子。我将升级Ansible并向您汇报。感谢您抽出时间回复我的帖子。我将升级Ansible并向您汇报。(我想知道他在视频中使用了哪个版本…:)