1
erb
をepp
に移行し、hiera_hash
からlookup
に移行しようとします。 現在のエラー:人形エンプボックステンプレートエラー(無効なEPP:構文エラー時)
Error: Could not retrieve catalog from remote server:
Error 500 on SERVER: Server Error: Evaluation Error:
Error while evaluating a Function Call, epp(): Invalid EPP:
Syntax error at 'Port ' at /etc/puppetlabs/code/environments/production/modules/sshd/templates/sshd_config.epp:4:24
at /etc/puppetlabs/code/environments/production/modules/sshd/manifests/init.pp:23:16 on node puppettestnode
私init.pp:
class sshd {
#$sshd_config = hiera_hash('sshd')
$sshd=lookup('sshd', {merge => 'hash'})
package { 'openssh-server':
ensure => present,
before => Service['sshd'],
}
file { '/etc/ssh':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
require => Package['openssh-server']
}->
file { '/etc/ssh/sshd_config':
owner => 'root',
group => 'root',
mode => '0644',
ensure => file,
content => epp("${module_name}/sshd_config.epp"),
}~>
service { 'sshd':
ensure => running,
require => [
Package['openssh-server'],
File['/etc/ssh/sshd_config'],
],
}
}
sshd_config.epp:
###Managed by Puppet###
# What ports, IPs and protocols we listen for
<% if $sshd["port"] -%>
Port <%= $sshd["port"] %>
<% else -%>
Port 22
<% end -%>
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
<% if $sshd['listen'] -%>
ListenAddress <%= $sshd['listen'] %>
<% else -%>
ListenAddress 0.0.0.0
<% end -%>
common.yml:
人形サーバから---
sshd:
port: '22'
listen: '0.0.0.0'
人形の検索:
puppet lookup sshd --merge unique --environment production --explain
Searching for "sshd"
Global Data Provider (hiera configuration version 5)
Using configuration "/etc/puppetlabs/puppet/hiera.yaml"
Merge strategy unique
Hierarchy entry "Per-node data"
Path "/etc/puppetlabs/code/environments/production/hiera/nodes/puppettestserver"
Original path: "nodes/%{::fqdn}"
Path not found
Hierarchy entry "Common data"
Path "/etc/puppetlabs/code/environments/production/hiera/common.yaml"
Original path: "common.yaml"
Found key: "sshd" value: {
"port" => "22",
"listen" => "0.0.0.0"
}
Merged result: [
{
"port" => "22",
"listen" => "0.0.0.0"
}
]
それが可能だ場合は助けてください。
多くのありがとうございますが、私は別のエラー '評価エラー:演算子 '[]'がUndef Valueに適用されません。ノードpuppettestnode' – beliy
'$ sshd'の/etc/puppetlabs/code/environments/production/modules/sshd/templates/sshd_config.epp:4:7で' $ sshd'が定義されていない場合は、クラスで完全修飾された変数名を使用するか'epp(" $ sshd:sshd)= "$ sshd:=> $ sshd:' $ sshd:sshd') 'epp関数の呼び出しでそれを渡します。詳細はhttps://docs.puppet.com/puppet/4.10/lang_template_epp.html#accessing-variablesを参照してください。 –
もう一度多くのおかげです。 Variant'epp( "$ {module_name} /sshd_config.epp"、{"sshd" => $ sshd}) 'はうまく動作しますが、使用するためには' $ sshd :: sshd' – beliy