ansible - 如果定义了 SHELL (/bin/sh) 环境变量,如何检查 ansible
问题描述
在我的剧本中,我想检测是否定义了某个环境变量。如果已定义,那么我想执行某个操作,否则执行某些其他操作。
问题:如何在 ansible 中检测是否定义了某个 shell 环境变量?
解决方案
假设您想要当前用户:
- name: Get current user.
set_fact:
whoami: "{{ lookup('env','USER') }}"
这不会告诉您变量是否已定义。如果变量未在环境中定义,则您的set_fact
变量将为空。如果您想在未设置变量的情况下使用一些默认值...
- name: See if environment variable MYVAR is set
shell: "env | grep '^MYVAR='"
failed_when: 1 == 0
register: result
- name: Get MYVAR or use 'DEFAULT'
set_fact:
myvar: "{% if result.rc == 0 %}{{ lookup('env','MYVAR') }}{% else %}DEFAULT{% endif %}"
推荐阅读
- laravel - 有什么方法可以使用 addClass() 在 vueJs 中单击添加一个类?
- python - 在命令行中导出项目模块
- php - Codeigniter 3.1.11 - 会话重新生成和数据丢失 PHP 7.3.11
- java - 每次计算逻辑、访问数据库、文件或哈希图是否更快?
- java - 如何让springboot在tomcat9中支持h2c?
- npm - 如果依赖已经被 webpack 在 dist.js 中烘焙,为什么 npm 在安装时仍然下载 package.json 中的依赖
- java - 如何使用 robolectric 来测试具有额外意图数据的活动
- java - java中2个6位数字的乘法
- python - python - 如何获得沿图像线的平均像素强度并将它们绘制在图表上?
- php - 如何按列从 pdo 中获取数据?