clojure - 如何通过clojure编写一个ansible yaml文件?
问题描述
我有这个简单的 ansible yaml 文件,它工作正常:
---
- hosts: 172.16.10.104
- tasks:
- name: ping
ping: ''
我使用 clojure https://github.com/owainlewis/yaml来使用 clojure 来生成这个 yaml 文件:
(defn -main
[& args]
(def data [{:hosts "172.16.10.104"} {:tasks ""} {:name "ping",:ping ""} ])
(def a (yaml/generate-string data :dumper-options {:flow-style :block}))
(println a)
)
此代码可以生成 yaml 文件:
- hosts: 172.16.10.104
- tasks: ''
- name: ping
ping: ''
它不能工作,“-name”必须超过“-tasks”的两个字符
如果我这样定义数据:
(def data [{:hosts "172.16.10.104"} {:tasks ""} [{:name "ping",:ping ""}]])
它产生这个:
- hosts: 172.16.10.104
- tasks: ''
- - name: ping
ping: ''
它也行不通
我不知道如何编写clojure文件来生成这样的yaml文件,谢谢!
解决方案
尝试嵌套:name
地图:
(let [data [{:hosts "172.16.10.104"}
{:tasks [{:name "ping"}
{:ping ""}]}]]
(println (yaml/generate-string data)))
结果:
- {hosts: 172.16.10.104}
- tasks:
- {name: ping}
- {ping: ''}
推荐阅读
- visual-studio - 如何启用 Visual Studio Community 2017 调试 cscript
- c++ - 具有成员函数模板的类模板,其模板参数不是函数参数
- database - 用于用户统计的数据库设计?
- android - 无法理解这个内核函数和android内核命令行
- javascript - JavaScript 输入阿拉伯字母验证
- reactjs - 如果我使用 getItemLayout,FlatList 水平 onViewableItemsChanged 不会触发
- hadoop - Windows 中的 Nutch 1.14 给出异常 java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
- python-3.x - 将数据导入 SQL DB 时无法识别参数
- java - 如何在 Spring Security 中获取 userInformation?
- python - 从 model.ckpt.meta 中提取图 def