Puppet là công cụ tự động hóa cấu hình, quản lý hệ thống qua mã nguồn, hỗ trợ đa nền tảng (Unix/Linux/Windows).

Yêu cầu hệ thống (System Requirements)

Yêu cầu Mô tả Ghi chú
Gói cài đặt Cài puppet, puppet-common, puppetmaster Trên Ubuntu: sudo apt install puppet puppet-common puppetmaster
Hệ điều hành Unix/Linux hoặc Windows (chỉ hỗ trợ Agent, không có Puppetmaster trên Windows) Khuyến nghị Linux cho Puppetmaster

Thu thập thông tin hệ thống (System Facts)

Lệnh Mô tả Ví dụ đầu ra
facter Liệt kê tất cả thông tin hệ thống (facts) để dùng trong script Puppet osfamily => Debian, memoryfree => 1.5 GB
facter [fact] Lấy giá trị cụ thể của fact facter hostname => server1

Thực thi script Puppet (Running Puppet Scripts)

Lệnh Mô tả Ghi chú
puppet apply install-java.pp Chạy script Puppet trong thư mục hiện tại File phải có đuôi .pp
sudo puppet apply --verbose install-java.pp Chạy với chi tiết đầu ra Hữu ích để debug

Script Puppet (PP Script Examples)

Định nghĩa đường dẫn mặc định (Default Path)

Exec {
  path => [
    "/bin/",
    "/sbin/",
    "/usr/bin/",
    "/usr/sbin/"
  ]
}

Giải thích: Đặt đường dẫn hệ thống để Puppet tìm lệnh shell khi thực thi.

Chạy lệnh Shell (Execute Shell Commands)

exec { "install-stdlib":
  command => "sudo puppet module install --force puppetlabs-stdlib",
  path    => "/usr/local/bin:/bin:/usr/bin",
}

Giải thích: Cài đặt module stdlib từ Puppetlabs.

Ghi log thông tin hệ thống (Log System Facts)

file { "/tmp/facts.yaml":
  content => inline_template("<%= scope.to_hash.reject { |k,v| !(k.is_a?(String) && v.is_a?(String)) }.to_yaml %>"),
}

Giải thích: Lưu facts từ Facter vào file YAML để phân tích sau.

Cấu hình lớp (Class Configuration)

class { 'eclipse':
  method         => 'download',
  release_name   => 'kepler',
  service_release => 'SR2',
  ensure         => 'present',
}

Giải thích: Gọi class Eclipse với các tham số để cài đặt phiên bản cụ thể.

Thiết lập Node

node 'default' {
  include eclipse
  notice { 'Well done!': }
}

Giải thích: Áp dụng class Eclipse cho node mặc định và hiển thị thông báo.

Cài đặt dịch vụ Tomcat

tomcat::instance { 'tomcat8':
  catalina_base => '/opt/apache-tomcat/tomcat8',
  source_url    => 'http://mirror.nexcess.net/apache/tomcat/tomcat-8/v8.0.15/bin/apache-tomcat-8.0.15.tar.gz',
}

tomcat::service { 'default':
  catalina_base => '/opt/apache-tomcat/tomcat8',
}

Giải thích: Tải và chạy Tomcat 8 làm dịch vụ.

Quản lý module (Module Management)

Lệnh Mô tả Ví dụ
puppet module list Liệt kê module đã cài sudo puppet module list
puppet module search java Tìm module liên quan đến Java
puppet module uninstall puppetlabs-stdlib Gỡ module stdlib
puppet module install puppetlabs-stdlib Cài module stdlib Thêm --force để ghi đè
puppet apply --modulepath ~/puppet-modules/modules/ script.pp Chạy script với đường dẫn module tùy chỉnh

Xây dựng và cài đặt module (Building & Installing Modules)

Bước Mô tả Lệnh/Ví dụ
1 Tạo file Modulefile trong thư mục module (Lưu ý: Bổ sung metadata.json)
2 Build module từ thư mục cha puppet module build [moduledir]
3 Cài module từ file build puppet module install [moduledir]/pkg/[vendor]-[module]-[version].tar.gz --force
4 Kiểm tra module cục bộ puppet apply test.pp
5 Tải lên Puppet Forge Đăng nhập và dùng web upload

Mẹo sử dụng


Tải xuống cheat sheet

Puppet Cheat Sheet
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận