Различия между локальной 'марионеткой применяются' и 'марионеточный агент' к puppetmaster

Кто-то сказал мне однажды: "Платье для уровня задания, которого Вы пытаетесь достигнуть", и это должен быть один из лучшего совета, который я когда-либо слышал в своей профессиональной жизни.

4
задан 8 January 2012 в 23:16
3 ответа

Единственная хитрость, о которой я знаю, - это тип ресурса файл .

Резервное копирование замененных файлов ведет себя иначе, по умолчанию используется файловая корзина сервера вместо локальный файловый пакет.

Более важная вещь, о которой нужно знать, - это параметр source .


source => '/tmp/somepath/sshd_config',

С необработанным путем к файлу он всегда будет пробовать локальный путь.


source => 'puppet://puppetmaster1/modules/sshd/sshd_config',

С помощью puppet: // server / путь, он всегда будет пробовать удаленный путь.


source => 'puppet:///modules/sshd/sshd_config',

С пустой спецификацией сервера это становится интересным.

При локальном применении путь локального модуля марионетки используется для найти файл.

При сообщении марионеточному мастеру сервер, который дал ему манифест, рассматривается как сервер.


Кроме того, если вам нужно проявить творческий подход к источнику файла,вы можете указать параметр source в виде списка:

source => [ '/tmp/somepath/sshd_config', 'puppet:///modules/sshd/sshd_config'],

Первое место, где будет использоваться что-то найденное.

5
ответ дан 3 December 2019 в 02:37

Проблема заключалась в различии в способах выбора узлов. Код в исходном файле nodes.pp :

node /clunod\-wk\d+\.sub\.example\.local/ { )

, который правильно соответствует узлу с именем clunod-wk01234.sub.example.local. Это работало нормально, когда применение марионетки запускалось против локального манифеста марионетки. Но не удаленно.

Проблема заключалась в том, как строка localhost была определена в / etc / hosts .

Нерабочий:

127.0.0.1  localhost clunod-wk01234 clunod-wk01234.sub.example.local

Рабочий:

127.0.0.1  localhost clunod-wk01234.sub.example.local clunod-wk01234

Первая форма сообщала мастеру марионеток имя узла «clunod-wk01234», вторая форма сообщала полное доменное имя. Вторая форма удовлетворяет разделению узла , тогда как первая - нет. Это было исправлено путем изменения строк узлов, чтобы они не включали полное доменное имя, после чего все работало нормально.

Машины с удаленной марионеткой были обновленным образом, поэтому имели некоторые незначительные отличия от машин с локальной марионеткой. Одно из этих изменений заключалось в том, как была объявлена ​​одна строка в / etc / hosts . Теперь мы знаем.

Затем я обнаружил, что два обращения к файлам были написаны с использованием жестких путей, остальные использовали правильный синтаксис puppet: ///.

4
ответ дан 3 December 2019 в 02:37

Нет никакой разницы между 'локальными' и 'удаленными' правилами марионеток.

Можете ли вы опубликовать свой site.pp, чтобы мы могли проверить на наличие ошибок?

Используют ли сервер и клиенты один и тот же DNS-сервер? Отличаются ли их файлы /etc/resolv.conf строками «поиск» или «домен»?

Вы также можете запустить puppet с параметрами - debug --verbose --no-daemonize и получить больше вывод.

1
ответ дан 3 December 2019 в 02:37

Теги

Похожие вопросы