puppet и inline_epp и использование hiera для доставки контента

Можно ли использовать inline_epp, используя строковую переменную, подобную этой?

                    "htaccess": {
                    "content": [
                        "<% include stdlib -%>",
                        "AuthType Basic ",
                        "AuthUserFile <%= $auth_file %>",
                        "Require valid-use"
                    ],
                    "params": {
                        "auth_name": "Bootstrap content for provisioning",
                        "auth_file": "file_path"
                    }
                }

и (некоторые.pp):

                $htacces = $sub_attrs['htaccess']
                $content = $htacces['content']
                $data = join($content, "\n")

                $auth_file = "sgsdgsdfgsdfg"

                notice inline_epp($data)

Это результат в строке уведомления: Недействительный EPP: это имя не имеет никакого эффекта. Значение было создано, а затем забыто (одно или несколько предшествующих выражений могут иметь неправильную форму).

Идея заключается в использовании данных hiera для доставки контента в epp. Использование puppet 5.5.2 и Ubuntu 16.04


person matsukan    schedule 15.07.2018    source источник


Ответы (1)


Похоже, здесь происходит несколько вещей.

Во-первых, правильный ли синтаксис этой функции notice? Puppet Cookbook показывает notice либо в скобках notice("message"), либо в синтаксисе класса Puppet. notify { "message": }).

Кроме того, inline_epp принимает хэш параметров, используемых для заполнения EPP. См. документацию Puppet на inline_epp. В вашем случае это будет что-то вроде inline_epp($data, { auth_file => $auth_file }).

И, наконец, EPP нуждается в строке вверху со списком его параметров. В вашем случае это должно быть что-то вроде <%- | String $auth_file | -%>. См. документацию Puppet по файлам EPP.

person Jon    schedule 16.07.2018