web-dev-qa-db-ja.com

PuppetでMintインスタンスをどのように処理する必要がありますか?

私はPuppetを使用してVMをセットアップすることがあります。これらのVMでLinuxMintを実行することがあります。使用したいPuppetモジュールがたくさんありますが、LSBの事実を確認すると、奇妙なLinuxMintバージョンから反動します。

たとえば、公式のPuppet Labs Javaモジュールを使用してJDKなどをインストールしています。params.ppファイルは次のようになります(多くを切り取っています)。

class Java::params {

  case $::osfamily {
    'RedHat': {...}
    'Debian': {
      case $::lsbdistcodename {
        default: { fail("unsupported release ${::lsbdistcodename}") }
        'lenny', 'squeeze', 'lucid', 'natty': {
          $Java  = {
            'jdk' => {
              'package'          => 'openjdk-6-jdk'...
            },
            'jre' => {
              'package'          => 'openjdk-6-jre-headless...
            },
          }
        }
        'wheezy', 'jessie', 'precise','quantal','raring','saucy', 'trusty', 'utopic': {
             ...I could add 'rebecca' to the above list, and that would probably do it
          $Java =  {
            'jdk' => {
              'package'          => 'openjdk-7-jdk'...
            },
            'jre' => {
              'package'          => 'openjdk-7-jre-headless'
            },
            'Oracle-jre' => {...},
            'Oracle-jdk' => {...},
          }
        }
      }
    }
...
    default: { fail("unsupported platform ${::osfamily}") }
  }

mintインスタンスでエージェントを実行すると、最終的に次のようになります。

エラー:リモートサーバーからカタログを取得できませんでした:サーバー上のエラー400:サポートされていないリリースrebeccaノードsome.Host.comの/etc/puppet/modules/Java/manifests/params.pp:50

rebeccaは、現在扱っているLinux Mintのバージョンであり、UbuntuTrustyに対応しています。

しかし、各MintバージョンはUbuntuバージョンに基づいており、それは正常に機能するはずです。 (少なくとも試してみるには十分です。)モジュールや他のすべてのモジュールを変更するのではなく、同等のUbuntulsb情報を返すようにfacterに伝えたいと思います。それはコミュニティへのサービスかもしれませんが...

誰かがこの問題を解決しようとしましたか?アイデア?

4
Ladlestein

このページ は、環境変数を設定することでFacterファクトをオーバーライドできることを意味しているようです。

# show the operating system we are running (retrieved from facter)
$ puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Fedora

# override $operatingsystem for testing purposes
$ FACTER_operatingsystem=Debian puppet -e 'notify { "We are running on $operatingsystem": }'
notice: We are running on Debian

その場合、変数FACTER_lsbdistcodename=trustyを使用して各rebeccaホストを構築できますか?

私はこれをテストしていませんが、事実は単にノードによって報告されたものであり、そのため、簡単にオーバーライド/編集できるはずです...

1
shearn89