我有一个安装PythonBrew的剧本.为此,我必须修改shell环境.因为Ansible中的shell步骤不是持久的,所以我必须在export PYTHONBREW_ROOT=${pythonbrew.root}; source ${pythonbrew.root}/etc/bashrc;每个与PythonBrew相关的命令的开头处添加前缀:
- name: Install python binary
shell: export PYTHONBREW_ROOT=${pythonbrew.root}; source ${pythonbrew.root}/etc/bashrc; pythonbrew install ${python.version}
executable=/bin/bash
- name: Switch to python version
shell: export PYTHONBREW_ROOT=${pythonbrew.root}; source ${pythonbrew.root}/etc/bashrc; pythonbrew switch ${python.version}
executable=/bin/bash
Run Code Online (Sandbox Code Playgroud)
我想消除那种冗余.在Ansible讨论组中,我被引用了environment关键字.我查看了文档中的示例,而不是单击我.对我来说,environment关键字与其他任何变量都没有太大的不同.
我找了其他的例子,但只能找到这个非常简单的例子.
有人可以演示environment关键字在Ansible中的功能,最好是我上面提供的代码示例吗?
mag*_*tik 16
不确定它是否符合您的需求,但这就是我看到的方式:
- hosts: all
vars:
env:
PYTHONBREW_ROOT: "{{ pythonbrew.root }}"
tasks:
- name: Install python binary
shell: pythonbrew install {{ python.version }} executable=/bin/bash
environment: env
- name: Switch to python version
shell: pythonbrew switch {{ python.version }} executable=/bin/bash
environment: env
Run Code Online (Sandbox Code Playgroud)
它只是设置一个名为的变量,env并在两个shell命令中将其重用为环境.这样,shell命令将设置PYTHONBREW_ROOT路径.
| 归档时间: |
|
| 查看次数: |
11378 次 |
| 最近记录: |