Согласно 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"]]
}
}