apt-puppetlabs сначала делают репо - PullRequest
1 голос
/ 15 марта 2019

на моем сервере puppetserver я использую модуль puppetlabs-apt для настройки репозиториев. И я использую Hiera, чтобы получить данные для репозиториев. Если я запускаю его, я получаю сообщение, что dirmngr не может быть установлен, потому что его нельзя найти в репозиториях. Эта ошибка возникает из-за того, что puppet пытается установить dirmngr до того, как он сделает репо. И в модуле требуется dirmngr.

Есть ли способ заставить модуль сначала делать репозитории, а затем разрешить ему установить dirmngr?

мой код такой

class {'apt':
purge =>{
"/etc/apt/sources.list =>true",
},
}

1 Ответ

0 голосов
/ 16 марта 2019

Если я понимаю проблему, вы должны быть в состоянии сделать что-то вроде этого:

$dirmngr_apt_source = ...

class { 'apt':
  purge => {
    "/etc/apt/sources.list" => true
  }
}

Apt::Source[$dirmngr_apt_source] -> Package['dirmngr']

Дальнейшее объяснение:

  • Переменная $dirmngr_apt_source предназначена для заполнения источником Apt, в котором находится пакет dirmngr. (Полный отказ от ответственности: я не знаю много об Ubuntu.)
  • Хотя класс Apt объявляет ресурсы Apt::Source[$dirmngr_apt_source] и Package['dirmngr'], вы все равно можете объявить отношения между этими ресурсами извне класса, как я делал там.

Кроме того, это, на мой взгляд, немного хак, и похоже, что это, возможно, ошибка или недостаток дизайна в модуле Apt.

То есть, учитывая, что модуль Apt управляет источниками Apt узла Linux, а пакет dirmngr зависит от источников Apt, в модуле не должно быть предположения, что пакет dirmngr может быть найден до конфигурирования Удачные источники. (Или если это допустимое предположение, то, возможно, ему нужна лучшая документация?)

Итак, вы можете рассмотреть вопрос об ошибке или проверить, есть ли она уже.

...