永久设置ansible中的环境变量

时间:2017-04-12 20:25:09

标签: deployment server ansible

我正在使用ansible在ubuntu bashrc中添加永久环境变量。 我在prod_vars文件中定义了这些设置:

enviornment_variables:
  PRODUCTION:
    MONGO_IP: 0.0.0.0
    MONGO_PORT: 27017
    ELASTIC_IP: localhost
    ELASTIC_PORT: 9200

如何使用task导出它?我知道lineinfile模块,但我不想重复每个env var

- name: set env in the bashrc files
  lineinfile: dest=/home/user/.bashrc line='export MONGO_IP=enviornment_variables[PRODUCTION][MONGO_IP]'

上面的命令也给出了synatx错误?

1 个答案:

答案 0 :(得分:3)

使用lineinfile模块,而不是使用blockinfile模块。 所以像这样的东西应该工作: - name: Adding to environment variables for user blockinfile: path: /home/user/.bashrc insertafter: EOF block: | export {{ item.key }}={{ item.val }} marker: "# {mark} {{ item.key }}" with_dict: "{{ enviornment_variables['PRODUCTION'] }}"

ps:“环境”中的拼写错误确实需要20多分钟才能识别出来!