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

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Содержание

Черновик

Установка pappet agent и pappet server

Установка пакетов puppet производиться из репозиториев altlinux:

apt-get install puppet & apt-get install puppet-server

Настройка puppet master

Прежде всего нужно настроить ваш dns сервер на резолва адресов. Для примера можно внести настройки в файл hosts (cd /etc):

  1. 127.0.0.1 localhost.localdomain localhost
  2. 10.10.3.107 puppetserver
  3. 10.10.3.5 puppetclient


После установки всех пакетов настройки dns, директория для настройки сервиса находиться в папке puppet: cd /etc/puppet/

Файл настройки - puppet.conf:

  1. [main]
  2. certname=puppetserver
  3. server=puppetserver
  1. [master]
  2. certname=puppetserver
  3. environment=production

Под заголовком main находятся глобальные настройки сервиса, а под заголовком master, находятся настройки сервера puppet.
Certname и server говорит клиенту, с каким сервером работать.

Запуск сервисов:

  1. systemctl start puppet
  2. systemctl start puppetmaster

Для подписи всех сертификатов необходимо выполнить команду:
puppet cert sign –all


Настройка агента puppet

Для того, чтобы натсроить агент puppet, нужно установить пакет puppet:

  1. apt-get install puppet

Для примера так же на клиенте был настроен файл hosts, как показано выше.
Файл настроек агента puppet.conf выглядит следующим образом:

  1. [agent]
  2. server=puppetserver

Для проверки работы агента необходимо выполнить команду:
puppet agent -t


Создание манифестов и модулей puppet

Для создания манифестов и модулей для puppet необходимо наличие следующий папок:

  1. code
  2. modules
  3. environments
  4. manifests

Например в папке будет папка test в ней будут следующие файлы: Внесем корректировки в файл puppet.conf:

  1. environment=production

Это добавляет окружение production в сервер.
В папке manifests,необходимо создать файл site.pp
Содержание файла:

  1. file { "/etc/passwd":
  2. owner => "root",
  3. group => "bin",
  4. mode => 644,
  5. }

Все обновление манифестов происходят автоматически. На агентах опрос сервера на предмет новых манифестов составляет 30 минут.
Для ускорения обновления конфигурации на агенте используется команда:

  1. 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',
}
 
Личные инструменты