以下のディレクトリとファイル構造があります。これらの以下のフォルダー内のすべての yaml ファイルから 1 つの yaml ファイルを作成したいと考えています。
[root@localhost test]# tree
.
├── group_vars
│ └── all.template
├── host_vars
│ └── host.template
└── vars
├── CASSANDRA
├── CQLSH
├── CSYNC2
├── DSE_OPSCENTER
├── DSE_OPSCENTER_AGENT
├── logging.template
├── packages_vars.template
├── UDM
└── user_pub_keys
結果は次のようになります (yaml ファイルの例)
group_vars/all.template:
<all the all.template data at this indentation>
host_vars/host.template:
<all the host.template data at this indentation>
vars/CASSANDRA:
<all the CASSANDRA data at this indentation>
vars/CQLSH:
<all the CQLSH data at this indentation>
... so on
フォルダー内でこれらのファイルを結合できますが、上記で説明した yaml の形式をどのようにもたらすことができるかわかりません。
私が試したことは?
ファイルに書き込んでから、<folder_name>/file_name>
4つのスペースを与えて、内容をそのまま書き出すというアイデアを思いつきました。
以下のようなもの
with open(actual_path) as i: # actual path is just the path to the file
outfile.write('vars#'+fname) # vars is the folder name and fname is the file name. # is just any separator for the file
outfile.write(i.read()) # here I can add 4 spaces
outfile.write('\n')
これは、yaml ファイルを希望どおりに作成する良い方法ですか? もしそうなら、4つのスペースの後にファイルを(そのまま)書き始める方法を知る必要があります。