如何解决使用Ansible的Docker NFS卷
给出一个简单的示例,例如
$ docker volume create --driver local \
--opt type=nfs \
--opt o=addr=192.168.1.1,rw \
--opt device=:/path/to/dir \
foo
如何使用Ansible做同样的事情?我尝试过
- name: NFS volume mount
docker_volume:
driver: "local"
driver_options:
type: nfs
o: "addr=192.168.1.1,rw"
device: /path/to/dir
volume_name: foo
这将创建没有错误的卷,但是当该卷与docker_container
模块一起使用时,它将失败。
TASK [oracle-database : docker_container] **************************************
fatal: [oracle]: FAILED! => {"changed": false,"msg": "Error starting container 1beb3254e25a8fe47cd78e803a2050f24020cf72e138472d7d14d963e02bec7f: 500 Server Error: Internal Server Error (\"{\"message\":\"error while mounting volume '/var/lib/docker/volumes/foo/_data': failed to mount local volume: mount /path/to/dir:/var/lib/docker/volumes/foo/_data,data: addr=192.168.1.1: invalid argument\"}\")"}
当我使用Ansibe创建卷时
[root@oracle ~]# docker volume inspect oracle-dumps
[
{
"CreatedAt": "2020-08-31T02:07:14-07:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/foo/_data","Name": "foo","Options": {
"device": "/path/to/dir","o": "192.168.1.1,rw","type": "nfs"
},"Scope": "local"
}
]
当我使用docker volume create
手动创建卷时:
[root@oracle ~]# docker volume inspect oracle-dumps
[
{
"CreatedAt": "2020-08-31T02:07:14-07:00","Labels": {},"Scope": "local"
}
]
除了标签属性,外观几乎相同。
docker inspect
的容器在体积上是相同的
{
"Type": "volume","Name": "oracle-dumps","Source": "/var/lib/docker/volumes/foo/_data","Destination": "/otherpath/to/dir","Mode": "rw","RW": true,"Propagation": ""
}
因此,结论是存在错误,但是在哪里?可以吗码头工人py?码头工人?
解决方法是
- name: Create dump volume
command:
cmd: "docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.1,rw --opt device=:/path/to/dir foo"
解决方法
问题是缺少:
。设备路径应为:/path/to/dir
- name: NFS volume mount
docker_volume:
driver: "local"
driver_options:
type: nfs
o: "addr=192.168.1.1,rw"
device: :/path/to/dir
volume_name: foo
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。