Puppet: различия между версиями
Строка 44: | Строка 44: | ||
<pre># puppet agent -t</pre> | <pre># puppet agent -t</pre> | ||
==== Создание манифестов и модулей puppet ==== | ==== Создание манифестов и модулей puppet ==== | ||
Для создания манифестов и модулей для puppet необходимо наличие | Для создания манифестов и модулей для puppet необходимо наличие следующих каталогов в {{path|/etc/puppet}}: | ||
<pre>code | <pre>code | ||
modules | modules | ||
Строка 51: | Строка 51: | ||
Внесем корректировки в файл puppet.conf: | Внесем корректировки в файл puppet.conf: | ||
<pre> | <pre>[master] | ||
environment=production</pre> | environment=production</pre> | ||
Это добавляет окружение '''production''' в сервер. | Это добавляет окружение '''production''' в сервер. | ||
В папке manifests,необходимо создать файл site.pp<br> | |||
В папке {{path|/etc/puppet/manifests}},необходимо создать файл {{path|site.pp}}<br> | |||
Содержание файла: | Содержание файла: | ||
< | <source lang="ruby">file { "/etc/passwd": | ||
owner => "root", | owner => "root", | ||
group => "bin", | group => "bin", | ||
mode => 644, | mode => "644", | ||
}</ | }</source> | ||
Все обновление манифестов происходят автоматически. На агентах опрос сервера на предмет новых манифестов составляет 30 минут. <br> | Все обновление манифестов происходят автоматически. На агентах опрос сервера на предмет новых манифестов составляет 30 минут. <br> | ||
Для ускорения обновления конфигурации на агенте используется команда:<br> | Для ускорения обновления конфигурации на агенте используется команда:<br> | ||
Ключ --debug используется для наглядной демонстрации применения манифеста на агенте. | # puppet agent -t --debug | ||
Ключ --debug используется для наглядной демонстрации применения манифеста на агенте. | |||
Проверка выполнения конкретного манифеста: | |||
<source lang="text" highlight="1"># puppet apply /etc/puppet/manifests/site.pp | |||
Notice: Compiled catalog for puppet in environment production in 0.02 seconds | |||
Notice: /Stage[main]/Main/File[/etc/passwd]/group: group changed 'root' to 'bin' | |||
Notice: Applied catalog in 0.03 seconds</source> | |||
===== puppetd ===== | ===== puppetd ===== | ||
{{todo|* В соответствии с http://reductivelabs.com/trac/puppet/wiki/CertificatesAndSecurity при первом запуске puppetd клиента, необходимо обратиться к серверу с запросом подписания сертификата. Для этого puppetd должен быть запущен с ключом <tt>--waitforcert</tt>. Предлагаю исправить /etc/init.d/puppetd -- добавить режим sign, при котором puppetd стартует с этой опцией. | |||
* В | * Необходимо добавить в /etc/init.d/puppetd проверку на задание переменной PUPPET_SERVER, чтобы при старте происходило подключение к последнему. А то висит процесс, вроде всё работает, но на самом деле клиент ничего не делает -- не знает ip-сервера.}} | ||
* Необходимо добавить в /etc/init.d/puppetd проверку на задание переменной PUPPET_SERVER, чтобы при старте происходило подключение к последнему. А то висит процесс, вроде всё работает, но на самом деле клиент ничего не делает -- не знает ip-сервера. | |||
[[Category: puppet]] | [[Category: puppet]] | ||
[[Категория:Управление конфигурациями]] | |||
{{Category navigation|title=Управление конфигурациями|category=Управление конфигурациями|sortkey={{SUBPAGENAME}}}} | |||
= Готовые манифесты = | = Готовые манифесты = | ||
Версия от 16:32, 19 апреля 2018
Черновик
Установка puppet agent и puppet server
Необходимо установить следующие пакеты:
# apt-get install puppet puppet-server
Настройка puppet master
Прежде всего нужно настроить ваш dns сервер на резолва адресов. Для примера можно внести настройки в файл hosts (/etc/hosts):
127.0.0.1 localhost.localdomain localhost 10.10.3.107 puppetserver 10.10.3.5 puppetclient
После установки всех пакетов настройки dns, конфигурационные файлы puppet находятся в директории /etc/puppet/ Файл настройки - puppet.conf:
[main] certname=puppetserver server=puppetserver [master] certname=puppetserver environment=production
В секции main находятся глобальные настройки сервиса, а в секции master, находятся настройки сервера puppet.
Параметр server говорит клиенту, с каким сервером работать.
Параметр certname задает имя с которым клиент будет ображаться к серверу.
Запуск сервисов:
# systemctl start puppet # systemctl start puppetmaster
Для подписи всех сертификатов необходимо выполнить команду:
# puppet cert sign –all
Настройка агента puppet
Для того, чтобы натсроить агент puppet, нужно установить пакет puppet:
# apt-get install puppet
Для примера так же на клиенте был настроен файл hosts, как показано выше.
Файл настроек агента puppet.conf выглядит следующим образом:
[agent] server=puppetserver
Для проверки работы агента необходимо выполнить команду:
# puppet agent -t
Создание манифестов и модулей puppet
Для создания манифестов и модулей для puppet необходимо наличие следующих каталогов в /etc/puppet:
code modules environments manifests
Внесем корректировки в файл puppet.conf:
[master] environment=production
Это добавляет окружение production в сервер.
В папке /etc/puppet/manifests,необходимо создать файл site.pp
Содержание файла:
file { "/etc/passwd":
owner => "root",
group => "bin",
mode => "644",
}
Все обновление манифестов происходят автоматически. На агентах опрос сервера на предмет новых манифестов составляет 30 минут.
Для ускорения обновления конфигурации на агенте используется команда:
# puppet agent -t --debug
Ключ --debug используется для наглядной демонстрации применения манифеста на агенте.
Проверка выполнения конкретного манифеста:
# puppet apply /etc/puppet/manifests/site.pp
Notice: Compiled catalog for puppet in environment production in 0.02 seconds
Notice: /Stage[main]/Main/File[/etc/passwd]/group: group changed 'root' to 'bin'
Notice: Applied catalog in 0.03 seconds
puppetd
- В соответствии с http://reductivelabs.com/trac/puppet/wiki/CertificatesAndSecurity при первом запуске puppetd клиента, необходимо обратиться к серверу с запросом подписания сертификата. Для этого puppetd должен быть запущен с ключом --waitforcert. Предлагаю исправить /etc/init.d/puppetd -- добавить режим sign, при котором puppetd стартует с этой опцией.
- Необходимо добавить в /etc/init.d/puppetd проверку на задание переменной PUPPET_SERVER, чтобы при старте происходило подключение к последнему. А то висит процесс, вроде всё работает, но на самом деле клиент ничего не делает -- не знает ip-сервера.
Готовые манифесты
Обновление системы
Для обновления системы каждый день в промежутке между 5-8 утра можно использовать следующий манифест:
schedule { 'update':
range => '5 - 8',
period => daily,
repeat => 1,
}
exec { 'apt-update':
command => '/usr/bin/apt-get update',
}
exec { 'apt-distupgrade':
require => Exec['apt-update'],
command => '/usr/bin/apt-get dist-upgrade -y',
schedule => 'update',
}