在Ansible上设置环境变量

时间:2015-09-18 12:33:54

标签: ansible ansible-playbook

我想从ansible playbook中设置(并持久化)环境变量。我写道:

# Set the JVM ram
- name: Set the JVM ram
  environment:
    ES_HEAP_SIZE: 2g

但是,我得到了:

  

错误:任务中缺少“action”或“local_action”属性“设置   JVM ram“

2 个答案:

答案 0 :(得分:2)

你有正确的想法。但是你错过了你的“行动”;每项任务都需要一项。如果您执行此操作,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}

答案 1 :(得分:1)

environment标记不是任务,而是可以应用于单个任务或全局应用的属性。根据{{​​3}}你想要做的只是在你的剧本顶部指定这样的东西:

---

environment:
    ES_HEAP_SIZE: 2g

请注意,这与您指定的不同,因为- name指定了单个任务的开始,其中上面的示例只是在顶层定义一个dict,ansible在处理之前解释并应用为环境变量任务。