Puppet

Материал из ALT Linux Wiki

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

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


Содержание

Черновик

Установка 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',
}
 
Личные инструменты