Назад | Перейти на главную страницу

Марионетка не применяет конфигурацию, но возвращается без ошибок

Использование Puppet 3.2.1 пытается настроить сервер / клиент, оба работают на одном хосте.

Я также использую puppet-dashboard и puppetdb.

Мой манифест / init.pp:

node 'my.fqdn' {
  file { '/tmp/test':
    ensure => present
}

Бег puppet agent --test --server my.fqdn --report где my.fqdn и панель управления определены в / etc / hosts

Урожайность:

Info: Retrieving plugin
Info: Loading facts in /etc/puppet/modules/concat/lib/facter/concat_basedir.rb
Info: Loading facts in /etc/puppet/modules/puppi/lib/facter/puppi_projects.rb
Info: Loading facts in /etc/puppet/modules/puppi/lib/facter/last_run.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppi_projects.rb
Info: Loading facts in /var/lib/puppet/lib/facter/concat_basedir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/last_run.rb
Info: Caching catalog for my.fqdn
Info: Applying configuration version '1369841032'
Notice: Finished catalog run in 0.08 seconds
Changes:
Events:
Resources:
          Skipped: 6
            Total: 7
Time:
   Config retrieval: 0.42
            Total: 0.42
         Last run: 1369841033
       Filebucket: 0.00
Version:
           Config: 1369841032
           Puppet: 3.2.1

файл /tmp/test никогда не создается!

Также;

На панели управления Puppet указано, что он не знает никаких узлов (например, отчеты никогда не достигают его)

puppet.conf для отчетов:

reports = store, http
reporturl = http://puppet.armed.us/reports/upload

Что здесь может происходить и как это исправить?

Бег puppet apply /etc/puppet/manifests/init.pp ДЕЙСТВИТЕЛЬНО работает, но не при попытке получить конфигурацию от мастера марионеток. Как будто получается пустой каталог.

*Редактировать:

puppet.conf:

[main]
  vardir      = /var/lib/puppet
  logdir      = /var/log/puppet
  rundir      = /var/run/puppet
  templatedir = /var/lib/puppet/templates
  ssldir      = $vardir/ssl
  usecacheonfailure = true
  user = puppet
  group = puppet

[agent]
  certname = my.fqdn
  server = my.fqdn
  pluginsync = true
  report = true
  reportserver = my.fqdn
  summarize = true
  graph = true
  listen = false
  runinterval = 1800
  classfile = $vardir/classes.txt
  localconfig = $vardir/localconfig

[master]
  masterport = 8140
  bindaddress = 0.0.0.0
  autosign = false
  storeconfigs = true
  environment = production
  manifest    = $confdir/manifests/site.pp
  modulepath  = /etc/puppet/modules:/usr/share/puppet/modules
  storeconfigs_backend = puppetdb
  reports = store, http
  reporturl = http://my.fqdn/reports/upload
  facts_terminus = active_record

И сертификаты:

root@my:~# puppet cert list --all
+ "my.fqdn" (SHA256) E1:F0:29:1...:31:93:F9

вам, вероятно, следует переименовать manifest / init.pp в manifest / site.pp, так как это то, что вы настроили в puppet.conf

Является my.fqdn на самом деле имя подписанного сертификата, которое мастер знает агента? Похоже, что имя сертификата может не соответствовать определению вашего узла, и поэтому он игнорирует разделы узла.

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

puppet agent --test --server my.fqdn --report --certname my.fqdn

Я не знаю, так ли это на вашем сайте, но мне нужен pluginsync = true, чтобы некоторая конфигурация марионетки работала. Без этого внутри /etc/puppet/puppet.conf на узле запуск марионетки не завершится неудачно, но не выполнит все, что я ожидал (например, с использованием file_line).

Я вижу, вы поместили его в главный файл puppet.conf, но проверьте, есть ли он и на узле.

Вы поместили эту директиву в свой узел puppet.conf в раздел [agent] (и перезапустили)? report = true

Мне интересно, понимает ли ваш марионеточный сервер, что вашим клиентом должен быть my.fqdn. Измените узел my.fqdn на узел по умолчанию и посмотрите, получите ли вы файл.