我的任务是创建大约一百个用于木偶的文件。我正在使用包含特定于站点的IP和主机名信息的唯一文件名创建.yaml文件,这些文件必须具有相同的格式(最好来自模板)。
我想创建一个文件生成器,从输入文件(.csv?)中填充IP,子网,网络和主机名的变量。最好的方法是什么?
样本格式:
---
network::interfaces::interfaces:
eth0:
method: 'static'
address: '10.20.30.1'
netmask: '255.255.240.0'
broadcast: '10.20.30.255'
network: '10.20.30.0'
gateway: '10.20.30.1'
network::interfaces::auto:
- 'eth0'
hosts::host_entries:
HOSTNAME:
ip: '10.20.30.2'
hosts::purge_hosts: true
dhcpd::range_start: '10.20.30.11'
dhcpd::range_stop: '10.20.30.240'
dhcpd::gateway: '10.20.30.1'
hornetq::site: 'test'
答案 0 :(得分:0)
写一个这样的骨架:
network::interfaces::interfaces:
eth0:
method: 'static'
address: '__IP__'
netmask: '__MASK__'
broadcast: '__BC__'
network: '__NET__'
gateway: '__GW__'
等
使用类似
的循环生成文件cat input-file | while read OUTPUT IP MASK BC NET GW ; do
sed -e s/__IP__/$IP/ \
-e s/__MASK__/$MASK/ \
-e s/__BC__/$BC/ \
-e s/__NET__/$NET/ \
-e s/__GW__/$GW/ \
<$SKELETON >$OUTPUT
done
这假定输入文件中的fileds由空格分隔,并在第一列中显示相应输出文件的名称。