Puppet
Материал из ALT Linux Wiki
(→Обновление системы) |
|||
Строка 2: | Строка 2: | ||
==== Черновик ==== | ==== Черновик ==== | ||
+ | |||
+ | ==== Установка pappet agent и pappet server ==== | ||
+ | |||
+ | Установка пакетов puppet производиться из репозиториев altlinux: | ||
+ | |||
+ | <code> | ||
+ | apt-get install puppet & apt-get install puppet-server | ||
+ | </code> | ||
+ | |||
+ | ==== Настройка puppet master ==== | ||
+ | Прежде всего нужно настроить ваш dns сервер на резолва адресов. | ||
+ | Для примера можно внести настройки в файл hosts ({{path|cd /etc}}): | ||
+ | |||
+ | <code> | ||
+ | #127.0.0.1 localhost.localdomain localhost | ||
+ | #10.10.3.107 puppetserver | ||
+ | #10.10.3.5 puppetclient | ||
+ | </code> | ||
+ | |||
+ | |||
+ | После установки всех пакетов настройки dns, директория для настройки сервиса находиться в папке puppet: {{path|cd /etc/puppet/}} | ||
+ | |||
+ | Файл настройки - puppet.conf: | ||
+ | |||
+ | <code> | ||
+ | #[main] | ||
+ | #certname=puppetserver | ||
+ | #server=puppetserver | ||
+ | |||
+ | #[master] | ||
+ | #certname=puppetserver | ||
+ | #environment=production | ||
+ | </code> | ||
+ | |||
+ | Под заголовком main находятся глобальные настройки сервиса, а под заголовком master, находятся настройки сервера puppet.<br> | ||
+ | Certname и server говорит клиенту, с каким сервером работать. | ||
+ | |||
+ | Запуск сервисов:<br> | ||
+ | <code> | ||
+ | #systemctl start puppet | ||
+ | #systemctl start puppetmaster </code> | ||
+ | |||
+ | Для подписи всех сертификатов необходимо выполнить команду:<br> | ||
+ | <code> puppet cert sign –all</code> | ||
+ | |||
+ | |||
+ | ==== Настройка агента puppet ==== | ||
+ | |||
+ | Для того, чтобы натсроить агент puppet, нужно установить пакет puppet:<br> | ||
+ | <code> | ||
+ | #apt-get install puppet | ||
+ | </code> | ||
+ | |||
+ | Для примера так же на клиенте был настроен файл hosts, как показано выше.<br> | ||
+ | Файл настроек агента puppet.conf выглядит следующим образом:<br> | ||
+ | <code> | ||
+ | #[agent] | ||
+ | #server=puppetserver | ||
+ | </code> | ||
+ | |||
+ | Для проверки работы агента необходимо выполнить команду:<br> | ||
+ | <code>puppet agent -t</code> | ||
+ | |||
+ | |||
+ | ==== Создание манифестов и модулей puppet ==== | ||
+ | Для создания манифестов и модулей для puppet необходимо наличие следующий папок: | ||
+ | <code> | ||
+ | #code | ||
+ | #modules | ||
+ | #environments | ||
+ | #manifests | ||
+ | </code> | ||
+ | |||
+ | Например в папке будет папка test в ней будут следующие файлы: | ||
+ | Внесем корректировки в файл puppet.conf: | ||
+ | <code> | ||
+ | #environment=production | ||
+ | </code> | ||
+ | Это добавляет окружение production в сервер. <br> | ||
+ | В папке manifests,необходимо создать файл site.pp<br> | ||
+ | Содержание файла: | ||
+ | <code> | ||
+ | #file { "/etc/passwd": | ||
+ | #owner => "root", | ||
+ | #group => "bin", | ||
+ | #mode => 644, | ||
+ | #} | ||
+ | </code> | ||
+ | |||
+ | Все обновление манифестов происходят автоматически. На агентах опрос сервера на предмет новых манифестов составляет 30 минут. <br> | ||
+ | Для ускорения обновления конфигурации на агенте используется команда:<br> | ||
+ | |||
+ | <code> | ||
+ | #puppet agent -t --debug | ||
+ | </code> | ||
+ | Ключ --debug используется для наглядной демонстрации применения манифеста на агенте. | ||
+ | |||
===== puppetd ===== | ===== puppetd ===== |
Версия 14:01, 27 июня 2017
Содержание |
Черновик
Установка pappet agent и pappet server
Установка пакетов puppet производиться из репозиториев altlinux:
apt-get install puppet & apt-get install puppet-server
Настройка puppet master
Прежде всего нужно настроить ваш dns сервер на резолва адресов. Для примера можно внести настройки в файл hosts (cd /etc):
- 127.0.0.1 localhost.localdomain localhost
- 10.10.3.107 puppetserver
- 10.10.3.5 puppetclient
После установки всех пакетов настройки dns, директория для настройки сервиса находиться в папке puppet: cd /etc/puppet/
Файл настройки - puppet.conf:
- [main]
- certname=puppetserver
- server=puppetserver
- [master]
- certname=puppetserver
- environment=production
Под заголовком main находятся глобальные настройки сервиса, а под заголовком master, находятся настройки сервера puppet.
Certname и server говорит клиенту, с каким сервером работать.
Запуск сервисов:
- 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 необходимо наличие следующий папок:
- code
- modules
- environments
- manifests
Например в папке будет папка test в ней будут следующие файлы:
Внесем корректировки в файл puppet.conf:
- environment=production
Это добавляет окружение production в сервер.
В папке manifests,необходимо создать файл site.pp
Содержание файла:
- file { "/etc/passwd":
- owner => "root",
- group => "bin",
- mode => 644,
- }
Все обновление манифестов происходят автоматически. На агентах опрос сервера на предмет новых манифестов составляет 30 минут.
Для ускорения обновления конфигурации на агенте используется команда:
- puppet agent -t --debug
Ключ --debug используется для наглядной демонстрации применения манифеста на агенте.
puppetd
TODO
- В соответсвии с 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', }