Страницы

Поиск по вопросам

среда, 18 декабря 2019 г.

Как выполнить команду если пакет установлен?

#nginx #puppet


Как написать манифест для puppet, чтобы он проверял, установлен ли пакет nginx, и
если установлен, то создавал файл?

Пробовал примерно так:

if ! defined(Package['nginx-full']) {
        file { "/opt/puppet/test_nginx4.tmp":
                ensure => "present",
                owner  => "root",
                group => "root",
                mode => '664',
    }
}

    


Ответы

Ответ 1



Решил данную задачу следующим способом: class base::nginx { file { "vim_nginx": ensure => 'present', path => '/tmp/puppet/vim_nginx.sh', source => 'puppet:///modules/base/vim_nginx.sh', mode => '774', } exec { "highlighting": command => 'bash /tmp/puppet/vim_nginx.sh', path => "/usr/bin:/usr/sbin:/bin", require => File['vim_nginx'], onlyif => 'test -e /etc/nginx/nginx.conf' } } Т.е. тут я создал скрипт, который устанавливает подсветку синтаксиса, копируется на все сервера, относящиеся к заданному классу. Далее отрабатывает проверка на наличие файла /etc/nginx/nginx.conf , что подтверждает установлен ли nginx или нет. Если да, то запускает скрипт. В принципе это можно использовать с любыми другими зависимостями или даже усовершенствовать логику работы.

Комментариев нет:

Отправить комментарий