Ansible:包含管道的多行变量

Ansible:包含管道的多行变量,ansible,ascii-art,Ansible,Ascii Art,我尝试在Linux服务器上创建MOTD(每日消息)的角色 我想在这个文件中添加ASCII艺术,ASCII艺术是在我的模板中使用的变量中定义的 所以我的ASCII art变量需要是多行的,并且包含多个特殊字符 我尝试: motd_asciiart: | _____ _ _ __ _ / ___| | | | / _|

我尝试在Linux服务器上创建MOTD(每日消息)的角色

我想在这个文件中添加ASCII艺术,ASCII艺术是在我的模板中使用的变量中定义的

所以我的ASCII art变量需要是多行的,并且包含多个特殊字符

我尝试:

motd_asciiart: |
     _____ _             _                        __ _               
    /  ___| |           | |                      / _| |              
    \ `--.| |_ __ _  ___| | _______   _____ _ __| |_| | _____      __
     `--. \ __/ _` |/ __| |/ / _ \ \ / / _ \ '__|  _| |/ _ \ \ /\ / /
    /\__/ / || (_| | (__|   < (_) \ V /  __/ |  | | | | (_) \ V  V / 
    \____/ \__\__,_|\___|_|\_\___/ \_/ \___|_|  |_| |_|\___/ \_/\_/ 
我试图在第一行和最后一行加上“我有一个不同的错误:

错误!加载YAML时出现语法错误

错误似乎出现在“/Users/ydavid/Devops/ansible2/roles/umanit.motd/defaults/main.yml”中:第7行第74列,但可能是 根据确切的语法问题,在文件中的其他位置

令人不快的一行似乎是:

     _____ _             _                        __ _
    /  ___| |           | |                      / _| |
    ^ here
    /\__/ / || (_| | (__|   < (_) \ V /  __/ |  | | | | (_) \ V  V /
    \____/ \__\__,_|\___|_|\_\___/ \_/ \___|_|  |_| |_|\___/ \_/\_/ "
                                                                    ^ here
/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/
\____/ \__\__,_|\___|_|\_\___/ \_/ \___|_|  |_| |_|\___/ \_/\_/ "
^这里
你能帮我吗

我们能逃出整个街区吗


我发现这个角色()也有同样的作用,但是ASCII艺术是一行的,如果可以的话,我会避免这个。原因是缩进-第二行比第一行早一个空格,这是一个参考点

我想最干净的解决方案是将艺术保存到单独的文件中,并使用以下方法读取内容:


感谢您的建议。使用此解决方案,我如何为我的主机使用不同的文件?我需要一个通用文件和特定主机的一些例外。但我不知道这与原始问题有何关系。您可以使用主机变量、组变量,或根据主机名包含该文件。
vars:
  motd_asciiart: "{{lookup('file', './art.txt')}}"