0

モジュールを使用していくつかの Apache 仮想ホストを構成しようとしていpuppetlabs/apacheます。私の問題は${name}変数にあります。DocumentRoot が に設定されることを期待して/var/www/atoms.oneいましたが、代わりに に設定されてい/var/www/mainます。

私は何を間違っていますか?

私のマニフェスト:

class { apache: }

apache::vhost { 'atoms.one':
    port          => '80',
    serveraliases => [ "*.${name}" ],
    docroot       => "/var/www/${name}",
    directories   => [
        { path => "/var/www/${name}", },
    ],
}
4

1 に答える 1

1

定義された型の body 内で、特別な変数$nameは、定義された型インスタンスの名前/タイトルを表します。しかし、あなたは定義された型の本体を提示していません。むしろ、定義された型のインスタンスの宣言を提示しており、それは最上位のスコープに表示されています。$name宣言は、内外で異なる何かを意味するためのスコープを作成しません。

定義型本体の範囲外の意味についてのドキュメントを見つけるのに苦労して$nameいますが、クラス内ではクラス名を表すことを経験から知っています。「メイン」がもっともらしい値であるトップスコープの名前を見ていると思います。

肝心$nameなのは、それを使用しようとしている種類のショートカットを提供しないということです。代わりに、独自の定義済み型ラッパーを の周りに作成し、apache::vhostそこでショートカットを実行することもできます。または、独自の変数を作成して の代わりに使用することもできます$name

于 2015-12-26T02:45:48.830 に答える