Установка и настройка Puppet.
Установка и настройка Puppet.
В данной статье мы рассмотрим установку и настройку системы управления конфигурациями Puppet.
Устанавливать Puppet будем на Ubuntu 14.04 LTS.
Создайте DNS запись A для сервера Puppet.
Устанавливаем NTP клиент.
apt-get -y install ntp
Синхронизируем время на сервере Puppet и клиенте.
ntpdate pool.ntp.org
Скачиваем пакет Puppet Labs.
wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
Устанавливаем пакет.
dpkg -i puppetlabs-release-trusty.deb
Обновляем кэш пакетов .
apt-get update
Устанавливаем Puppet.
apt-get install puppetmaster-passenger
Фиксируем версию Puppet.
Просматриваем установленную версию.
puppet help | tail -n 1
Далее создаем файл /etc/apt/preferences.d/00-puppet.pref
В файле меняем версию на версию полученную из предыдущей команды (в примере это 3.6)
Package: puppet puppet-common puppetmaster-passenger Pin: version 3.6* Pin-Priority: 501
Настройка сертификатов .
Удаляем установленные сертификаты.
sudo rm -rf /var/lib/puppet/ssl
Настраиваем конфигурацию Puppet. Для этого открывам файл конфигурации /etc/puppet/puppet.conf и приводим к виду:
[main] logdir=/var/log/puppet vardir=/var/lib/puppet ssldir=/var/lib/puppet/ssl rundir=/var/run/puppet factpath=$vardir/lib/facter certname = puppet dns_alt_names = puppet,puppet.nyc2.example.com [master] # These are needed when the puppetmaster is run by passenger # and can safely be removed if webrick is used. ssl_client_header = SSL_CLIENT_S_DN ssl_client_verify_header = SSL_CLIENT_VERIFY
В данном файле в секции dns_alt_names указываются DNS имена сервера Puppet.
Более подробную документацию по настройке конфигурации Puppet можно найти тут
Создаем новый сертификат.
puppet master --verbose --no-daemonize
Просматриваем сертификат.
puppet cert list -all
Запускаем Apache2
service apache2 start
Перейдем к установке Puppet агента на клиентскую машину.
Скачиваем пакет Puppet Labs
wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
Устанавливаем пакет.
dpkg -i puppetlabs-release-trusty.deb
Обновляем кэш пакетов.
apt-get update
Устанавливаем Puppet agent.
apt-get install puppet
Включим Puppet агент.
Открываем файл — /etc/default/puppet
Изменяем содержимое на это:
START=yes
Блокируем версию Puppet.
Создаем файл /etc/apt/preferences.d/00-puppet.pref
В строке Pin: version указываем версию Puppet.
Перейдем к настройке агента.
Открываем файл /etc/puppet/puppet.conf
И в поле server указываем наш Puppet сервер.
[agent] server = puppet.nyc2.example.com
Запускаем сервис Puppet.
service puppet start
Для тестирования работоспособности выполните команду
puppet agent --test
Теперь перейдем на сервер Puppet и подпишем сертификат агента.
puppet cert sign "ubuntu01.domain.local"
Выполняем puppet agent —test еще раз
Вывод должен быть таким:
Info: Caching certificate for ca Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml Info: Creating a new SSL certificate request for ubuntu01.domain.local Info: Certificate Request fingerprint (SHA256): 0E:7A:26:D9:45:29:31:7F:88:E0:AF:75:50:4E:B7:DE:C5:1F:A4:99:AE:6B:F8:2E:0E:8A:F9:37:5B:6C:DE:32 Info: Caching certificate for ca
Теперь рассмотрим примеры управления конфигурациями.
Перейдем на сервер Puppet.
Конфигурации Puppet хранятся в папке /etc/puppet/manifests
Создадим файл манифеста /etc/puppet/manifests/site.pp
Рассмотрим пример создания файла example, в папке /root с содержимым Test 123 с правами 644
В файл /etc/puppet/manifests/site.pp добавляем следующие строки:
file {'/root/example':
ensure => present,
mode => 0644,
content => "Test 123",
}
Теперь откроем клиент и выполним puppet agent —test
Проверяем папку /root
Файл example создался.
Рассмотрим пример создания папки
file { "/etc/site-conf":
ensure => "directory",
}
Создание папки с правами
file { "/var/log/admin-app-log":
ensure => "directory",
owner => "root",
group => "wheel",
mode => 750,
}
Cron задание
cron { 'update_cron':
ensure => 'present',
command => '/bin/bash /root/update',
user => 'root',
hour => '12',
minute => '00',
weekday => '1',
}
Установку deb пакета
package { "tzdata":
provider => dpkg,
ensure => latest,
source => "/home/user/tzdata_2014h-2_all.deb"
}
Установка пакета из репозиториев
package { "screen":
ensure => "installed"
}
Установка нескольких пакетов
package { "screen": ensure => "installed" }
package { "strace": ensure => "installed" }
package { "sudo": ensure => "installed" }
Удаление пакетов
package { "screen":
ensure => "absent"
}
Удаление пакета и конфигурационных файлов
package { "screen":
ensure => "purged"
}
Выполнить команду
exec { "refresh_cache":
command => "refresh_cache 8600",
path => "/usr/local/bin/:/bin/",
# path => [ "/usr/local/bin/", "/bin/" ], # alternative syntax
}
Запустить сервис
service { "cron":
ensure => "running",
}
Запуск конфигурации на конкретных клиентах, где клиентами являются test1 и test2
node 'test1', 'test2' {
file {'/tmp/dns':
ensure => present,
mode => 0644,
content => "TEST01",
}
}
На этом все. Удачной установки! =)
Добавить комментарий