web-dev-qa-db-ja.com

Ruby一般に慣れていない人形ユーザー向けのRuby / ERBチートシートはありますか?

私はまだ人形を理解し始めており、RubyのERBシステムに基づいたテンプレートをいじり始めています。私はRuby一般的に、ERBのチートシートを知っている人はいますか、それとも手を汚していくつかのRuby基本?

3
ThatGraemeGuy

私はしばらく前にまったく同じ状況にありました。基本的に、puppetで使用されるerbテンプレートの場合、Rubyの知識はあまり必要ありません。ただし、それはパペットモジュールの複雑さと目的にも依存します。

たとえば、主にサーバー管理用の構成ファイルに使用する場合は、ほとんどの場合、IPアドレスやホスト名などを操作する必要があります。そして、最も一般的に使用されるRuby関数は、splitjoinです。

これらの関数やその他の関数をいじくり回す最も簡単な方法は、Rubyとそのインタラクティブなシェル、irbをインストールして、コードをテストすることです。だから...虎の巻、わかりません。私はスタックオーバーフローと#Rubyon ircで人々を悩ませました!ここにたくさんのテンプレートがあります https://github.com/alcy/pupmods/tree/master/puppet/templates/ (ひどく整理されています!)、それはあなたを助けるかもしれません。

Caseステートメントクエリに関しては、次のようなものがあります(可能なアプローチの1つ):

$ip1=inline_template('<%= ipaddress.split(".")[0..2].collect{|x| x}.join(".") %>')

$source = $ip1 ? {
  "10.0.0" => "puppet:///your-module-name/resolv.conf.1",
  "10.0.1" => "puppet:///your-module-name/resolv.conf.2",
  }

file {"/etc/resolv.conf":
  ensure => present,
  source => $source,
  }

そのテンプレート部分は次のように説明されます。DOT「。」が出現するたびにファクトから取得したクライアントマシンのIPアドレスを分割し、最初の3つの数値を収集し、各要素の間にDOTを付けて結合します。これを変数として保存しますip1。この値に従って、puppetのファイルサーバーから必要なresolv.confファイルを提供します。

2
alcy