Я написал модуль Puppet «Сообщение дня», который влияет на все прокси-серверы в моей компании. В файле шаблона у меня есть следующий оператор if:
<% if @hostname !~ /^haproxy\d+/ and @hostname =~ /proxy\d+/ -%>
if [ "$(cat $LBMEMFILE)" = "0" ]; then
echo -e "\e[35m Membeship in LB: Yes"
elif [ "$(cat $LBMEMFILE)" = "2" ]; then
echo -e "\e[35m Membeship in LB: No $LISTMEMFILE"
fi
<% end -%>
Это означает:
Если имя хоста - proxy0-100, а не ^ haproxy0-100, добавьте строку в сценарий motd.
Но почему-то это утверждение не работает.
Я также пробовал использовать «если», но безуспешно.
Если я уберу инструкцию после «и» в первой строке, это сработает как шарм.
Я получаю вот такую ошибку:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `empty?' for nil:NilClass at /etc/puppet/environments/production/manifests/site.pp:1 on node haproxy02.company.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Что я делаю не так?
заранее спасибо
Я обнаружил проблему ... в .yaml
файл, вызвавший ошибку. Спасибо за вашу помощь.