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