Thứ sáu, 17/07/2015 | 00:00 GMT+7

Cách cài đặt và sử dụng CFEngine Community Edition trên Ubuntu 14.04

Nếu bạn đang tìm kiếm một công cụ quản lý cấu hình nhanh và có khả năng mở rộng cao cho cơ sở hạ tầng CNTT của bạn , bạn nên dùng thử CFEngine. Mặc dù chức năng nó cung cấp khá giống với chức năng được cung cấp bởi các công cụ phổ biến khác như Puppet và Chef, CFEngine có dấu ấn nhỏ hơn nhiều, cả về bộ nhớ và sử dụng CPU, và nói chung là nhanh hơn vì nó được viết bằng C và do đó chạy nguyên bản trên hệ điều hành.

Trong hướng dẫn này, bạn sẽ học cách cài đặt và sử dụng CFEngine Community Edition 3.6.5 trên Ubuntu 14.04.

Yêu cầu

Trước khi bắt đầu, bạn phải có quyền truy cập vào:

Bước 1 - Thêm Kho lưu trữ Gói của CFEngine

Để cài đặt version mới nhất của CFEngine bằng apt-get , bạn nên thêm các repository của CFEngine vào danh sách kho của server . Sử dụng lệnh add-apt-repository để thực hiện :

  • sudo add-apt-repository 'deb http://cfengine.com/pub/apt/packages stable main'

Bước 2 - Thêm Khóa công khai của CFEngine

Kho lưu trữ bạn đã thêm ở bước trước không thể được sử dụng cho đến khi bạn cũng thêm public key của CFEngine vào danh sách khóa tin cậy của APT.

Download public key của CFEngine bằng wget .

  • wget http://cfengine.com/pub/gpg.key -O /tmp/gpg.key

Sử dụng apt-key để thêm nó vào danh sách các khóa tin cậy.

  • sudo apt-key add /tmp/gpg.key

Bước 3 - Cài đặt CFEngine

Đến đây bạn có thể sử dụng apt-get để cài đặt CFEngine Community Edition.

  • sudo apt-get update && sudo apt-get install cfengine-community

Trước khi bạn tiếp tục, hãy xác minh cài đặt:

  • cf-agent --version

Bạn sẽ thấy kết quả sau:

Đầu ra của đại lý cf
CFEngine Core 3.6.5 

Bước 4 - Khởi động Trung tâm policy

Vì ta đang sử dụng một server Ubuntu duy nhất trong hướng dẫn này, ta sẽ sử dụng nó như một trung tâm policy và khách hàng. Để khởi động trung tâm policy của CFEngine, bạn phải khởi động nó bằng địa chỉ IP của server .

  • sudo cf-agent --bootstrap your_server_ip

Khi lệnh này hoàn tất thành công, bạn sẽ có CFEngine được cấu hình đầy đủ và sẵn sàng sử dụng trên server của bạn .

Lưu ý: Nếu bạn muốn quản lý nhiều máy bằng server Ubuntu của bạn , bạn sẽ phải lặp lại các bước 1, 2 và 3 trên mỗi máy. Tuy nhiên, ở Bước 4, để cấu hình các máy chỉ là client , bạn nên khởi động chúng bằng địa chỉ IP của server Ubuntu hiện tại của bạn (tức là địa chỉ IP của trung tâm policy ).

Bước 5 - Tạo policy đầu tiên của bạn

Để tự động hóa một tác vụ quản trị hệ thống bằng CFEngine, bạn nên tạo một file policy cho nó. Tệp policy được viết bằng DSL (Ngôn ngữ dành riêng cho domain ) của CFEngine. Ngôn ngữ có một đường cong học tập khá dốc, nhưng thực hiện các nhiệm vụ cơ bản với nó rất dễ dàng.

Ta hãy bắt đầu bằng cách tạo một policy đơn giản “Xin chào thế giới”. Sử dụng nano hoặc editor yêu thích của bạn để tạo file mới có tên myPolicy.cf trong /tmp :

  • nano /tmp/myPolicy.cf

Các lệnh bạn muốn thực thi bằng CFEngine nên được group lại với nhau trong một gói . Các bó có thể có nhiều loại khác nhau. Hiện tại, bạn sẽ tạo một group mà cf-agent có thể vui vẻ. Để in một thông báo đến console , nên sử dụng lời hứa reports . Theo đó, hãy thêm mã sau vào file :

myPolicy.cf
bundle agent SayHello {     reports:         "Hello!"; } 

Lưu file và thoát.

Đến đây bạn có thể chạy policy của bạn bằng lệnh cf-agent .

  • sudo cf-agent -b SayHello /tmp/myPolicy.cf

Bạn sẽ thấy kết quả sau:

Đầu ra của đại lý cf
R: Hello! 

Bước 6 - Thêm policy vào server policy

Trong bước trước, bạn đã chạy policy theo cách thủ công bằng lệnh cf-agent . Để chạy policy tự động - và quan trọng hơn, trên nhiều máy - bạn nên thêm nó vào server policy . Theo mặc định, các policy được thêm vào server được cf-agent thực thi 5 phút một lần.

Bây giờ ta hãy viết một policy nâng cao hơn một chút để tạo một file trong /tmp .

Sử dụng nano hoặc editor yêu thích của bạn để tạo file mới có tên createFilePolicy.cf :

  • nano /tmp/createFilePolicy.cf

Trong policy này, bạn sẽ sử dụng files hứa để tạo file và reports hứa sẽ hiển thị thông báo cho biết file đã được tạo.

Chính sách sau đây tạo một file trống có tên hello.txt trong /tmp . Thêm mã sau vào policy :

createFilePolicy.cf
bundle agent CreateHelloFile {    files:       "/tmp/hello.txt"         create => "true";     reports:       "File created"; } 

Lưu file của bạn và thoát khỏi nano .

Chạy policy bằng lệnh lệnh sau:

  • sudo cf-agent -b CreateHelloFile /tmp/createFilePolicy.cf

Sau khi hoàn tất, bạn có thể chạy ls để xem hello.txt đã được tạo trong /tmp .

  • ls /tmp

Bây giờ ta biết rằng policy của ta không có bất kỳ lỗi nào và đang thực hiện những gì nó phải làm, hãy để ta thêm nó vào server .

Server policy phục vụ các policy của nó từ folder /var/cfengine/masterfiles/ . Do đó, sao chép createFilePolicy.cf để masterfiles :

  • sudo cp /tmp/createFilePolicy.cf /var/cfengine/masterfiles/

Tiếp theo, cho cfengine biết về policy file của bạn và bó bên trong nó, tài liệu tham khảo đối với họ nên được thêm vào promises.cf , file policy chính CFengine của. Sử dụng nano để chỉnh sửa promises.cf :

  • sudo nano /var/cfengine/masterfiles/promises.cf

Thêm tên của file policy của bạn vào cuối danh sách inputs . Sau khi thay đổi, danh sách sẽ giống như sau:

đoạn trích Promise.cf
inputs => {      ...    # List of services here   "services/file_change.cf",    "createFilePolicy.cf", }; 

Đảm bảo rằng bạn không bỏ qua dấu phẩy ở cuối dòng.

Thêm vào đó, tên của group trong file policy của bạn nên được đề cập trong bundlesequence danh sách phía trên cùng của file . Thêm CreateHelloFile làm mục cuối cùng của bundlesequence :

đoạn trích Promise.cf
bundlesequence => {       ...       # Agent bundle       cfe_internal_management,   # See cfe_internal/CFE_cfengine.cf       service_catalogue,       @(cfengine_enterprise_hub_ha.management_bundles),        CreateHelloFile,  }; 

Đảm bảo rằng bạn cũng không bỏ qua dấu phẩy ở cuối dòng. Lưu file và thoát.

Chính sách của bạn hiện đã được thêm vào server policy và sẽ chạy sau mỗi năm phút. Điều này nghĩa là ngay cả khi bạn xóa /tmp/hello.txt , CFEngine sẽ tự động tạo lại sau năm phút.

Nếu bạn muốn loại bỏ policy , trước tiên bạn phải xóa tên của gói và tên của file policy khỏi promises.cf , sau đó di chuyển file policy ra khỏi folder masterfiles .

Kết luận

Trong hướng dẫn này, bạn đã học cách cài đặt version mới nhất của CFEngine Community Edition trên server Ubuntu 14.04 bằng cách sử dụng repository của CFEngine. Bạn cũng đã học cách tạo và chạy các policy đơn giản, cả thủ công và tự động. Đến đây bạn có thể sử dụng CFEngine để quản lý cấu hình server của bạn .

Để tìm hiểu thêm về DSL, hãy tham khảo Hướng dẫn sử dụng CFEngine 3.6 .


Tags:

Các tin liên quan

Cách cài đặt và cấu hình Riak2 với Python3 trên Ubuntu 14.04
2015-07-14
Cách cài đặt Solr 5.2.1 trên Ubuntu 14.04
2015-07-14
Cách thiết lập R trên Ubuntu 14.04
2015-07-13
Cách triển khai ứng dụng Rails với Git Hooks trên Ubuntu 14.04
2015-07-09
Cách sử dụng Prometheus để giám sát server Ubuntu 14.04 của bạn
2015-06-30
Cách cài đặt control panel Ajenti và Ajenti V trên Ubuntu 14.04
2015-06-26
Cách tự động hóa cài đặt WordPress trên Ubuntu 14.04 bằng Ansible
2015-06-25
Cách cài đặt Công cụ giám sát Munin trên Ubuntu 14.04
2015-06-20
Cách cài đặt và cấu hình mod_deflate trên Ubuntu 14.04
2015-06-17
Cách cài đặt MongoDB trên Ubuntu 14.04
2015-06-15