Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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和python3在ubuntu上安装docker_Python_Docker_Ubuntu_Ansible - Fatal编程技术网

使用ansible和python3在ubuntu上安装docker

使用ansible和python3在ubuntu上安装docker,python,docker,ubuntu,ansible,Python,Docker,Ubuntu,Ansible,我想用ansible在ubuntu服务器上安装docker 环境: -本地/控制器服务器:ansible 2.8.4 -远程服务器:Ubuntu18.04,它与python 3.6.7一起提供 剧本: 提供全新的ubuntu 18.04服务器 # ... #####安装码头工人 -名称:安装docker所需的软件包 恰当的: 更新缓存:是 国家:最新 姓名: -apt传输https -ca证书 -卷曲 -gpg试剂 -通用软件属性 -名称:添加docker GPG密钥 apt_键: 网址:htt

我想用ansible在ubuntu服务器上安装docker

环境:
-本地/控制器服务器:ansible 2.8.4
-远程服务器:Ubuntu18.04,它与python 3.6.7一起提供

剧本:

提供全新的ubuntu 18.04服务器
# ...
#####安装码头工人
-名称:安装docker所需的软件包
恰当的:
更新缓存:是
国家:最新
姓名:
-apt传输https
-ca证书
-卷曲
-gpg试剂
-通用软件属性
-名称:添加docker GPG密钥
apt_键:
网址:https://download.docker.com/linux/ubuntu/gpg
国家:现在
-名称:添加docker apt回购
apt_存储库:
回购:debhttps://download.docker.com/linux/ubuntu 仿生稳定
国家:现在
-名称:安装docker
恰当的:
更新缓存:是
国家:最新
姓名:
-码头工程师
-docker ce cli
-集装箱
#####设置一个可移动的docker
-apt:
更新缓存:是
国家:最新
名称:蟒蛇3号
-pip:
姓名:docker
#####试验
-docker_图像:
姓名:你好,世界
资料来源:pull
-docker_集装箱:
姓名:你好,世界
国家:开始
请注意,ubuntu 18.04只附带python3。在资源调配过程中,添加了python2作为依赖项,因此现在安装了2和3。所以我更新了
ansible.cfg
以使用python3:
解释器\u python=/usr/bin/python3

但是ansible的
docker\u图像
模块出现以下故障:

无法在主机的Python/usr/bin/python3上导入所需的Python库(用于Python的Docker SDK:Docker(Python>=2.7)或Docker py(Python 2.6))。请阅读模块文档并安装到适当的位置,例如通过
pip install docker
pip install docker py
(Python 2.6)。错误是:没有名为“docker”的模块

为了确认它是否已安装,我运行了
pip3列表
,其中显示了
docker(4.0.2)


这些年来,ansible发生了许多突破性的变化,因此关于这个主题的信息已经过时。我该怎么办?

您是否尝试过使用shell来运行docker命令?有时Ansible模块并不总是最新的,在这种情况下,执行原始命令可能会更好。

要使用Ansible docker模块,您需要从PyPA将“docker”模块安装在与Ansible相同的python解释器中。
请记住,Ansible模块并不实现docker模块的所有功能。例如,我确信我修复了docker_容器模块上的一个bug,该bug将只包含在Ansible 2.9(即将测试版)中

问题是
pip的特权问题
——如果您不是python用户,这一点并不明显,而且文档记录也很差

这项工作:

提供全新的ubuntu 18.04服务器
# ...
#####设置组和用户
-名称:创建docker组
变成:真的
组:
姓名:docker
国家:现在
-名称:将用户添加到组
变成:真的
用户:
名称:“{ansible_user}”
分组:docker
附加:true

-meta:reset#u connection#我为我的服务器提供
docker
docker compose
和依赖项
ansible
通过ssh
与远程主机通信。这可能会起作用,但也会破坏使用ansible的目的。:)我不确定我是否理解。。。Ansible安装在我的(本地)“控制器”服务器上,模块“docker”安装在(远程)主机上。远程主机固定为python3,模块通过
pip3
安装。这就是你的意思吗?(因为我就是这么做的,但它不起作用。)
docker\u container
(上一个任务)对我不起作用。我不得不添加
image:hello world
作为该任务的附加参数