Инструменты пользователя

Инструменты сайта


service:puppet

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
service:puppet [23.06.2019 04:59] – [Установка] viacheslavservice:puppet [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +===== Puppet =====
 +Reduce the cost of maintaining your servers. Automate the configuration and management of your infrastructure with the next-generation open source server automation tool.
 +
 +  * Discover resources within minutes.
 +  * Provision new nodes easily in cloud, hybrid or physical environments.
 +  * Configure a range of setups.
 +  * Orchestrate changes and events across clusters of nodes.
 +
 +Complete the form to get access.
 +
 +Also, regardless of whether you're just getting started with Puppet or an expert looking to advance your skills, we've got a variety of [[https://learn.puppet.com/|training options]] to help. 
 +
 +[[https://puppet.com/docs/puppet/latest|Review documentation]]
 +
 +==== Установка ====
 +Требования для нормальной работы: открытый порт 8140 в обе стороны, нормально работающий DNS (прямая и обратная зона), точное время.
 +http://apt.puppet.com/ - репозитории.
 +<code bash>
 +# Добавить репозиторий. Ссылка на пакет выглядит так:
 +# https://apt.puppet.com/<PLATFORM_VERSION>-release-<VERSION CODE NAME>.deb, т. е.,
 +wget https://apt.puppet.com/puppet6-release-stretch.deb # для Debian
 +wget https://apt.puppet.com/puppet6-release-bionic.deb # для Ubuntu
 +dpkg -i puppet6-*.deb && rm *.deb
 +apt-get update
 +apt-get install puppetserver
 +
 +# Изначально сервер настроен на использование 2 ГБ памяти, можно настроить на меньшее потребление
 +nano /etc/default/puppetserver
 +# Modify this if you'd like to change the memory allocation, enable JMX, etc
 +JAVA_ARGS="-Xms2g -Xmx2g"
 +# JAVA_ARGS="-Xms1g -Xmx1g"
 +# JAVA_ARGS="-Xms512m -Xmx512m"
 +# Запуск сервера
 +# puppet resource service puppetserver ensure=running enable=true
 +
 +nano /etc/puppetlabs/puppet/puppet.conf
 +# Настройки агента НА СЕРВЕРЕ (агент ставится вместе с сервером автоматически).
 +# Над секцией [master] вставить
 +[main]
 +# имя сертификата агента
 +certname = puppetserver
 +# имя сервера, куда обращаться
 +server = puppetserver
 +# выйти с сохранением
 +
 +# Добавить путь к паппету в PATH, чтобы каждый раз не набирать путь к команде
 +export PATH=/opt/puppetlabs/bin:$PATH
 +# Запустить агента, добавить в автозагрузку
 +puppet resource service puppet ensure=running enable=true
 +
 +# Проверка: вывести все сертификаты
 +puppetserver ca list --all
 +# тест агента
 +puppet agent --test
 +# показать версию
 +puppet --version
 +puppetserver --version
 +</code>
 +
 +Можно дополнительно поставить [[https://puppet.com/docs/puppetdb/6.3/install_via_module.html|PuppetDB]] для доп. функций типа улучшенных запросов и отчётов об инфраструктуре.
 +
 +[[https://puppet.com/docs/puppet/latest/ssl_regenerate_certificates.html|Перегенерация сертификатов]]
 +
 +=== Установка агентов на другие машины ===
 +Выбрать нужный репозиторий с http://apt.puppet.com/, затем
 +<code bash>
 +wget https://apt.puppet.com/puppet6-release-stretch.deb
 +dpkg -i puppet6-*.deb && rm *.deb
 +apt-get update
 +apt-get install puppet-agent
 +
 +nano /etc/puppetlabs/puppet/puppet.conf
 +[agent]
 +server = puppetserver
 +# certname можно не указывать - будет совпадать с именем машины.
 +
 +# Запустить
 +sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
 +</code>
 +
 +
 +==== Настройка ====
 +Подпись агентских сертификатов на сервере
 +<code bash>
 +# Список
 +puppetserver ca list
 +# Подписать сертификаты для web2 и web3
 +puppetserver ca sign --certname web2,web3
 +# Подписать все сертификаты
 +puppetserver ca sign --all
 +</code>
 +Проверить агента
 +<code bash>
 +puppet agent --test
 +</code>
 +==== Манифесты ====
 +Путь указан в /etc/puppetlabs/puppet/puppet.conf параметром codedir = /etc/puppetlabs/code. По этому пути лежат среды (environments) - изначально там только одна: production, её название можно видеть во время теста агента. Для удобства можно скопировать production и сделать на её основе новую среду, например, test:
 +<code bash>
 +cd /etc/puppetlabs/code/environments
 +cp -R production/ test
 +</code>
 +Внутри среды есть папка manifests, там можно создать файл с расширением .pp
 +<code bash>
 +package { 'mc':
 +ensure => installed,
 +}
 +
 +user { 'engineers':
 +name => 'ivp',
 +ensure => present,
 +comment => 'Ivanov Vasily Petrovich',
 +home => '/home/ivp',
 +managehome => true,
 +password => '$1$F38j8Kz6$o2oRcO2MB6OkrQy5uIJcf/',
 +groups = sudo,
 +shell => '/bin/bash',
 +}
 +</code>
 +
 +Пароль в открытом виде в манифесте вписать нельзя, необходимо создать его хэш c помощью openssl, который и вставляется в манифест:
 +<code bash>
 +openssl passwd -1
 +Password:
 +Verifying - Password:
 +$1$F38j8Kz6$o2oRcO2MB6OkrQy5uIJcf/
 +</code>
 +https://puppet.com/docs/puppet/latest/types/package.html\\
 +https://puppet.com/docs/puppet/latest/types/user.html
 +
 +Чтобы переключить среду на клиентах:
 +<code bash>
 +nano /etc/puppetlabs/puppet/puppet.conf
 +environment = test
 +</code>
 +Конфиг агента - https://puppet.com/docs/puppet/latest/configuration.html\\
 +Среды - https://puppet.com/docs/puppet/latest/environments_creating.html
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki