رفتن به محتوا
بازگشت به وبلاگ
خودکارسازی

Puppet برای مدیریت پیکربندی در مقیاس بزرگ

پیاده‌سازی Puppet برای مدیریت پیکربندی اعلانی: Manifest، ماژول، Hiera، محیط‌ها و اجرای انطباق.

مهر ۱۴۰۴
۱۳ دقیقه مطالعه

مقدمه

Puppet یک ابزار مدیریت پیکربندی بالغ است که از زبانی اعلانی برای تعریف وضعیت مطلوب زیرساخت استفاده میکند. بر خلاف Ansible (بدون agent)، Puppet از معماری master-agent استفاده میکند.

نصب Puppet Server

BASH
wget https://apt.puppet.com/puppet8-release-jammy.deb
dpkg -i puppet8-release-jammy.deb
apt update && apt install puppetserver
systemctl enable puppetserver && systemctl start puppetserver

نصب Puppet Agent

BASH
apt install puppet-agent

echo "[main]
server = puppet.company.com" >> /etc/puppetlabs/puppet/puppet.conf

systemctl enable puppet && systemctl start puppet

نوشتن Manifest

PUPPET
node 'webserver01.company.com' {
  package { 'nginx':
    ensure => installed,
  }

  file { '/etc/nginx/nginx.conf':
    ensure  => file,
    content => template('nginx/nginx.conf.erb'),
    notify  => Service['nginx'],
  }

  service { 'nginx':
    ensure => running,
    enable => true,
  }
}

Hiera — جداسازی داده از کد

YAML
# data/common.yaml
profiles::webserver::max_connections: 1024

اجرا

BASH
puppet agent --test       # اجرای دستی
puppet agent --test --noop  # حالت آزمون

خلاصه

  • Puppet برای مدیریت ناوگانهای بزرگ با پیکربندی ثابت عالی است
  • از ماژولها برای سازماندهی کد و Hiera برای جداسازی داده استفاده کنید
  • Agent هر 30 دقیقه بهطور خودکار بررسی میکند