在Ansible上设置环境变量
我想从ansible剧本中设置(并保持)一个环境变量。我写道:在Ansible上设置环境变量,ansible,ansible-playbook,Ansible,Ansible Playbook,我想从ansible剧本中设置(并保持)一个环境变量。我写道: # Set the JVM ram - name: Set the JVM ram environment: ES_HEAP_SIZE: 2g 然而,我得到: 错误:“任务”中缺少“操作”或“本地_操作”属性设置 JVM ram“ environment标记不是任务,而是可以应用于单个任务或全局应用的属性。根据需要,您只需在剧本顶部指定类似的内容: --- environment: ES_HEAP_SIZE:
# Set the JVM ram
- name: Set the JVM ram
environment:
ES_HEAP_SIZE: 2g
然而,我得到:
错误:“任务”中缺少“操作”或“本地_操作”属性设置
JVM ram“
environment
标记不是任务,而是可以应用于单个任务或全局应用的属性。根据需要,您只需在剧本顶部指定类似的内容:
---
environment:
ES_HEAP_SIZE: 2g
请注意,这与您指定的不同,因为
-name
指定单个任务的开始,上面的示例只是在顶层定义一个dict,ansible在处理任务之前将其解释并应用为环境变量。您的想法是正确的。但是你错过了你的“行动”;每个任务都需要一个。如果您执行此操作(但仅限于此任务),您的环境设置将起作用/适用:
elasticsearch被定义为系统服务。我不能那样发射,没关系。我只是把它作为一个示例命令。你一定有东西要跑。或者,您可以将任务设置为一个lineinfle
,将其放入一个rc/environment文件中。
# Set the JVM ram
- name: Set the JVM ram
command: ./bin/elasticsearch # now using envvar instead of -Xmx10g -Xms10g
environment:
ES_HEAP_SIZE: 2g
# OR
#environment: {ES_HEAP_SIZE: 2g}