Связь марионетки с вложенными функциями

Я использую официальный модуль Puppet apt, чтобы добавить эту панель запуска Java и установить Oracle Java 8.

  apt::ppa{ 'ppa:webupd8team/java': }

  package {
      "oracle-java8-installer":
        ensure => 'installed',
  }

Когда модуль apt добавляет панель запуска, он уведомляет другой манифест о запуске 'apt-get update'.

apt / manifestests / ppa.pp

exec { "add-apt-repository-${name}":
  environment => $_proxy_env,
  command     => "/usr/bin/add-apt-repository ${options} ${name}",
  unless      => "/usr/bin/test -s ${::apt::sources_list_d}/${sources_list_d_filename}",
  user        => 'root',
  logoutput   => 'on_failure',
  notify      => Exec['apt::update::apt_update'],
  require     => $_require,
}

Проблема в том, что я не могу убедиться, что источник обновление запускается до начала установки.

Используя 'require' или 'before' обновление запускается после установки (добавить источник -> установить Java -> apt-get update), subscribe возвращает цикл зависимостей и не устанавливает никаких связей. перед обновлением моих источников.

Какое решение?

Используя код Фрэнка:

apt::ppa{ 'ppa:webupd8team/java': }

package {
          "oracle-java8-installer":
                ensure => 'installed',
                require => Apt::Ppa['ppa:webupd8team/java'],
}   

Я получаю следующее сообщение об ошибке:

==> xxx: Notice: / Stage [main] / Main / Node [xxx] / Apt :: Ppa [ppa: webupd8team / java] / Exec [add-apt-repository-ppa: webupd8team / java] / возвращает: t get убедитесь, что исходное обновление запущено до начала установки.

Используя 'require' или 'before' обновление запускается после установки (добавить источник -> установить Java -> apt-get update), subscribe возвращает цикл зависимостей и не устанавливает никаких связей. перед обновлением моих источников.

Какое решение?

Используя код Фрэнка:

apt::ppa{ 'ppa:webupd8team/java': }

package {
          "oracle-java8-installer":
                ensure => 'installed',
                require => Apt::Ppa['ppa:webupd8team/java'],
}   

Я получаю следующее сообщение об ошибке:

==> xxx: Notice: / Stage [main] / Main / Node [xxx] / Apt :: Ppa [ppa: webupd8team / java] / Exec [add-apt-repository-ppa: webupd8team / java] / возвращает: t get убедитесь, что исходное обновление запущено до начала установки.

Используя 'require' или 'before' обновление запускается после установки (добавить источник -> установить Java -> apt-get update), subscribe возвращает цикл зависимостей и не устанавливает никаких связей. перед обновлением моих источников.

Какое решение?

Используя код Фрэнка:

apt::ppa{ 'ppa:webupd8team/java': }

package {
          "oracle-java8-installer":
                ensure => 'installed',
                require => Apt::Ppa['ppa:webupd8team/java'],
}   

Я получаю следующее сообщение об ошибке:

==> xxx: Notice: / Stage [main] / Main / Node [xxx] / Apt :: Ppa [ppa: webupd8team / java] / Exec [add-apt-repository-ppa: webupd8team / java] / возвращает: выполнено успешно

==> xxx: Ошибка: выполнение '/ usr / bin / apt-get -q -y -o DPkg :: Options :: = - force-confold install oracle-java8-installer' вернул 100: Чтение списков пакетов ...

==> xxx: Построение дерева зависимостей ...

==> xxx: Чтение информации о состоянии ...

==> xxx: E: Невозможно найти пакет oracle-java8-installer

==> xxx: Ошибка: / Stage [main] / Main / Node [xxx] / Package [oracle-java8-installer] / убедитесь: изменение с очищенного на настоящее не удалось: выполнение '/ usr / bin / apt-get -q -y -o DPkg :: Options :: = - force-confold install oracle-java8-installer 'вернул 100: Чтение списков пакетов ...

==> xxx: Построение дерева зависимостей ...

==> xxx: чтение информации о состоянии ...

==> xxx: E: невозможно найти пакет oracle-java8-installer

==> xxx: Notice: / Stage [main] / Apt :: Обновление / Exec [apt_update]: пакет зависимостей [oracle-java8-installer] имеет ошибки: true

==> xxx: Предупреждение: / Stage [main] / Apt :: Update / Exec [apt_update]: пропуск из-за сбоя dependencies

==> xxx: Примечание: / Stage [main] / Apt :: Update / Exec [apt_update]: инициировано «обновление» из 1 события

Используя это:

package {
          "oracle-java8-installer":
                ensure => 'installed',
                require => Exec['apt::update::apt_update'],
}

Я получаю эту ошибку:

Error: Failed to apply catalog: Could not find dependency Exec[apt::update::apt_update] for Package[oracle-java8-installer]
0
задан 19 January 2016 в 09:47
1 ответ

Ваши выводы сбивают с толку. require действительно поможет вам.

package {
  "oracle-java8-installer":
    ensure  => 'installed',
    require => Apt::Ppa['ppa:webupd8team/java'],
}
0
ответ дан 5 December 2019 в 10:59

Теги

Похожие вопросы