Windows
Шаг 1.
- Нажми
Win + R, введиnotepad C:\Windows\System32\drivers\etc\hostsи нажми Enter (лучше запускать Блокнот от имени Администратора). - В самом низу добавь строку:
192.168.0.14 puppet(Теперь, если Windows спросит “Где puppet?”, он пойдет по внутренней сети на 192.168.0.14). 3. Сохрани файл. 4. Проверь связь. Открой PowerShell (на Windows Server) и введи:
ping puppetДолжен пойти ответ от 192.168.0.14. Если пинг есть — мы готовы к установке Агента.
Шаг 2. Превращаем Windows в управляемый компьютер (Agent) 🖥️
Раз уж у тебя есть мощный Windows Server, давай сделаем его первым “клиентом” Puppet! Ты сможешь управлять его настройками прямо с Linux-сервера. Для этого Windows должен знать, где искать сервер “puppet”. На Windows:
- Нажми
Win + R, введиnotepad C:\Windows\System32\drivers\etc\hostsи нажми Enter (лучше запускать Блокнот от имени Администратора). - В самом низу добавь строку:
192.168.0.14 puppet(Теперь, если Windows спросит “Где puppet?”, он пойдет по внутренней сети на 192.168.0.14). 3. Сохрани файл. 4. Проверь связь. Открой PowerShell (на Windows Server) и введи:
ping puppetДолжен пойти ответ от 192.168.0.14. Если пинг есть — мы готовы к установке Агента.
Шаг 3. Установка Агента на Windows 📦
Теперь самое интересное. Ставим программу-агент на Windows Server.
- Скачай официальный инсталлятор (MSI) для Windows x64: Ссылка на загрузку Puppet Agent (Скачай его прямо на Windows Server).
- Запусти установку.
- В мастере установки дойди до поля Puppet Server.
- Впиши туда просто слово:
puppet. (Остальное оставь как есть). - Нажми Install.
Шаг 4. “Свадьба” (Подписание сертификата) 💍
Агент на Windows постучится к Серверу на Linux. Сервер его увидит, но не пустит, пока ты (Администратор) не разрешишь.
- На Linux (Puppet Server): Проверь, пришел ли запрос:
sudo /opt/puppetlabs/bin/puppetserver ca list`Ты должен увидеть что-то вроде: `"win-server-2022.local" (SHA256: ...)` — это твой Windows просится под управление.
2. Разреши доступ (подпиши сертификат):
sudo /opt/puppetlabs/bin/puppetserver ca sign --all(Напишет: Successfully signed certificate...).
sudo ln -s /opt/puppetlabs/bin/puppetserver /usr/local/bin/puppetserversudo rm -rf /etc/puppetlabs/puppet/sslФинал: Проверка связи 🚀
Вернись на Windows Server, открой PowerShell от имени Администратора и введи команду ручной синхронизации:
puppet agent -tСмена времени Агента
Способ 1. Быстрый (Через командную строку) ⚡
Это самый безопасный способ, так как Puppet сам запишет настройку в нужный файл и не ошибется в синтаксисе.
- На Windows Server открой PowerShell (Admin).
- Чтобы установить интервал, например, в 10 минут, введи:
puppet config set runinterval 10m --section agent
(Можно использовать s - секунды, m - минуты, h - часы).
3. Важно: Чтобы изменение вступило в силу, нужно перезапустить службу (иначе он доработает текущие 30 минут по старой памяти):
Restart-Service puppet
Все! Теперь он будет приходить каждые 10 минут.
Способ 2. “Хирургический” (Через файл конфигурации) 📝
Если хочешь увидеть, где эта настройка лежит физически:
- Открой Блокнот от имени Администратора.
- Открой файл:
C:\ProgramData\PuppetLabs\puppet\etc\puppet.conf(Папка ProgramData обычно скрытая, можешь просто вставить путь в строку открытия). - Найди секцию
[agent]. - Добавь или измени строчку:
[agent]
server = puppet
runinterval = 10m
- Сохрани и перезапусти службу (
Restart-Service puppet).
⚠️ Совет бывалого
Не ставь интервал меньше 5-10 минут в реальной работе. Сейчас у тебя 1 сервер, и Puppet справится хоть с интервалом в 1 минуту. Но когда серверов станет 100, и они все начнут долбиться к мастеру каждую минуту — он просто “ляжет” от нагрузки (DDoS своими руками).
Рекомендую:
- Для тестов/разработки: 5m или 10m.
- Для продакшена (боевых серверов): 30m или 1h.
Попробуй изменить на
5mчерез первый способ, это самое удобное сейчас!
Способ 3.
Нам нужен модуль puppetlabs-inifile. Он умеет ювелирно менять одну строчку в текстовых файлах.
Введи на сервере:
sudo /opt/puppetlabs/bin/puppet module install puppetlabs-inifileТеперь мы скажем Паппету:
- Найди свой конфиг-файл.
- Найди там параметр
runinterval. - Поставь его на
5m(5 минут). - Важно: Если ты что-то изменил, перезапусти сам себя, чтобы изменения вступили в силу.
Открой
site.pp:
sudo nano /etc/puppetlabs/code/environments/production/manifests/site.ppДобавь этот код внутрь блока node 'srv-dc01.vbo.local':
# --- Блок 5: Настройка самого Агента (Puppet настраивает Puppet) ---
# 1. Объявляем службу Puppet, чтобы мы могли её перезагружать
service { 'puppet':
ensure => running,
enable => true,
}
# 2. Меняем частоту запуска в файле конфига
ini_setting { 'change_interval':
ensure => present,
path => 'C:/ProgramData/PuppetLabs/puppet/etc/puppet.conf',
section => 'agent',
setting => 'runinterval',
value => '5m', # Ставим 5 минут
notify => Service['puppet'], # МАГИЯ: Если файл изменился -> перезапусти службу!
}Обрати внимание на строчку notify. Это механизм событий. Служба перезапустится ТОЛЬКО если изменится файл. Если файл уже правильный — лишнего перезапуска не будет.
Теперь вернись на Windows и запусти агент (в последний раз вручную, чтобы применить эту настройку):
puppet agent -t