Deployment 在ansible中设置环境变量

Deployment 在ansible中设置环境变量,deployment,server,ansible,Deployment,Server,Ansible,我正在使用ansible在ubuntu bashrc中添加永久性环境变量。 我在prod\u vars文件中定义了这些设置: enviornment_variables: PRODUCTION: MONGO_IP: 0.0.0.0 MONGO_PORT: 27017 ELASTIC_IP: localhost ELASTIC_PORT: 9200 如何使用任务导出它?我了解lineinfle模块,但不想对每个环境变量重复 - name: set env in

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

enviornment_variables:
  PRODUCTION:
    MONGO_IP: 0.0.0.0
    MONGO_PORT: 27017
    ELASTIC_IP: localhost
    ELASTIC_PORT: 9200
如何使用
任务导出它?我了解
lineinfle
模块,但不想对每个环境变量重复

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

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

请使用
blockinfle
模块,而不是使用
lineinfle
模块。 因此,类似这样的方法应该有效:

-名称:为用户添加环境变量
区块填充:
路径:/home/user/.bashrc
插入者:EOF
区块:|
导出{{item.key}}={{item.val}
标记:“#{mark}{{item.key}}”
用_dict:
“{{environment_variables['PRODUCTION']}”


ps:“environment”中的拼写错误让我花了20多分钟才识别出来

不要这样做。相反,来自(例如)
.bashrc.d
的源文件使用Ansible中的模板在
.bashrc.d
下创建一个文件。我该怎么做?还有为什么
.bashrc.d
?我整天都在拼写。也很有用。