[英]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.