Подтвердить что ты не робот

Puppet - как применить модуль к кукольному клиенту node?

только начиная с Puppet, действительно нового в этом мире.

У меня

  • CentOS 6 Puppet Master
  • Кукольный клиент CentOS 6

В Master есть один модуль:

 puppet module list
/etc/puppet/modules
âââ mstanislav-yum (v1.0.0)

Итак, я хочу применить тот же модуль к моему кукольному клиенту, но я не могу или не знаю, почему

[email protected]: puppet agent --test
Info: Retrieving plugin
Info: Caching catalog for puppetclient
Info: Applying configuration version '1355737643'
Finished catalog run in 0.10 seconds

но клиенту нет никаких изменений: -/

Любая идея?

4b9b3361

Ответ 1

Вы еще не объявили модуль (назначили его вашему node) еще...

Добавьте это на сайт .pp:

node 'fqdn of client' {
  include yum
} 

Затем вы можете запустить puppet agent -t, чтобы увидеть его в действии.

Ответ 2

вы можете использовать следующую команду для просмотра вывода сведений

марионеточный агент --test --trace

Ответ 3

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

Отредактируйте файл site.pp:

node "default" {
    hiera_include('classes')
}

После этого вы можете вызвать классы в каждом конкретном файле node.yaml с простым:

classes:
  -class1
  -class2

Я использую его на Ubuntu, отлично работает.

Ответ 4

Вы можете попробовать режим --noop (режим сухого хода).

puppet agent --server=YOUR_PUPPET_SERVER_NAME --onetime --no-daemonize --verbose --noop

Это покажет изменения, которые он должен был сделать, но физически ничего не изменит. Удаление --noop сделает все эти изменения.

Проверьте документ для объяснения других параметров в приведенной выше команде. http://docs.puppetlabs.com/man/agent.html

Ответ 5

Два основных способа применения модуля к node - добавить одно из следующих значений в site.pp

node 'node <certname> (normally the fqdn)' {
    require <module name>
}

или

node 'node <certname>' {
    include <module name>
}

Затем запустите в node puppet agent --test

require похож на include, но создает отношения зависимостей и позволяет объявлять одни и те же классы более одного раза, что хорошо, если вы хотите совпадающие классы ролей.

Ответ 6

  • Сначала установите модуль из кукольной кузницы
  • Откройте файл site.pp и добавьте следующие строки
node default {
       # include module_name
         include apache
}

Затем запустите на вашем марионеточном агенте следующее.

sudo puppet agent --test

Ответ 7

Если вы добавили объявление node в другое место, которое не является site.pp(это рекомендуемый способ сделать это), не забудьте добавить "import" config к site.pp, который ссылался бы на node.

Вот как выглядит мой конфиг. Основной манифест DIR с узлами DIR и файл site.pp:

drwxr-xr-x. 3 root root 4096 May 19 07:23 nodes
-rw-r--r--. 1 root root   62 Jun  4 16:31 site.pp

Это объявление node в моих узлах DIR:

node 'fqdn of client' {
  include yum
} 

Наконец, site.pp в главном манифесте DIR импортирует node следующим образом:

import 'nodes/*.pp'

node default { }

Ответ 8

Вы должны создать определение узла, которое содержит "include" класса, который вы хотите применить.

Ответ 9

Запуск

puppet apply -e "include mstanislav-yum"

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

Ответ 10

Живой пример из моего производства:

node 'client.io' {

class { '::selinux':
mode => 'disabled',
type => 'targeted',
}

class { 'zabbix::agent':
server => '192.168.245.11',
serveractive => '192.168.245.11',
}

include firewall
include mysql::server

}