簡體   English   中英

木偶和Apache:$ {name}給出“ main”而不是類名

[英]Puppet and Apache: ${name} gives 'main' instead of class name

我正在嘗試使用puppetlabs/apache模塊配置一些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}", },
    ],
}

在已定義類型的主體內部 ,特殊變量$name表示已定義類型實例的名稱/標題。 但是您沒有提供定義類型的主體,而是提供了一個定義類型的實例的聲明,並且該聲明出現在頂級范圍內。 該聲明不會為$name創建一個范圍,以表示$name的范圍與沒有它的含義不同。

我在查找定義類型主體范圍之外的$name含義文檔時遇到了麻煩,但是我從經驗中知道,在類內部它代表類名。 我想您會看到頂級范圍的名稱,對於它來說“ main”是一個合理的值。

底線是$name不提供您嘗試使用它的快捷方式。 相反,您可以圍繞apache::vhost創建自己的已定義類型包裝器,並在那里進行快捷方式。 另外,您可以創建自己的變量來代替$name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM