我有一个运行“vgs”命令的python脚本来检查可用卷组中的可用空间,然后使用lvcreate命令创建lvm。
当我在本地运行这个python脚本时,我可以毫无问题地运行它,并且也会创建lvm。但是,如果我使用Ansible playbook运行它,我已尝试使用'command'和'shell'模块,它无法找到vgs
命令的路径并失败。它似乎只是寻找/usr/bin:/bin
路径。请帮忙。
which: no vgs in (/usr/bin:/bin)", "No Volume Groups Found", "Space Found in Volume Group:"], "warnings": []}
"stderr": "sh: -c: line 0: syntax error near unexpected token `('\nsh: -c: line 0: `{ which: no vgs in (/usr/bin:/bin) -o VG_NAME --noheadings --units m ; } 2>&1'
答案 0 :(得分:1)
它似乎只是在寻找' / usr / bin:/ bin'路径。
因为交互式和非交互式shell会话调用不同的rc文件集。如果在仅由交互式shell提供的rc文件中设置PATH
,则这些设置不会反映在非交互式shell中。
将PATH
作为环境变量添加到任务中:
- command: <script_on_target_node>
environment:
PATH: <path_string>