【问题标题】:Escaping backslash in Ansible playbook在 Ansible 剧本中转义反斜杠
【发布时间】:2016-02-12 23:21:57
【问题描述】:

我有一个调用 get_url 来下载文件但 URL 包含反斜杠的剧本

http://cijboss:8080/jenkins/job/prod/186/org.myorg\$ear/artifact/org.org/ear/3.0.0-SNAPSHOT/ear-3.0.0-SNAPSHOT.ear"

我尝试过双引号、单引号、\ 转义序列等。尝试了在 Jinja2 和 YAML 转义文档中发现的许多东西,但没有任何效果。当我通过临时命令提供 URL 时,它会很好地下载文件。

ansible <server> -m get_url -u user -a "http://cijboss:8080/jenkins/job/prod/186/org.myorg\$ear/artifact/org.org/ear/3.0.0-SNAPSHOT/ear-3.0.0-SNAPSHOT.ear" dest=/home/user"

playbook 每次运行时,url 都会包含一个双反斜杠。如何正确地逃避这一点?

更新:下面是 yml playbook 文件。

    ---
    - hosts: jboss
      remote_user: jboss
    tasks:
      - name: Get Ear file
        get_url: url="http://cijboss:8080/jenkins/job/prod/186/org.myorg\$ear/artifact/org.org/ear/3.0.0-SNAPSHOT/ear-3.0.0-SNAPSHOT.ear"  dest=/home/jboss mode=0755

【问题讨论】:

  • 发布具有此 URL 的剧本部分
  • 帖子已编辑以包含剧本

标签: yaml ansible jinja2


【解决方案1】:

你试过percent encode吗? -> %5C

http://example.com/jenkins/../../domain%5C$project/../app.ear

【讨论】:

  • 我做到了。输出最终为: ..domain%5c$project/.. 并导致 404
猜你喜欢
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 2015-09-21
  • 2011-11-09
  • 2017-04-21
相关资源
最近更新 更多