Giới thiệu

Puppet, từ Puppet Labs, là công cụ quản lý cấu hình giúp quản trị viên hệ thống tự động hóa việc cung cấp, cấu hình và quản lý cơ sở hạ tầng máy chủ. Lập kế hoạch trước và sử dụng các công cụ quản lý cấu hình như Puppet có thể giảm thời gian lặp lại các tác vụ cơ bản và giúp đảm bảo cấu hình của bạn nhất quán và chính xác trên cơ sở hạ tầng của bạn. Một khi bạn nhận được hang của quản lý máy chủ của bạn với Puppet và các công cụ tự động hóa khác, bạn sẽ có nhiều thời gian miễn phí có thể được sử dụng để cải thiện các khía cạnh khác của thiết lập của bạn.

Con rối có hai loại, Puppet Enterprise và Puppet nguồn mở. Nó chạy trên hầu hết các bản phân phối Linux, các nền tảng UNIX khác nhau và Windows.

Trong hướng dẫn này, chúng tôi sẽ giới thiệu cho các bạn cách cài đặt Puppet 4 nguồn mở trong một thiết lập đại lý / chủ trên CentOS 7. Trong thiết lập này, Múa rối serverâ € "chạy phần mềm Máy chủ con rối" có thể được sử dụng để kiểm soát tất cả các máy chủ khác của bạn hoặc Đại lý con rối nút. Lưu ý rằng chúng tôi sẽ sử dụng gói Máy chủ con rối, thay vì Hành khách hoặc bất kỳ môi trường thời gian chạy nào khác.

Điều kiện tiên quyết

Để làm theo hướng dẫn này, bạn phải có quyền truy cập root hoặc superuser cho tất cả các máy chủ mà bạn muốn sử dụng Puppet với. Bạn cũng sẽ được yêu cầu tạo một máy chủ CentOS 7 mới để hoạt động như máy chủ chủ Rối. Nếu bạn không có cơ sở hạ tầng máy chủ hiện có, vui lòng tạo lại cơ sở hạ tầng mẫu (được mô tả bên dưới) bằng cách làm theo hướng dẫn thiết lập DNS tiên quyết.

Trước khi bắt đầu cài đặt Puppet, hãy đảm bảo rằng bạn có các điều kiện tiên quyết sau đây:

  • Mạng riêng DNS: DNS chuyển tiếp và đảo ngược phải được định cấu hình và mỗi máy chủ phải có một tên máy chủ duy nhất. Đây là một hướng dẫn để cấu hình máy chủ DNS mạng riêng của bạn. Nếu bạn không có cấu hình DNS, bạn phải sử dụng hosts tệp cho độ phân giải tên. Chúng tôi sẽ giả định rằng bạn sẽ sử dụng mạng riêng của bạn để liên lạc trong cơ sở hạ tầng của bạn.
  • Tường lửa mở cổng: Chủ nhân Rối phải có thể truy cập được trên cổng 8140. Nếu tường lửa của bạn quá hạn chế, hãy kiểm tra điều này Hướng dẫn FirewallD để biết hướng dẫn về cách cho phép các yêu cầu đến trên cổng 8140.

Cơ sở hạ tầng mẫu

Chúng tôi sẽ sử dụng cơ sở hạ tầng sau đây để minh họa cách thiết lập Puppet:

Tên máy chủ Vai trò FQDN riêng tư
host1 Máy chủ CentOS 7 chung host1.nyc3.example.com
host2 Máy chủ CentOS 7 chung host2.nyc3.example.com
ns1 Máy chủ định danh chính ns1.nyc3.example.com
ns2 Máy chủ định danh phụ ns2.nyc3.example.com

Đại lý con rối sẽ được cài đặt trên tất cả các máy chủ này. Các máy chủ này sẽ được tham chiếu bởi các giao diện mạng riêng của chúng, được ánh xạ tới tên miền phụ ".nyc3.example.com" trong DNS. Đây là cùng một cơ sở hạ tầng được mô tả trong hướng dẫn điều kiện tiên quyết: Làm thế nào để cấu hình BIND như một mạng riêng DNS Server trên CentOS 7.

Một khi bạn có tất cả các điều kiện tiên quyết, hãy chuyển sang tạo máy chủ tổng thể Puppet!

Tạo máy chủ Master rối

Tạo một cái mới CentOS 7 x64 server, sử dụng "con rối" làm tên máy chủ của nó. Các yêu cầu phần cứng phụ thuộc vào số lượng nút tác nhân bạn muốn quản lý; hai lõi CPU và 1 GB bộ nhớ là tối thiểu yêu cầu quản lý một số nút, nhưng bạn sẽ cần nhiều tài nguyên hơn nếu cơ sở hạ tầng máy chủ của bạn lớn hơn. Puppet Server được cấu hình để sử dụng 2 GB RAM theo mặc định.

Tên máy chủ Vai trò FQDN riêng tư
con rối Múa rối puppet.nyc3.example.com

Nếu bạn chỉ thiết lập DNS của mình và không chắc chắn cách bao gồm máy chủ lưu trữ mới, hãy tham khảo Duy trì bản ghi DNS phần của hướng dẫn DNS. Về cơ bản, bạn cần thêm bản ghi "A" và "PTR" và cho phép máy chủ mới thực hiện truy vấn đệ quy. Ngoài ra, hãy đảm bảo rằng bạn định cấu hình miền tìm kiếm của mình để máy chủ của bạn có thể sử dụng tên máy chủ ngắn để tra cứu lẫn nhau.

Chú thích: Hướng dẫn này giả định rằng tên máy chủ của con rối của bạn là "con rối". Nếu bạn sử dụng một tên khác, bạn sẽ cần phải thực hiện một vài sai lệch từ hướng dẫn này. Cụ thể, bạn phải chỉ định tên máy chủ của Puppet master trong tập tin cấu hình của nút Puppet agent nodes, và bạn phải tạo lại chứng chỉ SSL của Puppet master trước khi ký bất kỳ chứng chỉ agent nào. Nếu không, bạn sẽ nhận được lỗi này: Error: Could not request certificate: The certificate retrieved from the master does not match the agent's private key..

Cấu hình cài đặt này không được đề cập trong hướng dẫn này.

Cài đặt NTP

Vì nó hoạt động như một cơ quan cấp chứng chỉ cho các nút agent, nên máy chủ Master của Puppet phải duy trì thời gian hệ thống chính xác để tránh các vấn đề tiềm ẩn khi nó phát hành chứng chỉ đại lý - chứng chỉ có thể hết hạn nếu có sự khác biệt về thời gian. Chúng ta sẽ sử dụng Network Time Protocol (NTP) cho mục đích này.

Trước tiên, hãy xem các múi giờ có sẵn bằng lệnh này:

timedatectl list-timezones

Điều này sẽ cung cấp cho bạn một danh sách các múi giờ có sẵn cho máy chủ của bạn. Khi bạn tìm thấy cài đặt vùng / múi giờ chính xác cho máy chủ của mình, hãy đặt nó bằng lệnh này (thay thế vùng và múi giờ ưa thích của bạn):

sudo timedatectl set-timezone America/New_York

Cài đặt NTP qua yum bằng lệnh này:

sudo yum -y install ntp

Thực hiện đồng bộ hóa một lần bằng cách sử dụng ntpdate chỉ huy:

sudo ntpdate pool.ntp.org

Đó là thực tế phổ biến để cập nhật cấu hình NTP để sử dụng "khu vực hồ bơi" gần về địa lý với máy chủ NTP của bạn. Trong trình duyệt web, hãy chuyển đến Dự án NTP Pool và tra cứu vùng hồ bơi đó là địa lý đóng trung tâm dữ liệu mà bạn đang sử dụng. Chúng tôi sẽ sử dụng hồ bơi Hoa Kỳ (http://www.pool.ntp.org/zone/us) trong ví dụ của chúng tôi, bởi vì các máy chủ của chúng tôi được đặt tại trung tâm dữ liệu của New York.

Mở ntp.conf để chỉnh sửa:

sudo vi /etc/ntp.conf

Thêm các máy chủ thời gian từ trang Dự án NTP Pool lên đầu tệp (thay thế các máy chủ này theo các máy chủ bạn chọn):

/etc/ntp.conf excerpt

server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

Lưu và thoát.

Bắt đầu NTP để thêm các máy chủ thời gian mới:

sudo systemctl restart ntpd

Cuối cùng, kích hoạt daemon NTP:

sudo systemctl enable ntpd

Bây giờ máy chủ của chúng tôi đang giữ thời gian chính xác, hãy cài đặt phần mềm Máy chủ Múa rối.

Cài đặt máy chủ rối

Puppet Server là phần mềm chạy trên máy chủ Master của Puppet. Đây là thành phần sẽ đẩy cấu hình đến các máy chủ khác của bạn, sẽ chạy phần mềm tác nhân con rối.

Cho phép kho lưu trữ bộ sưu tập Puppet Labs chính thức với lệnh này:

sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

Cài đặt puppetserver gói:

sudo yum -y install puppetserver

Puppet Server bây giờ đã được cài đặt trên máy chủ chủ của bạn, nhưng nó vẫn chưa chạy.

Định cấu hình phân bổ bộ nhớ (tùy chọn)

Theo mặc định, Puppet Server được cấu hình để sử dụng 2 GB RAM. Bạn nên tùy chỉnh cài đặt này dựa trên số lượng bộ nhớ miễn phí mà máy chủ chính của bạn có và số lượng nút tác nhân sẽ quản lý.

Đầu tiên, mở /etc/sysconfig/puppetserver trong trình soạn thảo văn bản yêu thích của bạn. Chúng tôi sẽ sử dụng vi:

sudo vi /etc/sysconfig/puppetserver

Sau đó tìm JAVA_ARGS và sử dụng -Xms-Xmx các tham số để thiết lập cấp phát bộ nhớ. Ví dụ: nếu bạn muốn sử dụng 3 GB bộ nhớ, dòng sẽ trông giống như sau:

Memory Allocation

JAVA_ARGS="-Xms3g -Xmx3g"

Lưu và thoát khi bạn hoàn tất.

Bắt đầu máy chủ con rối

Bây giờ chúng ta đã sẵn sàng để khởi động Puppet Server bằng lệnh này:

sudo systemctl start puppetserver

Tiếp theo, kích hoạt Puppet Server để nó bắt đầu khi máy chủ chủ khởi động:

sudo systemctl enable puppetserver

Puppet Server đang chạy nhưng chưa quản lý bất kỳ nút tác nhân nào. Hãy tìm hiểu cách cài đặt và thêm các tác nhân Puppet!

Cài đặt Agent rối

Phần mềm tác nhân con rối phải được cài đặt trên bất kỳ máy chủ nào mà trình quản lý con rối sẽ quản lý. Trong hầu hết các trường hợp, điều này sẽ bao gồm mọi máy chủ trong cơ sở hạ tầng của bạn. Như đã đề cập trong phần giới thiệu, tác nhân Puppet có thể chạy trên tất cả các bản phân phối Linux chính, một số nền tảng UNIX và Windows. Bởi vì việc cài đặt khác nhau tùy theo từng hệ điều hành, chúng tôi sẽ chỉ bao gồm cài đặt trên các máy chủ CentOS 7. Hướng dẫn cài đặt tác nhân Rối trên máy chủ Ubuntu 14.04 có thể tìm thấy đây.

Thực hiện các bước này trên tất cả các máy chủ đại lý của bạn.

Cho phép kho lưu trữ bộ sưu tập Puppet Labs chính thức với lệnh này:

sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

Cài đặt puppet-agent gói:

sudo yum -y install puppet-agent

Bây giờ, tác nhân Puppet đã được cài đặt, khởi động nó bằng lệnh này:

sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true

Lần đầu tiên bạn chạy tác nhân Puppet, nó tạo ra một chứng chỉ SSL và gửi một yêu cầu ký tên tới Master của Puppet. Sau khi con rối chủ ký chứng chỉ của tác nhân, nó sẽ có thể giao tiếp với và điều khiển nút tác nhân.

Nhớ lặp lại phần này cho tất cả các nút của tác nhân Puppet của bạn.

Chú thích: Nếu đây là tác nhân Puppet đầu tiên của bạn, bạn nên cố gắng ký vào chứng chỉ trên bảng con rối, được trình bày trong bước tiếp theo, trước khi thêm các tác nhân khác của bạn. Sau khi bạn đã xác minh rằng mọi thứ hoạt động bình thường, bạn có thể quay lại và thêm các nút tác nhân còn lại với sự tự tin.

Đăng ký chứng chỉ trên Puppet Master

Lần đầu tiên Puppet chạy trên một nút agent, nó sẽ gửi một yêu cầu ký chứng chỉ tới Master của Puppet. Trước khi Puppet Server có thể giao tiếp với và điều khiển nút agent, nó phải ký chứng chỉ của nút agent cụ thể đó. Chúng tôi sẽ mô tả cách ký và kiểm tra các yêu cầu ký.

Liệt kê các yêu cầu chứng chỉ hiện tại

Trên con rối chủ, chạy lệnh sau đây để liệt kê tất cả các yêu cầu chứng chỉ chưa ký:

sudo /opt/puppetlabs/bin/puppet cert list

Nếu bạn chỉ thiết lập nút tác nhân đầu tiên của mình, bạn sẽ thấy một yêu cầu. Nó sẽ trông giống như sau, với tên máy chủ của nút tác nhân:

Output:  "host1.nyc3.example.com" (SHA256) 15:90:C2:FB:ED:69:A4:F7:B1:87:0B:BF:F7:DD:B5:1C:33:F7:76:67:F3:F6:23:AE:07:4B:F6:E3:CC:04:11:4C

Lưu ý rằng không có + trước mặt nó. Điều này cho biết rằng nó chưa được ký kết.

Đăng ký Yêu cầu

Để ký yêu cầu chứng chỉ, hãy sử dụng puppet cert sign lệnh, với tên máy chủ của chứng chỉ bạn muốn ký. Ví dụ: để ký host1.nyc3.example.comcủa chứng chỉ, bạn sẽ sử dụng lệnh sau:

sudo /opt/puppetlabs/bin/puppet cert sign host1.nyc3.example.com

Bạn sẽ thấy đầu ra sau, cho biết rằng yêu cầu chứng chỉ đã được ký:

Output:Notice: Signed certificate request for host1.nyc3.example.com
Notice: Removing file Puppet::SSL::CertificateRequest host1.nyc3.example.com at '/etc/puppetlabs/puppet/ssl/ca/requests/host1.nyc3.example.com.pem'

Puppet master giờ đây có thể giao tiếp và điều khiển nút mà chứng chỉ đã ký thuộc về.

Nếu bạn muốn ký tất cả các yêu cầu hiện tại, hãy sử dụng --all tùy chọn, như vậy:

sudo /opt/puppetlabs/bin/puppet cert sign --all

Thu hồi chứng chỉ

Bạn có thể muốn loại bỏ một máy chủ từ Puppet, hoặc xây dựng lại một máy chủ sau đó thêm nó trở lại với con rối. Trong trường hợp này, bạn sẽ muốn thu hồi chứng chỉ của máy chủ từ trình quản lý con rối. Để làm điều này, bạn có thể sử dụng clean hoạt động:

sudo /opt/puppetlabs/bin/puppet cert clean hostname

Chứng chỉ được liên kết của máy chủ được chỉ định sẽ bị xóa khỏi Rối.

Xem tất cả các yêu cầu đã ký

Nếu bạn muốn xem tất cả các yêu cầu, đã ký và chưa ký, hãy chạy lệnh sau:

sudo /opt/puppetlabs/bin/puppet cert list --all

Bạn sẽ thấy danh sách tất cả các yêu cầu. Các yêu cầu đã ký được bắt đầu bằng một + và các yêu cầu chưa được ký không có +.

Output:+ "puppet"    (SHA256) 5A:71:E6:06:D8:0F:44:4D:70:F0:BE:51:72:15:97:68:D9:67:16:41:B0:38:9A:F2:B2:6C:BB:33:7E:0F:D4:53 (alt names: "DNS:puppet", "DNS:puppet.nyc3.example.com")
+ "host1.nyc3.example.com" (SHA256) F5:DC:68:24:63:E6:F1:9E:C5:FE:F5:1A:90:93:DF:19:F2:28:8B:D7:BD:D2:6A:83:07:BA:FE:24:11:24:54:6A
+ "host2.nyc3.example.com" (SHA256) CB:CB:CA:48:E0:DF:06:6A:7D:75:E6:CB:22:BE:35:5A:9A:B3:93:63:BF:F0:DB:F2:D8:E5:A6:27:10:71:78:DA
+ "ns2.nyc3.example.com" (SHA256) 58:47:79:8A:56:DD:06:39:52:1F:E3:A0:F0:16:ED:8D:40:17:40:76:C2:F0:4F:F3:0D:F9:B3:64:48:2E:F1:CF

Chúc mừng! Cơ sở hạ tầng của bạn hiện đã sẵn sàng để được quản lý bởi Puppet!

Bắt đầu với con rối

Bây giờ cơ sở hạ tầng của bạn được thiết lập để được quản lý với Puppet, chúng tôi sẽ chỉ cho bạn cách sử dụng Puppet để thực hiện một số tác vụ cơ bản.

Sự kiện được tập hợp như thế nào

Con rối tập hợp sự thật về mỗi nút của nó bằng một công cụ gọi là mặt. Facter, theo mặc định, tập hợp thông tin hữu ích cho cấu hình hệ thống (ví dụ: tên hệ điều hành, tên máy chủ, địa chỉ IP, khóa SSH và nhiều thứ khác). Có thể thêm các sự kiện tùy chỉnh không thuộc bộ thực tế mặc định.

Các sự kiện thu thập có thể hữu ích trong nhiều tình huống. Ví dụ, bạn có thể tạo một mẫu cấu hình máy chủ web và tự động điền vào các địa chỉ IP thích hợp cho một máy chủ ảo cụ thể. Hoặc bạn có thể xác định rằng phân phối máy chủ của bạn là "CentOS", vì vậy bạn nên chạy apache2 dịch vụ thay vì httpd. Đây là những ví dụ cơ bản, nhưng chúng nên cung cấp cho bạn một ý tưởng về cách sử dụng các sự kiện.

Để xem danh sách các sự kiện được tự động thu thập trên nút tác nhân của bạn, hãy chạy lệnh sau:

/opt/puppetlabs/bin/facter

Tệp kê khai chính

Con rối sử dụng ngôn ngữ dành riêng cho miền để mô tả cấu hình hệ thống và các mô tả này được lưu vào các tệp được gọi là "tệp kê khai" có phần mở rộng tệp .pp. Tệp kê khai chính mặc định được đặt trên máy chủ tổng thể con rối của bạn tại /etc/puppetlabs/code/environments/production/manifests/site.pp. Hãy tạo một tệp giữ chỗ cho bây giờ:

sudo touch /etc/puppetlabs/code/environments/production/manifests/site.pp

Lưu ý rằng tệp kê khai chính hiện đang trống, vì vậy Puppet sẽ không thực hiện bất kỳ cấu hình nào trên các nút tác nhân.

Làm thế nào Manifest chính được thực thi

Tác nhân Puppet định kỳ kiểm tra với Máy chủ Múa rối (thường mỗi 30 phút). Khi nó kiểm tra, nó sẽ gửi sự thật về chính nó cho chủ, và kéo một danh mục hiện tại - một danh sách được biên dịch các tài nguyên và các trạng thái mong muốn của chúng có liên quan đến tác nhân, được xác định bởi biểu hiện chính. Nút tác nhân sau đó sẽ cố gắng thực hiện các thay đổi thích hợp để đạt được trạng thái mong muốn của nó. Chu trình này sẽ tiếp tục miễn là trình chủ Con rối đang chạy và liên lạc với các nút tác nhân.

Thực thi ngay lập tức trên một nút đặc quyền

Cũng có thể bắt đầu kiểm tra cho một nút tác nhân cụ thể theo cách thủ công, bằng cách chạy lệnh sau (trên nút tác nhân được đề cập):

/opt/puppetlabs/bin/puppet agent --test

Việc chạy này sẽ áp dụng tệp kê khai chính cho tác nhân chạy thử nghiệm. Bạn có thể thấy đầu ra như sau:

Output:Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
...
Info: Loading facts
Info: Caching catalog for host1
Info: Applying configuration version '1457389302'
Notice: /Stage[main]/Main/File[/tmp/example-ip]/ensure: defined content as '{md5}dd769ec60ea7d4f7146036670c6ac99f'
Notice: Applied catalog in 0.04 seconds

Lệnh này rất hữu ích để xem cách biểu hiện chính sẽ ảnh hưởng đến một máy chủ đơn lẻ ngay lập tức.

Khai thác một lần

Các puppet apply lệnh cho phép bạn thực thi các tệp kê khai không liên quan đến tệp kê khai chính, theo yêu cầu. Nó chỉ áp dụng tệp kê khai cho nút mà bạn chạy ứng dụng từ. Đây là một ví dụ:

sudo /opt/puppetlabs/bin/puppet apply /path/to/your/manifest/init.pp

Chạy tệp kê khai theo kiểu này rất hữu ích nếu bạn muốn thử nghiệm tệp kê khai mới trên nút tác nhân hoặc nếu bạn chỉ muốn chạy tệp kê khai một lần (ví dụ: để khởi tạo nút tác nhân đến trạng thái mong muốn).

Ví dụ về tệp kê khai

Như bạn có thể nhớ lại, tệp kê khai chính trên Master của Puppet được đặt tại /etc/puppetlabs/code/environments/production/manifests/site.pp.

Trên máy chủ con rối, hãy chỉnh sửa ngay bây giờ:

sudo vi /etc/puppetlabs/code/environments/production/manifests/site.pp

Bây giờ thêm các dòng sau để mô tả một tài nguyên tập tin:

site.pp example

file {'/tmp/example-ip':                                            # resource type file and filename

  ensure  => present,                                               # make sure it exists

  mode    => '0644',                                                # file permissions

  content => "Here is my Public IP Address: ${ipaddress_eth0}.\n",  # note the ipaddress_eth0 fact

}

Bây giờ hãy lưu và thoát. Nhận xét nội tuyến nên giải thích tài nguyên mà chúng tôi đang xác định. Trong tiếng Anh đơn giản, điều này sẽ đảm bảo rằng tất cả các nút tác nhân sẽ có tệp tại /tmp/example-ip với -rw-r--r-- quyền, với nội dung bao gồm địa chỉ IP công khai của nút.

Bạn có thể đợi cho đến khi tác nhân tự động kiểm tra tổng thể hoặc bạn có thể chạy puppet agent --test lệnh (từ một trong các nút tác nhân của bạn). Sau đó chạy lệnh sau để in tệp:

cat /tmp/example-ip

Bạn sẽ thấy đầu ra trông giống như sau (với địa chỉ IP của nút đó):

Output:Here is my Public IP Address: 128.131.192.11.

Chỉ định nút

Nếu bạn muốn xác định tài nguyên cho các nút cụ thể, hãy xác định node trong tệp kê khai.

Trên tổng thể, chỉnh sửa site.pp:

sudo vi /etc/puppetlabs/code/environments/production/manifests/site.pp

Bây giờ thêm các dòng sau:

site.pp example

node 'ns1', 'ns2' {    # applies to ns1 and ns2 nodes

  file {'/tmp/dns':    # resource type file and filename

    ensure => present, # make sure it exists

    mode => '0644',

    content => "Only DNS servers get this file.\n",

  }

}

node default {}       # applies to nodes that aren't explicitly defined

Lưu và thoát.

Bây giờ Puppet sẽ đảm bảo rằng một tập tin tại /tmp/dns sẽ tồn tại trên ns1ns2. Bạn có thể muốn chạy puppet agent --test command (từ ns1 hoặc ns2), nếu bạn không muốn đợi cho pull agent Puppet đã lên lịch.

Lưu ý rằng nếu bạn không xác định tài nguyên, Con rối sẽ cố gắng hết sức để không chạm vào nó. Vì vậy, nếu bạn xóa các tài nguyên này khỏi tệp kê khai, Con rối sẽ không xóa các tệp được tạo. Nếu bạn muốn xóa nó, hãy thay đổi ensure đến absent.

Những ví dụ này không làm bất cứ điều gì hữu ích, nhưng họ chứng minh rằng Puppet đang hoạt động đúng cách.

Sử dụng Mô-đun

Bây giờ hãy sử dụng một mô-đun. Mô-đun hữu ích cho việc nhóm các tác vụ với nhau. Có rất nhiều mô-đun có sẵn trong cộng đồng Puppet, và bạn thậm chí có thể viết của riêng bạn.

Trên con rối chủ, cài đặt puppetlabs-apache mô-đun từ forgeapi:

sudo /opt/puppetlabs/bin/puppet module install puppetlabs-apache

Cảnh báo: Không sử dụng mô-đun này trên thiết lập Apache hiện có. Nó sẽ dọn dẹp bất kỳ cấu hình Apache nào không được Puppet quản lý.

Bây giờ chỉnh sửa site.pp:

sudo vi /etc/puppetlabs/code/environments/production/manifests/site.pp

Bây giờ thêm các dòng sau để cài đặt Apache trên host2:

site.pp example

node 'host2' {

  class { 'apache': }             # use apache module

  apache::vhost { 'example.com':  # define vhost resource

    port    => '80',

    docroot => '/var/www/html'

  }

}

# node default {}       # uncomment this line if it doesn't already exist in your manifest

Lưu và thoát. Bây giờ thời gian tới Puppet cập nhật host2, nó sẽ cài đặt gói Apache và cấu hình một máy chủ ảo có tên là "example.com", lắng nghe trên cổng 80 và với một tài liệu gốc /var/www/html.

Trên host2, chạy lệnh sau:

sudo /opt/puppetlabs/bin/puppet agent --test

Bạn sẽ thấy một loạt các đầu ra chỉ ra rằng Apache đang được cài đặt. Sau khi hoàn tất, hãy mở địa chỉ IP công cộng của host2 trong trình duyệt web. Bạn sẽ thấy một trang đang được Apache phục vụ.

Chúc mừng! Bạn đã sử dụng mô-đun Múa rối đầu tiên của mình!

Phần kết luận

Bây giờ bạn đã cài đặt Puppet đại lý / Master cơ bản, bây giờ bạn đã sẵn sàng để tìm hiểu thêm về cách sử dụng Puppet để quản lý cơ sở hạ tầng máy chủ của bạn. Xem hướng dẫn sau: Bắt đầu với mã rối: Manifests và Modules.