Автор Тема: puppet / Запуск скрипта единожды  (Прочитано 2902 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Всем привет!

Как сказать puppet, чтобы он выполнил команду только один раз на клиенте ?
exec { 'asd':
    command => 'echo asd',
    path => '/usr/bin:/usr/sbin:/bin:/sbin',
    provider => shell,
    }

Сноси Винду, переходи на Линукс ! :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: puppet / Запуск скрипта единожды
« Ответ #1 : 27.03.2015 18:44:28 »
Видимо, никто не сталкивался...

exec
Позволяет выполнять консольные команды, скрипты непосредственно при запуске puppet.
command — команда для запуска. Если опущена, равна заголовку. Адрес команд должен быть задан полностью, если не прописаны пути для поиска в атрибуте path.
path — пути для поиска команд. Можно задать сразу несколько разделяя их двоеточием ':'. Чтобы не указывать этот параметр у каждого ресурса exec, можно задать этот параметр по умолчанию в самом начале манифеста, например, так: Exec { path => '/usr/bin:/bin:/usr/sbin:/sbin' }.
cwd — текущая директория (переменная окружения $PWD в bash). Если директория не существует, команда не запустится.
creates — файл, который создаёт команда. Если атрибут задан, то команда не запустится, если файл существует.
environment — любые другие переменные окружения, которые необходимя для запуска команды. Имеет преимущество над арибутом path, то есть данную переменную можно переопределить.
group, user — группа и пользователь с правами которых выполнять данную команду.
logoutput — включать ли вывод команды в лог, равно true, false и on_failure (только в случае выхода с ошибкой).
onlyif — задаёт проверочную команду. Основная команда (атрибут command) будет выполнена, только если эта команда выполнится без ошибок (код выхода будет 0), например:
exec { "logrotate":
  path   => "/usr/bin:/usr/sbin:/bin",
  onlyif => "test `du /var/log/messages | cut -f1` -gt 100000"
}
При этом onlyif может проверять массив команд и выполнить основную команду только тогда, когда все команды массива выполнятся:
onlyif => ["test -f /tmp/file1", "test -f /tmp/file2"]


ИМХО Подходит creates и onlyif. Буду пробовать...
Сноси Винду, переходи на Линукс ! :)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 159
    • Домашняя страница
Re: puppet / Запуск скрипта единожды
« Ответ #2 : 27.03.2015 21:03:53 »
Для управления линуксовыми машинами стоит посмотреть ansible.
Андрей Черепанов (cas@)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: puppet / Запуск скрипта единожды
« Ответ #3 : 27.03.2015 21:34:31 »
Для управления линуксовыми машинами стоит посмотреть ansible.
Интересно, конечно, но не знаю когда доберусь посмотреть...
Сноси Винду, переходи на Линукс ! :)