Согласно https://docs.gitlab.com/runner/install/linux-repository.html#upgrading-to-gitlab-runner-10 репозитории изменились, поэтому мы пытаемся обновить gitlab-runner всех узлов. Нам нужно удалить старое репо и добавить новое, а затем обновить пакет.
В нашем манифесте марионетки [1] мы обновляем репозиторий, проверяем наличие последней версии пакета, и после этого обновления мы должны запустить сценарий, прежде чем убедиться, что служба запущена. Наша проблема в том, что мы должны запускать этот скрипт только после обновления.
Прямо сейчас, даже если репо обновлено, пакет - нет. Пакет обновляется только при запуске distro_sync или при запуске «yum update gitlab-runner», а не при запуске марионетки. Кажется, что пакет никогда не обновляется, как если бы он проверял последнюю версию старого репо вместо сравнения с недавно добавленным репо.
[1]
# Installs a GitLab-CI runner for CERN GitLab
class gitlab::gitlab_ci_runner (
String $ensure = 'latest', # passed to the gitlab-runner package. Can be used to force a version
) {
ensure_resource('yumrepo', 'gitlab-runner', {
descr => 'gitlab-runner for EL6/7',
baseurl => "http://packages.gitlab.com/runner/gitlab-runner/el/${::operatingsystemmajorrelease}/${::architecture}",
gpgcheck => 0,
enabled => 1,
exclude => absent,
})
ensure_packages(['gitlab-runner'], {
ensure => $ensure,
require => Yumrepo['gitlab-runner'],
})
exec {"post-install":
command => 'sudo /usr/share/gitlab-runner/post-install',
provider => shell,
onlyif => 'test -e /usr/share/gitlab-runner/post-install',
refreshonly => true,
subscribe => Package['gitlab-runner'],
}
service { 'gitlab-runner':
ensure => running,
enable => true,
require => [Package['gitlab-runner'], Exec["post-install"]]
}
}
ensure => <value>
оценивается предварительной выборкой ресурсов, поэтому метаданные репозитория для последней версии обрабатываются до приложения каталога. Следовательно, изменение подписки репо не влияет наensure => latest
ресурса пакета, как это происходит во время приложения после предварительной выборки. Хотя это очень вероятно, я не могу однозначно сказать, что это так, поэтому оставляю это как комментарий. - person Matt Schuchard   schedule 10.10.2018