string - 如何向 Ansible 变量添加新行 "\n"字符

标签 string variables ansible newline ansible-facts

如何向 Ansible 变量 mailbody 添加新行“\n”字符

我将以下变量设置为 ansible 的邮件模块主体属性。

   - set_fact:
       mailbody: "{{ mailbody | default('') + 'PROFILE_NAME:' +  PROFILE_NAME ~ '\n\nSERVER_NAME:' + SERVER_NAME ~ '\n\nNODE_NAME:' +  NODE_NAME ~ '\n\n\n\n' }}"

但是电子邮件正文打印了“\n\n”,而不是新行

您能否建议需要进行哪些更改?

最佳答案

请尝试这样的事情:

正如我在评论中分享的文档中所述“单引号和双引号之间的区别在于,在双引号中您可以使用转义符:foo:“a\t TAB and a\n NEWLINE”

所以

1.首先要尝试的事情:

mailbody: "{{ mailbody | default('') + 'PROFILE_NAME:' +  PROFILE_NAME ~}} {{ 'SERVER_NAME:' + SERVER_NAME ~ }}\n\n{{'NODE_NAME:' +  NODE_NAME ~ }}\n\n\n\n"

2.如果这没有帮助,那么:

mailbody: >
   "{{ mailbody | default('') + 'PROFILE_NAME:' +  PROFILE_NAME ~}}"
   "{{ 'SERVER_NAME:' + SERVER_NAME ~ }}"
   "{{'NODE_NAME:' +  NODE_NAME ~ }}"

3.如果还是不行:

 mailbody: | 
     "{{ mailbody | default('') + 'PROFILE_NAME:' +  PROFILE_NAME ~}}"
     "{{ 'SERVER_NAME:' + SERVER_NAME ~ }}"
     "{{'NODE_NAME:' +  NODE_NAME ~ }}"

4.如果这仍然不起作用,请尝试删除最后 2 和 3 的双引号。

关于string - 如何向 Ansible 变量添加新行 "\n"字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62174128/

相关文章:

python - 使用 python 将动态列表/数组存储在数据库中

java - 在开始 <html> 标记之前设置 JavaScript 变量

ssl - kolla-ansible TLS 部署失败

c - 为什么 strtok() 不以某种方式标记字符串?

java - 如何使用 replaceFirst 替换 {....}

perl - 为什么 Perl 不支持普通的 [] 运算符来索引字符串?

python - 使用 Ansible 进行 Vagrant 配置 - mysql_db 找不到 PyMySQL

sql - 在sql server中拆分字符串

jquery - 在javascript函数中使用$.post,无法为变量赋值?

continuous-integration - ansible inventory文件位置是/etc/ansible/hosts还是/etc/hosts?