Sau khi đã kết nối thành công các Puppet agent với master, việc tiếp theo chúng ta cần thực hiện là khai báo các cấu hình tại master để triển khai xuống các agent, và để thực hiện việc này, chúng ta sử dụng đến 1 thành phần quan trọng đóng vai trò là trái tim của – đó là Puppet Language.

Các thành cơ bản trong Puppet Language

  • Resource: thành phần cơ bản của Puppet language, resource diễn tả 1 khía cạnh nào đó của hệ thống mà người quản trị quan tâm, resource có thể là 1 tập tin cần có (file), 1 dịch vụ cần chạy (service) hoặc 1 gói phần mềm cần được cài đặt (package). Đây là đơn vị cấu hình cơ bản nhất của Puppet language, mọi xử lý trong Puppet language đều xoay quanh resource.
  • Class: nhóm nhiều resource được tổ chức lại với nhau, là đơn vị cấu hình lớn hơnresource. Trong khi resource có thể là 1 tập tin hay 1 gói phần mềm, class có thể diễn tả mọi thứ cần để cấu hình 1 dịch vụ hoặc 1 ứng dụng hoàn chỉnh (bao gồm nhiều gói cài đặt, nhiều tập tin cấu hình …). Nhiều class nhỏ có thể được kết hợp trong 1 class lớn hơn, diễn tả 1 vai trò hệ thống  nào đó như “database ” hay “web application worker“.
  • Node: là các agent sẽ được triển khai các cấu hình được khai báo tại Puppet master.
  • File: là các tập tin Puppet language, được gọi là manifests, và được đặt tên với phần mở rộng là .pp. Puppet luôn bắt đầu biên dịch với 1 manifest được gọi là “site manifest” hoặc “main manifest“.

Dưới đây là ví dụ về 1 manifest được dùng để quản lý dịch vụ  NTP, trong manifest này chúng ta sử dụng các loại resource là package, service, file để định nghĩa resource NTP.

case $operatingsystem {
    , : { $service_name = 'ntpd' }
    , : { $service_name = 'ntp' }
}

package { 'ntp' :
    ensure => installed,
}

service { 'ntp' :
    name => $service_name,
    ensure => running,
    enable => true,
    subscribe => File['ntp.conf'],
}

file { 'ntp.conf' :
    path => '/etc/ntp.conf',
    ensure => file,
    require => Package['ntp'],
    source => "puppet:///modules/ntp/ntp.conf",
    # This source file would be located on the puppet master at
    # /etc/puppetlabs/puppet/modules/ntp/files/ntp.conf (in Puppet Enterprise)
    # or
    # /etc/puppet/modules/ntp/files/ntp.conf (in open source Puppet)
}

Như vậy là trong bài viết này chúng ta đã có cái nhìn khái quát về Puppet Language. Trong các bài viết tiếp theo, chúng ta sẽ lần lượt tìm hiểu chi tiết về các thành phần trong Puppet Language.

Print Friendly

Comments

comments

Bài viết liên quan