首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ansible_python_interpreter变量中使用env变量

在ansible_python_interpreter变量中使用env变量
EN

Stack Overflow用户
提问于 2017-08-16 17:03:37
回答 2查看 3.7K关注 0票数 0

如何在ansible_python_interpreter变量中使用${USER}?

在deploy.yml中,我有几个任务,第一个任务将python安装到/local/${USER}/venv中。后续任务应该使用已安装的python,而不是我自己的env。我试过不同的组合,这些组合都不起作用。

deploy.yml

代码语言:javascript
复制
- name: use installed python
  host: localhost
  vars_files:
    - settings.yml
  vars:
    # commented items did not work neither here nor in settings.yml
    # ansible_python_interpreter: "/local/{{lookup('env', 'USER')}}/venv/bin/python"                                                                                          
    # ansible_python_interpreter: "/local/${USER}/venv/bin/python"                                                                                                            
    # venv_dir defined in settings.yml
    # ansible_python_interpreter: "{{venv_dir}}/bin/python"
    # hardcoded worked:
    ansible_python_interpreter: "/local/myuser/bin/python"

这个错误类似于:

代码语言:javascript
复制
"/bin/sh: {{venv_dir}}/bin/python: No such file or directory\n"
fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "module_stderr": "/bin/sh: {{venv_dir}}/bin/python: No such file or directory\n", "module_stdout": "", "msg": "MODULE FAILURE"}

settings.yml:

代码语言:javascript
复制
---
root_dir: "/local/{{lookup('env', 'USER')}}"
venv_dir: "{{root_dir}}/venv/"

注意:将ansible_python_interpreter迁移到settings.yml没有帮助。

我是不是遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-16 18:45:25

我想ansible_python_interpreter不是在引擎盖下做模板的。

您可以使用set_fact解决方案:

代码语言:javascript
复制
---
- hosts: localhost
  gather_facts: false
  tasks:
    # default Python here
    - shell: echo hello
    - set_fact:
        ansible_python_interpreter: /local/{{lookup('env', 'USER')}}/venv/bin/python
    # modified Python here
    - shell: echo hello
票数 3
EN

Stack Overflow用户

发布于 2020-04-14 04:39:29

全局情况下,在interpreter_python[defaults]部分使用ansible.cfg

解释器_python=/usr/bin/python2.7

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45719279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档