首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ansible不允许我在变量中添加引号,当我尝试使用“block Ansible”和"block“时

Ansible不允许我在变量中添加引号,当我尝试使用“block Ansible”和"block“时
EN

Stack Overflow用户
提问于 2018-10-25 01:56:37
回答 1查看 82关注 0票数 0

使用容器,我尝试使用Python3 Ansible v0.2.4.2.0创建一个.bashrc文件。我也在使用Ansible角色。

代码语言:javascript
复制
- name: Adding environment vars to .bashrc file
  blockinfile:
    path=/.bashrc
    insertafter: EOF
    block: |
      export VAR1={{ var1 }}
      export VAR2={{ var2 }}
      export VAR3={{ var3 }}

其中所有3个变量都在我的主文件play.yml中定义。因此,假设var1等于"-a -b -c" (包括引号),var2等于"d"var3等于"e"

然后,在我运行play.yml之后,我的.bashrc文件如下所示:

代码语言:javascript
复制
export VAR1=-a -b -c
export VAR2=d
export VAR3=e

但我真正想要的是

代码语言:javascript
复制
export VAR1="-a -b -c"
export VAR2="d"
export VAR3="e"

如果我没有VAR1的报价,那么运行source /.bashrc会给我:

代码语言:javascript
复制
bash: export: `-a: not a valid identifier
bash: export: `-b: not a valid identifier
bash: export: `-c: not a valid identifier

我试过了:

代码语言:javascript
复制
- name: Creating .bashrc file
  blockinfile:
    path=/.bashrc
    insertafter: EOF
    block: |
      export VAR1=\"{{ var1 }}\"
      export VAR2=\"{{ var2 }}\"
      export VAR3=\"{{ var3 }}\"

但这不会将引号添加到我的.bashrc文件中。我仍然得到相同的结果。我可以做些什么来添加报价?我还尝试添加\"\",这会在每一行的开头添加\"\"。因此,当我尝试运行source /.bashrc时,这也不起作用

EN

回答 1

Stack Overflow用户

发布于 2018-10-25 03:48:48

像这样设置你的变量:

代码语言:javascript
复制
var1: '"fred"'
var2: '"barney"'
var3: '"wilma"'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52975274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档