我的目录结构是这样的
$ tree
├── Vagrantfile
├── files
│ ├── cmake
│ ├── pip-requirements.txt
│ └── profile
└── tasks
└── main.yml
内容
main.yml
---
- hosts: kurseve
tasks:
- name: Install pip
pip:
requirements: ../files/pip-requirements.txt
virtualenv: /home/vagrant/venvs/cv
virtualenv_python: python2.7
但是当我尝试使用项目根目录中的命令
vagrant up --provision
来配置 Vagrant 框时。错误日志显示ansible无法找到放置在pip-requirements.txt
内的
files/
这是错误日志
fatal: [kurseve]: FAILED! => {
"changed": false,
"cmd": "/home/vagrant/venvs/cv/bin/pip2 install -r ../files/pip-requirements.txt",
"failed": true,
"invocation": {
"module_args": {
"chdir": null,
"editable": true,
"executable": null,
"extra_args": null,
"name": null,
"requirements": "../files/pip-requirements.txt",
"state": "present",
"umask": null,
"use_mirrors": true,
"version": null,
"virtualenv": "/home/vagrant/venvs/cv",
"virtualenv_command": "virtualenv",
"virtualenv_python": "python2.7",
"virtualenv_site_packages": false
},
"module_name": "pip"
},
"msg": "\n:stderr: Could not open requirements file: [Errno 2] No such file or directory: '../files/pip-requirements.txt'\n"
}
pip模块期望
requirements
文件位于目标框上:
pip 需求文件的路径,该路径应该位于远程系统的本地。如果使用 chdir 选项,文件可以指定为相对路径。
因此,如果您的配置过程没有将本地文件夹复制/链接到 vagrant box,则没有
pip-requirements.txt
可用。