2015-07-04 2 views
0

Вкратце, изменения на сайте.pp отражаются только на агентах после перезапуска мастера кукол.Кукольный агент Puppet 4.2 получает изменения только после перезапуска мастера

Предполагается, что это установка OOTB на отдельных главных и узловых виртуальных машинах с минимальными изменениями в конфигурации - в основном dns_alt_names и/etc/hosts + сертификаты). Между хозяином и узлом не возникает проблем.

На мой мастер меня есть файл, /etc/puppetlabs/code/environments/production/manifests/site.pp содержащий:

node "slave1.home" { 
    user { "kevin": 
     ensure  => present, 
     membership => minimum, 
     shell  => "/bin/bash", 
    } 

} 

После запуска кукольный агента -t на узле агента (и улов происходит только после перезапуска мастера) это изменение затронуто. Я вижу, что файл был передан от мастера к моему узлу агента в местоположении, /opt/puppetlabs/puppet/cache/client_data/catalog/slave1.home.json , который содержит сведения о пользователе «kevin» и пользователь будет успешно создан.

Если изменить site.pp на кукловода (например, таким образом, пользователь теперь «kevino22y», к примеру. Я тогда (возможно, ошибочно) попытаться скомпилировать для узла slave1.home

например

кукловодом --compile slave1.home

на терминале я вижу

Notice: Compiled catalog for slave1.home in environment production in 0.28 seconds 
{ 
    "tags": ["settings","slave1.home","node"], 
    "name": "slave1.home", 
    "version": 1436006611, 
    "environment": "production", 
    "resources": [ 
    { 
     "type": "Stage", 
     "title": "main", 
     "tags": ["stage"], 
     "exported": false, 
     "parameters": { 
     "name": "main" 
    } 
    }, 
    { 
     "type": "Class", 
     "title": "Settings", 
     "tags": ["class","settings"], 
     "exported": false 
    }, 
    { 
     "type": "Class", 
     "title": "main", 
     "tags": ["class"], 
     "exported": false, 
     "parameters": {Notice: Compiled catalog for slave1.home in environment  production in 0.28 seconds 
{ 
    "tags": ["settings","slave1.home","node"], 
    "name": "slave1.home", 
    "version": 1436006611, 
    "environment": "production", 
    "resources": [ 
    { 
     "type": "Stage", 
     "title": "main", 
     "tags": ["stage"], 
     "exported": false, 
     "parameters": { 
     "name": "main" 
     } 
    }, 
    { 
     "type": "Class", 
     "title": "Settings", 
     "tags": ["class","settings"], 
     "exported": false 
    }, 
    { 
    "type": "Class", 
    "title": "main", 
    "tags": ["class"], 
    "exported": false, 
    "parameters": { 
     "name": "main" 
    } 
    }, 
    { 
     "type": "Node", 
     "title": "slave1.home", 
     "tags": ["node","slave1.home","class"], 
     "exported": false 
    }, 
    { 
     "type": "User", 
     "title": "kevino22y", 
     "tags": ["user","kevino22y","node","slave1.home","class"], 
     "file":  "/etc/puppetlabs/code/environments/production/manifests/site.pp", 
     "line": 2, 
     "exported": false, 
     "parameters": { 
     "ensure": "present", 
     "membership": "minimum", 
     "shell": "/bin/bash" 
    } 
    } 
    ], 
    "edges": [ 
    { 
    "source": "Stage[main]", 
    "target": "Class[Settings]" 
    }, 
    { 
    "source": "Stage[main]", 
    "target": "Class[main]" 
    }, 
    { 
    "source": "Class[main]", 
    "target": "Node[slave1.home]" 
    }, 
    { 
    "source": "Node[slave1.home]", 
    "target": "User[kevino22y]" 
    } 
], 
"classes": [ 
    "settings", 
    "slave1.home" 
] 
} 

Если я после этого вернуться к моей slave1.home и бежать, кукольного агента -t

Я вижу новую копию оригинального /opt/puppetlabs/puppet/cache/client_data/catalog/slave1.home.json с оригинальным пользователем «» Кевина так изменяется, что я ожидал появляются после компиляции, нет.

Так что кажется, что процесс получения агента хорош, но извлекает устаревшую информацию. Это только освежает, если я остановлюсь и запустил мастер-кукольный мастер, а не после компиляции.

Так что, кажется, мне не хватает выполнения шага, который выполняется перезапуском марионеточного мастер-процесса.

Возможно, это ударит меня, когда кто-то скажет мне, что я пропустил. Спасибо за помощь с вопросом новичка.

Кевин

--- редактировать ---

Тем не менее пытается диагностировать и добавлен новый сервер (агент называется cs1)

Если я: [корень @ cs1 Desktop] # кукольный agent -t Информация: Получение файлов плагинов Информация: Получение плагина Инфо: Каталог кэширования для cs1.home Информация: Применение конфигурации версии '1436032639' Примечание: Прикладной каталог в 0.02 секунд [корень @ cs1 Desktop] #

Затем на хозяине с помощью: кукловода --no-демоном --debug> /tmp/master.txt и хвостового В журнале

Debug: Routes Registered: 
Debug: Route /^\/puppet\// 
Debug: Route /^\/puppet-ca\// 
Debug: Route /.*/ 
Debug: Evaluating match for Route /^\/puppet\// 
Debug: Evaluating match for Route /v3/ 
Debug: Evaluating match for Route /^\/environments$/ 
Debug: Did not match path ("/node/cs1.home") 
Debug: Evaluating match for Route /.*/ 
Info: Caching node for cs1.home 
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing 
Debug: node supports formats: pson yaml binary 
Debug: Routes Registered: 
Debug: Route /^\/puppet\// 
Debug: Route /^\/puppet-ca\// 
Debug: Route /.*/ 
Debug: Evaluating match for Route /^\/puppet\// 
Debug: Evaluating match for Route /v3/ 
Debug: Evaluating match for Route /^\/environments$/ 
Debug: Did not match path ("/file_metadatas/pluginfacts") 
Debug: Evaluating match for Route /.*/ 
Debug: Warning: calling Plugins.search with empty module path. 
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing 
Debug: file_metadata supports formats: pson yaml binary 
Debug: Routes Registered: 
Debug: Route /^\/puppet\// 
Debug: Route /^\/puppet-ca\// 
Debug: Route /.*/ 
Debug: Evaluating match for Route /^\/puppet\// 
Debug: Evaluating match for Route /v3/ 
Debug: Evaluating match for Route /^\/environments$/ 
Debug: Did not match path ("/file_metadatas/plugins") 
Debug: Evaluating match for Route /.*/ 
Debug: Warning: calling Plugins.search with empty module path. 
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing 
Debug: file_metadata supports formats: pson yaml binary 
Debug: Routes Registered: 
Debug: Route /^\/puppet\// 
Debug: Route /^\/puppet-ca\// 
Debug: Route /.*/ 
Debug: Evaluating match for Route /^\/puppet\// 
Debug: Evaluating match for Route /v3/ 
Debug: Evaluating match for Route /^\/environments$/ 
Debug: Did not match path ("/catalog/cs1.home") 
Debug: Evaluating match for Route /.*/ 
Info: Caching node for cs1.home 
Notice: Compiled catalog for cs1.home in environment production in 0.00 seconds 
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing 
Debug: catalog supports formats: pson yaml dot binary 
Debug: Routes Registered: 
Debug: Route /^\/puppet\// 
Debug: Route /^\/puppet-ca\// 
Debug: Route /.*/ 
Debug: Evaluating match for Route /^\/puppet\// 
Debug: Evaluating match for Route /v3/ 
Debug: Evaluating match for Route /^\/environments$/ 
Debug: Did not match path ("/report/cs1.home") 
Debug: Evaluating match for Route /.*/ 
Debug: Received report to process from cs1.home 
Debug: Processing report from cs1.home with processor Puppet::Reports::Store 

I «Не совсем уверен, откуда приходит« .home ». Я читал в Интернете, что он может быть загружен домашним маршрутизатором (?), Но мои fqdn имеют формат cs1.localdomain, но/etc/hosts содержат xxx.xxx.xxx.xxx cs1.localdomain cs1 cs1.home

- Edit 2 -

FYI, когда работает кукольный агент -t я получаю 5 файлов, доставленных от сервера, которые не отражают скомпилированные изменения.

[root @ cs1 Desktop] # find/opt/puppetlabs/-type f -mmin -3 -exec ls -al {} \; -rw-rw ---- 1 корень root 1290 июл 6 14:56 /opt/puppetlabs/puppet/cache/client_data/catalog/cs1.home.json -rw-r ----- 1 корень root 7628 Jul 6 14:56 /opt/puppetlabs/puppet/cache/state/last_run_report.yaml -rw-r ----- 1 корень root 29 июл 6 14:56/opt/puppetlabs/puppet/cache/state/resources .txt -rw-r - r-- 1 корень root 407 июл 6 14:56 /opt/puppetlabs/puppet/cache/state/last_run_summary.yaml -rw-rw ---- 1 корень root 3655 июл 6 14:56 /opt/puppetlabs/puppet/cache/state/state.yaml -rw-r ----- 1 корень root 18 июл 6 14:56 /opt/puppetlabs/puppet/cache/state/classes.txt

+0

Как долго вы ждете после редактирования манифеста? –

+0

Я мог оставить его на ночь. Я установил частоту 5 м, так как я только тестирую – KevinY

+0

Я мог бы оставить ее на ночь. Я установил частоту 5 м, так как я только тестирую. Я просто изменил его на 30 (за 30 секунд, чтобы увидеть, не изменилось ли это), но никакого эффекта. Компиляция записывается в stdout, но также должна быть перенаправлена ​​на файл, чтобы он обрабатывался при перезапуске мастера. – KevinY

ответ

0

Этот сценарий произошел из-за того, что были внесены изменения в конфигурацию сети на марионеточном мастере. Сетевая услуга была перезапущена, и изменения были проверены вручную (например, имя хоста и изменения в/etc/hosts). Решением было просто перезапустить марионеточного мастера.

0

Вопрос: Когда мы вносим изменения в окружающую среду = производство, мы всегда должны перезапускать кукольный мастер, иначе новые изменения не будут выбраны.

Почему? потому что на кукольном мастере /etc/puppet/puppet.conf environment_timeout = неограниченно. Если мы хотим изменить это поведение, мы должны установить environment_timeout = 0

о environment_timeout = неограниченное Этот параметр указывает, что кукловод будет кэшировать каталог, она существует для увеличения производительности.

, но в тестовой среде мы часто хотим, чтобы наши изменения были применены немедленно.

сделать это делать две вещи на кукловода,

  1. создать environment.conf Вашей директории среды для примера/и т.д./кукольный/окружающая среда/TEST

  2. добавить environment_timeout = 0

на кукольный клиент (где вы хотите применить каталог).

  1. кукольный агент -t --environment = TEST

вы будете видеть ваши изменения вступят в силу.

нить помог мне найти решение

(а) среда конфигурации: https://docs.puppet.com/puppet/3.7/environments_configuring.html

Смежные вопросы