私はこれを機能させるのに苦労していて、どこが間違っているのかわかりません。誰かが私に修正方法を教えてもらえますか?
基本的に、nodes.ppに配列を取得します。この配列は、テンプレートファイルを循環して各要素の行を書き込むことにより、テンプレートファイルで使用されます。
nodes.pp:
node test{
net::addr { 'routing':
$routes = {
route1 => {
address => '172.29.54.70',
netmask => '255.255.255.0',
gateway => '172.29.54.65',
dev => 'eth0',
},
route2 => {
address => '192.168.1.3',
netmask => '255.255.255.0',
gateway => '192.168.1.1',
dev => 'eth3',
},
}
}
}
puppetクライアントを実行すると、次のようになります。
エラー:リモートサーバーからカタログを取得できませんでした:サーバーでエラー400:環境生成を解析できませんでした:'='での構文エラー。ノードtest.myincorp.netの/etc/puppet/manifests/nodes/test.pp:3にある「}」が必要です
addr.pp
define net::addr (
$address='',
$netmask='',
$gateway='',
$dev='',
) {
file { "route-${name}":
ensure => 'present',
mode => '0644',
owner => 'root',
group => 'root',
path => "/etc/sysconfig/network-scripts/route-${name}",
content => template('network/addr.erb'),
}
}
テンプレート:addr.erb:
<% routes.each do |route| -%>
<%= route['address'] %> <%= route['netmask'] %> <%= route['gateway'] %> <%= route['dev'] %>
<% end -%>
<% end -%>
<% end -%>
誰かが上記の修正を手伝ってもらえますか?
ありがとうダン