Страница 1 из 1

puppet manifests: upgrade debian

Добавлено: 2016-08-01 11:48:18
Гость
добрый день. Простой вопрос - как правильно обновить дебиан через puppet?
Репы поправил, кеш обновил, остается последний шаг:

Код: Выделить всё

   ....
   file { "/etc/environment":
        content => inline_template("DEBIAN_FRONTEND=noninteractive")
    }

    exec { 'upgrade OS':
        path => ["/usr/bin", "/usr/sbin"],
        environment => ['DEBIAN_FRONTEND=noninteractive'],
        command     => 'apt-get  -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --assume-no dist-upgrade',
        require     => [Class[fresh_apt_cache]]
    }
Но при попытке применения выдает ошибку:

Код: Выделить всё

 err: /Stage[main]/Manage_os::Upgrade_os/Exec[upgrade OS]/returns: change from notrun to 0 failed: apt-get  -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" --assume-no dist-upgrade returned 100 instead of one of [0] at /etc/puppet/environments/production/modules/manage_os/manifests/upgrade_os.pp:40

Если запускать руками эту комманду apt-get -y ... , то все норм отрабатывает, ось ничего не запрашивает и автоматом апррейдит. Так понимаю это связно с тем, что в процессе апгрейда делается рестарт puppet клиента. Как решается данная простейшая задача?
P.S. используя ansible - это все делается из коробки

puppet manifests: upgrade debian

Добавлено: 2016-08-01 11:54:50
Гость
если посмотреть модуль puppet module install gajdaw-ubuntu, то там внутри всего лишь:

Код: Выделить всё

lass ubuntu::upgrade {

    Exec { path => [
        '/usr/local/sbin',
        '/usr/local/bin',
        '/usr/sbin',
        '/usr/bin',
        '/sbin',
        '/bin'
    ]}

    exec { 'ubuntu::upgrade':
        command     => 'apt-get upgrade -y',
        environment => ['DEBIAN_FRONTEND=noninteractive'],
        require     => [Class[ubuntu::update]]
    }

}
при таком варианте у меня применение отпадает по таймауту, т.к. при таких параметрах ОС все равно запрашивает действия