2016-12-01 7 views
2

ファイル/etc/fstabのを/dev/shmマウントに追加しようとしています。ファイルの既存のオプションにこの値を追加するにはどうすればよいですか?次のコードを実行しようとするとエラーが発生します。パペットマウントタイプ:オプション属性値の追加

class osharden { 
    mount { "/dev/shm" : 
    device => 'tmpfs', 
    options +> 'nosgid', 
    fstype => tmpfs, 
    } 
} 

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Syntax error at '+>'; expected '}' at /etc/puppet/modules/osharden/manifests/init.pp:4 on node

答えて

3

plussignmentオペレータ(+>)は、すでに宣言リソースのオーバーライド特性の文脈における配列値属性に値を追加に適用されます。 The options attribute of the Mount resource typeは、その値として単一の文字列をとり、リソースの通常の宣言ではオーバーライドではなくplussignmentを使用しようとしています。言い換えれば、plussignmentはこの仕事のために働くつもりはありません。

ターゲットシステムの現在の状態に関する情報は、ノードファクトを介してパペットカタログコンパイラに伝えられます。ここで言うように、パペットが以前のマウントオプションを考慮に入れたい場合、その情報をカタログコンパイラに伝えるためのカスタムまたは外部の事実を記述する必要があります。パペット自体は、ファクトコードをクライアントに配布することができます。次に、nosgidを含む初期オプションに基づいて希望のオプション値を計算し、計算オプションを使用してマウントオプションを管理します。

"nosgid"を追加するだけではなく、既にそのオプションが追加されている場合は、さらに複雑になるので、sgidnosgidの両方がオプションに含まれないようにしてください。 「defaults、nosgid」などの結果を避けることもできます。

正直言って、それはおそらくそれが価値よりも面倒だと思います。元の値に関係なく、マウントオプション文字列を管理することをお勧めします。例:

mount { "/dev/shm" : 
    ensure => 'mounted', 
    device => 'tmpfs', 
    options => 'rw,nosuid,nosgid,dev,exec,async', 
    fstype => 'tmpfs', 
    atboot => 1, 
    pass => 0, 
} 
関連する問題