Я совсем новичок в devops/ci/cd, так что потерпите меня.
В настоящее время я получаю конфигурацию манифеста марионетки, настроенную для проверки образа докера. Попробую расставить:
У меня есть мастер-сервер puppet со следующей конфигурацией:
- Версия кукловода: 5.5.10-4ubuntu3
- На обоих серверах Linux 20.04.
- Все размещено на AWS
/etc/puppet/code/environments/production/manifests/site.pp
узел по умолчанию {
включить «докер»
docker::image { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }
}
Каждый раз, когда я пробую новую команду проверки в .pp, я перезапускаю главный сервер puppet с помощью следующей команды:
sudo systemctl перезапустить кукольный мастер
Я установил модуль под названием garethr-docker на оба своих сервера — агент и мастер.
На ведомом/агентном сервере у меня есть этот образ докера:
Йоргемаурисиодев/ubuntu-dockerfile-dev-v1
Для первого шага я просто хочу проверить, существует ли изображение на моем подчиненном сервере. Позже я придумаю, как убедиться, что он работает или собран с помощью Dockerfile.
На подчиненном/агентском сервере я запускаю:
Агент sudo puppet — тест
И я получаю следующее сообщение об ошибке:
Ошибка: не удалось получить каталог с удаленного сервера: ошибка 500 на СЕРВЕРЕ: ошибка сервера: ошибка оценки: ошибка при оценке вызова функции, не удалось найти класс :: docker для ip-123-123-123-123.us-east- 2.compute.internal (файл: /etc/puppet/code/environments/production/manifests/site.pp, строка: 2, столбец: 5) на узле ip-123-123-123-123.us-east-2 .compute.internal
Предупреждение: не использовать кеш для отказавшего каталога.
Ошибка: не удалось получить каталог; пропуск бега
Кто-нибудь знает, что я делаю не так с файлом манифеста марионетки?
Редактировать 1:
Я сделал некоторые изменения, которые были предложены. Теперь мой файл имеет другое имя и изменил содержимое:
/etc/puppet/code/environments/production/manifests/init.pp
включить «докер»
класс { 'докер':
версия => 'последняя',
}
docker::image { 'jorgemauriciodev/ubuntu-dockerfile-dev-v1': }
Все еще возвращает мне то же сообщение об ошибке.
Вот полное сообщение:
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: предупреждение: устаревший Object#=~ вызывается в Puppet::Transaction::Report; всегда возвращает ноль
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: предупреждение: устаревший Object#=~ вызывается в Puppet::Transaction::Report; всегда возвращает ноль
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
Информация: Использование настроенной среды «производство»
Информация: Получение фактов о плагинах
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: предупреждение: устаревший Object#=~ вызывается в Puppet::Transaction::Report; всегда возвращает ноль
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: предупреждение: URI.unescape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
Информация: Получение плагина
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: предупреждение: устаревший Object#=~ вызывается в Puppet::Transaction::Report; всегда возвращает ноль
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: предупреждение: URI.unescape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
Информация: Получение локалей
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:315: предупреждение: устаревший Object#=~ вызывается в Puppet::Transaction::Report; всегда возвращает ноль
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/indirector/request.rb:272: предупреждение: URI.unescape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
Ошибка: не удалось получить каталог с удаленного сервера: ошибка 500 на СЕРВЕРЕ: ошибка сервера: ошибка оценки: ошибка при оценке вызова функции, не удалось найти класс :: docker для ip-172-31-21-116.us-east- 2.compute.internal (файл: /etc/puppet/code/environments/production/manifests/init.pp, строка: 1, столбец: 1) на узле ip-172-31-21-116.us-east-2 .compute.internal
Предупреждение: не использовать кеш для отказавшего каталога.
Ошибка: не удалось получить каталог; пропуск бега
/usr/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:126: предупреждение: $SAFE станет обычной глобальной переменной в Ruby 3.0
/usr/lib/ruby/vendor_ruby/puppet/util.rb:461: предупреждение: URI.escape устарел
/usr/lib/ruby/vendor_ruby/puppet/file_system/uniquefile.rb:126: предупреждение: $SAFE станет обычной глобальной переменной в Ruby 3.0
Редактировать 2:
Я установил дополнительные модули на главный сервер и подчиненный/агентский сервер с помощью этой команды:
Модуль sudo puppet установить puppetlabs-docker --version 4.1.2
И он все еще возвращает мне сообщение об ошибке, но теперь кажется, что это другое. Так что, вероятно, проблема с синтаксисом сейчас.
Вот важная часть сообщения.
Ошибка: Не удалось получить каталог с удаленного сервера: Ошибка 500 на СЕРВЕРЕ: Ошибка сервера: Ошибка оценки: Ошибка при оценке заявления о ресурсе, повторяющееся объявление: класс [Docker] уже объявлен; невозможно повторно объявить (файл: /etc/puppet/code/environments/production/manifests/init.pp, строка: 3) (файл: /etc/puppet/code/environments/production/manifests/init.pp, строка: 3, столбец: 1) на узле ip-123-123-123-123.us-east-2.compute.internal
Предупреждение: не использовать кеш для отказавшего каталога.
Ошибка: не удалось получить каталог; пропуск бега
Помимо этого сообщения, он все еще возвращает мне эти предупреждения, но их список намного больше. Тем не менее, я не думаю, что это беспокоит в настоящее время.