私はPuppetを初めて使用し、構成ファイルをセットアップするモジュールを作成しています。問題は、複数のクライアントが私のモジュールを使用する場合、システムに応じて編集する必要があることです。テンプレートはこの問題を解決する方法であると聞いています。しかし、設定ファイルを設定するためのテンプレートの使用方法を取得できません。
テンプレートを使用してファイルを構成する簡単な例を私に教えてもらえれば、本当に役に立ちます。たとえば、テンプレートを使用してApacheサイトで利用可能なデフォルトの構成ファイルを設定する方法や、新しい人形ユーザーを助けると思われる他の例を挙げてください。ところで私はUbuntuマシンを使っています。
Puppetテンプレートの使用に関するPuppetLabsのドキュメントには、TracサイトのApache構成の例があります。これはあなたが始めるのに十分なはずです。
OPのリクエストに従って、簡単な例を示します。かなり大きくて複雑なファイルなので、Apacheのデフォルト設定ではなくNTPを使用しています。NTPははるかに単純です。
ディレクトリは次のようになります。
/etc/puppet/modules/ntp/manifests
/templates
部分的なコンテンツ/etc/puppet/modules/ntp/manifests/init.pp
(テンプレートを定義する部分のみ):
$ntp_server_suffix = ".ubuntu.pool.ntp.org"
file { '/etc/ntp.conf':
content => template('ntp/ntp.conf.erb'),
owner => root,
group => root,
mode => 644,
}
の内容/etc/puppet/modules/ntp/templates/ntp.conf.erb
:
driftfile /var/lib/ntp/drift
<% [1,2].each do |n| -%>
server <%=n-%><%=@ntp_server_suffix%>
<% end -%>
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
パペットで実行すると/etc/ntp.conf
、次のような結果になります。
driftfile /var/lib/ntp/drift
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 127.0.0.1
これは、いくつかの異なる概念を示しています。
$ntp_server_suffix
変数(@ntp_server_suffix
テンプレートのインスタンス変数()としてアクセスできるものなど)<%
と%>
ルビーによって実行されます<%=
とは、%>
ルビーで実行されて出力されます<%=
とは-%>
、実行して出力ルビーでと改行文字が抑制されます。これがテンプレートの理解に役立つことを願っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加