首页 > 解决方案 > Ansible trim/regex_replace 得到错误输出

问题描述

我有一些变量 somevariable.stdout 在 ansible playbook 中返回“no\n”,如下所示:

ok: [127.0.0.1] => {
    "msg": "no\n"
}

我必须从 somevariable.stdout 中删除 \n。

我在下面试过:

 - set_fact:
     remove: "{{ somevariable.stdout |  regex_replace(('\\n'), (''))}}"

我得到了错误的输出,并且还尝试了也得到错误输出的修剪工具。

ok: [127.0.0.1] => {
    "msg": false
}

预期输出:

ok: [127.0.0.1] => {
    "msg": "no"
}

标签: pythonansibleyamlansible-2.x

解决方案


而不是 using set_fact,您可以使用debugandregister来解决您的特定场景:

- debug:
    msg: "{{ somevariable.stdout | regex_replace('\n') }}"
  register: remove
- debug:
    msg: "{{ remove }}" #somevariable.stdout without '\n'

希望这可以帮助!


推荐阅读