我尝试在Linux服务器上创建一个Ansible角色来创建MOTD(当天的消息)。
我想在此文件中添加ASCII art,ASCII art在我的模板中使用的变量中定义。
所以我的ASCII艺术变量需要是多行的,并且包含多个特殊字符。
我试试:
motd_asciiart: |
_____ _ _ __ _
/ ___| | | | / _| |
\ `--.| |_ __ _ ___| | _______ _____ _ __| |_| | _____ __
`--. \ __/ _` |/ __| |/ / _ \ \ / / _ \ '__| _| |/ _ \ \ /\ / /
/\__/ / || (_| | (__| < (_) \ V / __/ | | | | | (_) \ V V /
\____/ \__\__,_|\___|_|\_\___/ \_/ \___|_| |_| |_|\___/ \_/\_/
但我有这个错误:
ERROR!加载YAML时出现语法错误。
错误似乎出现在'/Users/ydavid/Devops/ansible2/roles/umanit.motd/defaults/main.yml'中:第3行第9列,但可能 取决于确切的语法问题,在文件的其他位置。
违规行似乎是:
_____ _ _ __ _ / ___| | | | / _| | ^ here
我尝试添加“在第一行和最后一行,我有一个不同的错误:
ERROR!加载YAML时出现语法错误。
错误似乎出现在'/Users/ydavid/Devops/ansible2/roles/umanit.motd/defaults/main.yml'中:第7行第74列,但可能 取决于确切的语法问题,在文件的其他位置。
违规行似乎是:
/\__/ / || (_| | (__| < (_) \ V / __/ | | | | | (_) \ V V / \____/ \__\__,_|\___|_|\_\___/ \_/ \___|_| |_| |_|\___/ \_/\_/ " ^ here
你能帮助我吗?
我们可以逃离整个街区吗?
我发现这个角色(https://github.com/picotrading/ansible-motd)做了同样的事情,但ASCII艺术是一线的,如果可以,我会避免这种情况。
答案 0 :(得分:1)
原因是缩进 - 第二行比第一行早一个空格开始,这是一个参考点。
我想最干净的解决方案是将艺术品保存到单独的文件中并使用file_contents
lookup plugin阅读内容:
vars:
motd_asciiart: "{{lookup('file', './art.txt')}}"