Làm thế nào để sử dụng Mô-đun con rối cho Tự động hóa cơ sở hạ tầng CNTT?



Một hướng dẫn thực hành về con rối nói về cách viết một mô-đun con rối và sử dụng tệp kê khai để tự động hóa và duy trì cơ sở hạ tầng CNTT của một tổ chức.

Trước đây, các quản trị viên hệ thống đã sử dụng các tập lệnh shell để chạy máy chủ của họ và phương pháp này không có khả năng mở rộng. Đó là một nhiệm vụ khó khăn khi phải liên tục sửa đổi các tập lệnh cho hàng trăm hoặc hàng nghìn máy chủ luôn thay đổi và cấu hình hệ thống của chúng.

Trong bài viết này trên mô-đun và biểu hiện con rối hãy xem cách chúng ta có thể sử dụng các mô-đun rối để tự động hóa thiết lập máy chủ, cài đặt chương trình và quản lý hệ thống.





Blog này sẽ bao gồm các chủ đề sau:

Giới thiệu về lập trình con rối

Con rối là một trong những công cụ DevOps phổ biến được sử dụng rộng rãi để quản lý cấu hình. Nó được sử dụng để mang lại Tính nhất quán trong Cơ sở hạ tầng. Puppet có thể xác định cơ sở hạ tầng dưới dạng mã, quản lý nhiều máy chủ và thực thi cấu hình hệ thống, do đó giúp tự động hóa quá trình quản lý cơ sở hạ tầng.



Con rối cóngôn ngữ cấu hình riêng của nó, DSL con rối . Cũng như các chương trình DevOps khác, Puppet tự động hóa các thay đổi, loại bỏ các thay đổi theo hướng tập lệnh thủ công. Tuy nhiên, Puppet không chỉ đơn giản là một ngôn ngữ shell khác, cũng không phải là một ngôn ngữ lập trình thuần túy, chẳng hạn như PHP. Thay vào đó, Puppet sử dụngđến cách tiếp cận dựa trên mô hình khai báo tự động hóa CNTT. Điều này cho phép Puppet xác định cơ sở hạ tầng dưới dạng mã và thực thi cấu hình hệ thống với các chương trình.

Trước khi bắt đầu với bản trình diễn, hãy xem xét một số khía cạnh cốt lõi của lập trình múa rối.

oracle pl sql lỗi xử lý các phương pháp hay nhất

Các thuật ngữ chính trong lập trình con rối

Manifests

Một chương trình múa rối được gọi là rõ ràng và có tên tệp với .pp sự mở rộng. Tệp kê khai chính mặc định của con rối là /etc/puppet/manifests/site.pp . (Điều này xác địnhcấu hình hệ thống toàn cầu, chẳng hạn như cấu hình LDAP, máy chủ DNS hoặc các cấu hình khác áp dụng cho mọi nút).



Các lớp học

Trong các tệp kê khai này có các khối mã được gọi là các lớp học các mô-đun khác có thể gọi. Các lớp cấu hình các khối chức năng lớn hoặc cỡ trung bình, chẳng hạn như tất cả các gói, tệp cấu hình và dịch vụ cần thiết để chạy một ứng dụng. Các lớp giúp việc sử dụng lại mã Rối dễ dàng hơn và cải thiện khả năng đọc.

Tài nguyên

Mã rối được tạo thành phần lớn từ các khai báo tài nguyên. A nguồn mô tả một phần tử cụ thể về trạng thái mong muốn của hệ thống. Ví dụ, nó có thể bao gồm một tệp cụ thể phải tồn tại hoặc một gói phải được cài đặt.

Mô-đun con rối

Ngoại trừ chínhsite.pprõ ràng,nó lưu trữ các bản kê khaitrong mô-đun .

Tất cả mã Rối của chúng tôi được tổ chức theo các mô-đun, là các khối xây dựng cơ bản của con rối mà chúng tôi có thể sử dụng lại và chia sẻ. Mỗi mô-đun quản lý một nhiệm vụ cụ thể trong cơ sở hạ tầng, chẳng hạn như cài đặt và cấu hình một phần mềm.

Mô-đun chứa các lớp Con rối, các loại, nhiệm vụ được xác định, kế hoạch nhiệm vụ, dung lượng, loại tài nguyên và plugin, ví dụ: các loại hoặc dữ kiện tùy chỉnh. Cài đặt các mô-đun trong Con rốiđường dẫn mô-đun. Con rối tải tất cả nội dung từ mọi mô-đun trong đường dẫn mô-đun, làm cho mã này có sẵn để sử dụng.

Mô-đun - Lập trình con rối - EdurekaPuppetlabs có các mô-đun được xác định trước mà chúng tôi có thể sử dụng ngay lập tức bằng cách tải chúng xuống từ PuppetForge . Bạn cũng có thể tạo một mô-đun con rối tùy chỉnh để phù hợp với yêu cầu của mình.

Quy trình làm việc của chương trình con rối

Chúng tôi sẽ sử dụng ngôn ngữ khai báo của Puppet để mô tả trạng thái mong muốn của hệ thống trong các tệp được gọi là tệp kê khai. Manifests mô tả cách bạn nên cấu hình tài nguyên mạng và hệ điều hành của mình, chẳng hạn như tệp, gói và dịch vụ.

Con rối biên dịch các tệp kê khai thành danh mục và nó áp dụng mỗi danh mục cho nút tương ứng của nó để đảm bảo rằng cấu hình của tanh ấy nút đúngtrên cơ sở hạ tầng của bạn.

Trình diễn: Tự động hóa cài đặt Apache & MySQL

Bài viết này về mô-đun múa rối thực hành sẽ chỉ ra hai cách sử dụng mô-đun múa rối và cũng hướng dẫn bạn cách tự động hóa cài đặt một máy chủ được cấu hình với hai mô-đun này.

Để bắt đầu, hãy đảm bảo rằng bạn đã thiết lập sẵn cơ sở hạ tầng Con rối bao gồm một máy chủ rối và 2 đặc vụ rối.

  • Puppet Master: Ubuntu 18.04
  • Tác nhân 1: Ubuntu 18.04
  • Đại lý 2:CentOS7

Dưới đây là sơ lược về những gì chúng tôi sẽ đạt được trong quá trình thực hành này:


Vì vậy, hãy bắt đầu với thực hành:

Tạo một mô-đun từ đầu

Trong mô-đun con rối này, chúng ta sẽ giải quyết các tác vụ như tải xuống gói Apache, định cấu hình tệp và thiết lập máy chủ ảo.

  • Từ Puppet Master, điều hướng đến thư mục mô-đun của Puppet và tạo thư mục Apache:
    cd / etc / ngụy / mô-đun sudo mkdir apache
  • Từ bên trong thư mục apache, tạo các thư mục con: tệp kê khai, mẫu, tệp và ví dụ.
    cd apache sudo mkdir {tệp kê khai, mẫu, tệp, ví dụ}
  • Điều hướng đến thư mục tệp kê khai:
    cd biểu hiện
  • Từ đây, chúng tôi sẽ tách mô-đun thành các lớp dựa trên mục tiêu của phần mã đó.

init.pp -> để tải xuống gói Apache

params.pp -> để xác định bất kỳ biến và tham số nào

config.pp -> để quản lý bất kỳ tệp cấu hình nào cho dịch vụ Apache.

vhosts.pp -> để xác định các máy chủ ảo.

Mô-đun này cũng sẽ sử dụng Hiera (hệ thống tra cứu dữ liệu cấu hình khóa-giá trị được tích hợp sẵn, được sử dụng để tách dữ liệu khỏi dữ liệu Mã rối), để lưu trữ các biến cho mỗi nút.

Bước 1: Tải xuống gói Apache

Tạo lớp init.pp

Bây giờ chúng ta sẽ tạo mộtinit.pptệp trong thư mục tệp kê khai để chứa gói apache.
Vì chúng ta có 2 hệ điều hành khác nhau (ubuntu và CentOS7) sử dụng các tên gói khác nhau cho Apache, chúng ta sẽ phải sử dụng một biến$ apachename.

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/init.pp

lớp apache {package {'apache': name => $ apachename, ensure => present,}}

gói hàng tài nguyên cho phép quản lý một gói. Điều này được sử dụng để thêm, bớt hoặc đảm bảo một gói có sẵn.

Trong hầu hết các trường hợp, Tên của tài nguyên (apache, ở trên) phải là tên của gói đang được quản lý. Do các quy ước đặt tên khác nhau,chúng tôi gọi tên thực tế của góivới Tên tài liệu tham khảo. Vì thế Tên , gọi cho biến chưa được xác định$ apachename.

đảm bảo tham chiếu đảm bảo rằng gói làhiện tại.

Tạo tệp params.pp

Cácparams.pptệp sẽ xác định các biến cần thiết. Mặc dù chúng tôi có thể xác định các biến này tronginit.pptệp, vì nhiều biến hơn sẽ cần được sử dụng bên ngoài chính loại tài nguyên, sử dụngparams.pptệp cho phép các biến được xác định trongnếuvà được sử dụng trên nhiều lớp.

Tạo mộtparams.pptệp và mã sau đây.

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/params.pp

class apache :: params {if $ :: osfamily == 'RedHat' {$ apachename = 'httpd'} elsif $ :: osfamily == 'Debian' {$ apachename = 'apache2'} else {fail ('cái này không một bản phân phối được hỗ trợ. ')}}

Ngoài bản gốc init.pplớp, mỗi tên lớp cần phải phân nhánh từapache. Chúng tôi gọi lớp này là apache :: params . Tên sau dấu hai chấm phải dùng chung tên với tệp. Annếucâu lệnh được sử dụng để xác định các tham số, lấy từ thông tin được cung cấp bởi Hệ số , Puppet có cài đặt facter như một phần của chính nó. Tại đây, Facter sẽ kéo xuống họ hệ điều hành (osfamily), để phân biệt nếu nó làMũ đỏhoặc làDựa trên Debian.

Với các tham số cuối cùng đã được xác định, chúng ta cần gọi params.pp tệp và các tham số vàoinit.pp. Để thực hiện việc này, chúng ta cần thêm các tham số sau tên lớp, nhưng trước dấu ngoặc nhọn mở({).

Nêninit.ppmà chúng tôi đã tạo trước đó sẽ trông giống như sau:

class apache ($ apachename = $ :: apache :: params :: apachename,) inherit :: apache :: params {package {'apache': name => $ apachename, ensure => present,}}

Chuỗi giá trị $ :: apache :: params :: value yêu cầu Puppet lấy các giá trị từ apache mô-đun, params lớp, theo sau là tên tham số. Mảnh vỡ kế thừa :: apache :: params cho phépinit.ppđể kế thừa các giá trị này.

Bước 2: Quản lý tệp cấu hình

Tệp cấu hình Apache sẽ khác nhau tùy thuộc vào việc bạn đang làm việc trên hệ thống dựa trên Red Hat hay Debian.

Bạn có thể tìm thấy các tệp phụ thuộc sau ở cuối bản trình diễn này:httpd.conf(Mũ đỏ),apache2.conf(Debian).

  • Sao chép nội dung của httpd.conf apache2.conftrong các tệp riêng biệt và lưu chúng trong các tập tin danh mụctại / etc / rốilabs / mã / môi trường / sản xuất / mô-đun / apache / tệp .
  • Chỉnh sửa cả hai tệp thành vô hiệu hóa cố sống đi. Bạn sẽ cần thêm dòng KeepAlive Tắt bên tronghttpd.conftập tin. Nếu bạn không muốn thay đổi cài đặt này, chúng tôi nên thêm nhận xét vào đầu mỗitập tin:
    /etc/puppetlabs/code/enosystem/production/modules/apache/files/httpd.conf
# Tệp này do con rối quản lý

Thêm các tệp này vàoinit.pp, do đó Puppet sẽ biết vị trí của các tệp này trên cả máy chủ chính và các nút tác nhân. Để làm điều này, chúng tôi sử dụng tập tin nguồn.

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/init.pp

tệp {'configuration-file': path => $ conffile, ensure => file, source => $ confsource,}

Vì chúng tôi có các tệp cấu hình ở hai vị trí khác nhau, chúng tôi đặt tên chung cho tài nguyên tập tin cấu hình với tập tin con đường được định nghĩa như một tham số vớicon đườngthuộc tính.

đảm bảo đảm bảo rằng nó là một tệp.

nguồn cung cấp vị trí trên Puppet master của các tệp được tạo ở trên.

Mởparams.pptập tin.

Chúng tôi xác định $ conffile $ confsourcecác biến trongnếutuyên bố:

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/params.pp

if $ :: osfamily == 'RedHat' {... $ conffile = '/etc/httpd/conf/httpd.conf' $ confsource = 'rối: ///modules/apache/httpd.conf'} elsif $: : osfamily == 'Debian' {... $ conffile = '/etc/apache2/apache2.conf' $ confsource = 'ngụy: ///modules/apache/apache2.conf'} else {...

Chúng ta cần thêm các tham số vào đầuapachekhai báo lớp tronginit.pp, tương tự như ví dụ trước.

Khi tệp cấu hình thay đổi, Apache cần khởi động lại. Để tự động hóa việc này, chúng tôi có thể sử dụng tài nguyên dịch vụkết hợp với thông báo thuộc tính này sẽ gọi tài nguyên để chạy bất cứ khi nào tệp cấu hình được thay đổi:

bắt đầu với bàn làm việc mysql

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/init.pp

tệp {'configuration-file': path => $ conffile, ensure => file, source => $ confsource, notification => Service ['apache-service'],} service {'apache-service': name => $ apachename, hasrestart => true,}

dịch vụ tài nguyên sử dụng tham số đã được tạo xác định tên Apache trên hệ thống Red Hat và Debian.
hasrestart thuộc tính được sử dụng để kích hoạt khởi động lại dịch vụ đã xác định.

Bước 3: Tạo tệp máy chủ ảo

Tùy thuộc vào hệ thống của bạn phân phối, các tệp của máy chủ ảo sẽ được quản lý khác nhau. Do đó, chúng tôi sẽ mã hóa mã cho các máy chủ ảo trong mộtnếu, tương tự như câu lệnh được sử dụng trongparams.ppnhưng có chứa tài nguyên Con rối thực tế.

  • Từ trongapache / biểu hiện /thư mục, tạo và mở mộtvhosts.pptập tin. Thêm bộ xương củanếutuyên bố:

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/vhosts.pp

class apache :: vhosts {if $ :: osfamily == 'RedHat' {} elsif $ :: osfamily == 'Debian' {} else {}}

Vị trí của tệp máy chủ ảo trên máy chủ CentOS 7 của chúng tôi là/etc/httpd/conf.d/vhost.conf . Bạn cần tạo tệp dưới dạng mẫu trên Puppet master. Thực hiện tương tự đối với tệp máy chủ ảo Ubuntu, được đặt tại/etc/apache2/sites-available/example.com.conf, thay thếexample.comvới FQDN của máy chủ.

  • Điều hướng đến mẫu tập tin trong apache và sau đó tạo hai tệp cho các máy chủ ảo của bạn:

Đối với hệ thống Mũ đỏ:
/etc/puppetlabs/code/enosystem/production/modules/apache/templates/vhosts-rh.conf.erb

ServerAdmin ServerName ServerAlias ​​www. DocumentRoot / var / www // public_html / ErrorLog /var/www//logs/error.log CustomLog /var/www//logs/access.log kết hợp

Đối với hệ thống Debian:
/etc/puppet/modules/apache/templates/vhosts-deb.conf.erb

ServerAdmin ServerName ServerAlias ​​www. DocumentRoot / var / www / html // public_html / ErrorLog /var/www/html//logs/error.log CustomLog /var/www/html//logs/access.log kết hợpYêu cầu tất cả được cấp

Chúng tôi chỉ sử dụng hai biến trong các tệp này: adminemail tên máy chủ . Chúng tôi sẽ xác định những điều này trên cơ sở từng nút, trongsite.pptập tin.

  • Trở lạivhosts.pptập tin. Các mẫu được tạo hiện có thể được tham chiếu trong mã:

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/vhosts.pp

class apache :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': ensure => file, content => template ('apache / vhosts-rh .conf.erb '),}} elsif $ :: osfamily ==' Debian '{file {' /etc/apache2/sites-available/$servername.conf ': ensure => file, content => template (' apache /vhosts-deb.conf.erb '),}} else {fail (' Đây không phải là bản phân phối được hỗ trợ. ')}}

Cả hai họ phân phối đều gọi đếntập tintài nguyên và lấy tiêu đề là vị trí của máy chủ ảo trên bản phân phối tương ứng. Đối với Debian, điều này một lần nữa có nghĩa là tham chiếu đến$ servernamegiá trị. CácNội dungthuộc tính gọi các mẫu tương ứng.

  • Cả hai tệp máy chủ ảo đều tham chiếu đến hai thư mục. Chúng không có trên hệ thống theo mặc định. Chúng tôi có thể tạo ra những thứ này thông qua việc sử dụngtập tintài nguyên, mỗi tài nguyên trongnếutuyên bố. Hoàn chỉnhvhosts.conftệp phải giống:

/etc/puppetlabs/code/enosystem/production/modules/apache/manifests/vhosts.pp

class apache :: vhosts {if $ :: osfamily == 'RedHat' {file {'/etc/httpd/conf.d/vhost.conf': ensure => file, content => template ('apache / vhosts-rh .conf.erb '),} tệp {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / log ',]: ensure => thư mục,}} elsif $ :: osfamily == 'Debian' {file {'/etc/apache2/sites-available/$servername.conf': ensure => file, content => template ('apache / vhosts-deb. conf.erb '),} tệp {[' / var / www / $ servername ',' / var / www / $ servername / public_html ',' / var / www / $ servername / logs ',]: ensure => thư mục ,}} else {fail ('Đây không phải là bản phân phối được hỗ trợ.')}}

Bước 4: Kiểm tra mô-đun

  • Điều hướng đếnapache / biểu hiện /thư mục, chạy trình phân tích cú pháp con rối trên tất cả các tệp để đảm bảo mã hóa Con rối không bị lỗi:

sudo / opt / rốilabs / bin / rối phân tích cú pháp xác thực init.pp params.pp vhosts.pp

Nó sẽ trả về trống rỗng, không có vấn đề gì.

  • Điều hướng đến ví dụ thư mục trongapachemô-đun. Tạo ra mộtinit.ppvà bao gồm các lớp đã tạo. Thay thế các giá trị cho$ servername$ adminemailvới riêng của bạn:

/etc/puppetlabs/code/enosystem/production/modules/apache/examples/init.pp

tạo phiên bản ec2 từ ảnh chụp nhanh
serveremail = 'webmaster@example.com' $ servername = 'ngụy.example.com' bao gồm apache bao gồm apache :: vhosts
  • Kiểm tra mô-đun bằng cách chạy con rối áp dụng với -Không ra đâu nhãn:
    sudo / opt / rốilabs / bin / con rối áp dụng --noop init.pp

Nó sẽ không trả về lỗi và xuất ra rằng nó sẽ kích hoạt làm mới từ các sự kiện. Để cài đặt và định cấu hình apache trên Puppet master, hãy chạy lại mà không cần-Không ra đâu, nếu muốn.

  • Điều hướng trở lại thư mục Con rối chính và sau đó đếnbiểu hiệnthư mục (không phảicái có trong mô-đun Apache).

cd / etc / rốilabs / mã / môi trường / sản xuất / tệp kê khai

Tạo mộtsite.pptập tin,và bao gồm mô-đun Apache cho mỗi nút tác nhân. Đồng thời nhập các biến choadminemail tên máy chủthông số. Của bạnsite.ppsẽ giống như sau:

/etc/puppetlabs/code/enosystem/production/manifests/site.pp

nút 'rối-agent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'ngụy.example.com' bao gồm apache bao gồm apache :: vhosts} nút 'rối-đại lý-centos.example .com '{$ adminemail =' webmaster@example.com '$ servername =' ngụy.example.com 'bao gồm apache bao gồm apache :: vhosts}

Theo mặc định, dịch vụ tác nhân Con rối trên các nút được quản lý của bạn sẽ tự động kiểm tra với nút chính 30 phút một lần và áp dụng bất kỳ cấu hình mới nào từ nút chính. Bạn cũng có thể gọi thủ công quy trình tác nhân Con rối giữa các lần chạy tác nhân tự động. Để chạy thủ công mô-đun mới trên các nút tác nhân của bạn, hãy đăng nhập vào các nút và chạy:

sudo / opt / rốilabs / bin / đặc vụ bù nhìn -t

Bây giờ chúng ta đã học cách tạo mô-đun từ đầu, chúng ta hãy tìm hiểu cách sử dụng mô-đun có sẵn từ lò rèn rối của các tấm rối.

Sử dụng một mô-đun từ PuppetForge

Lò rèn con rối đã có nhiều mô-đun để máy chủ chạy. Chúng tôi có thể định cấu hình những thứ này rộng rãi như một mô-đun bạn đã tạo và có thể tiết kiệm thời gian vì chúng tôi không cần tạo mô-đun từ đầu.

Đảm bảo bạn đang ở / etc / rốilabs / mã / môi trường / sản xuất / mô-đun thư mục và cài đặt Mô-đun MySQL của Puppet Forge bởi PuppetLabs. Điều này cũng sẽ cài đặt bất kỳ mô-đun tiên quyết nào.

cd / etc / rốilabs / mã / môi trường / sản xuất / mô-đun

sudo / opt / rốilabs / bin / mô-đun rối cài đặt rốilabs-mysql

Sử dụng Hiera để tạo cơ sở dữ liệu

Trước khi bạn tạo tệp cấu hình cho mô-đun MySQL, hãy xem xét rằng bạn có thể không muốn sử dụng các giá trị giống nhau trên tất cả các nút tác nhân. Để cung cấp cho Puppet dữ liệu chính xác cho mỗi nút, chúng tôi sử dụng Hiera. Bạn sẽ sử dụng một mật khẩu gốc khác nhau cho mỗi nút, do đó tạo ra các cơ sở dữ liệu MySQL khác nhau.

  • Hướng đến/ etc / con rốivà tạo tệp cấu hình của Hierahiera.yamltrong chínhcon rốidanh mục. Bạn sẽ sử dụng các giá trị mặc định của Hiera:

/etc/puppetlabs/code/enosystem/production/hiera.yaml

--- phiên bản: 5 phân cấp: - tên: Đường dẫn chung: common.yaml mặc định: data_hash: yaml_data datadir: data
  • Tạo tệpcommon.yaml. Nó sẽ xác định giá trị mặc định nguồn gốc mật khẩu cho MySQL:

/etc/puppetlabs/code/enosystem/production/common.yaml

mysql :: server :: root_password: 'password'

Chúng tôi sử dụngcommon.yamltập tinkhi một biến không được xác định ở nơi khác. Điều này có nghĩa là tất cả các máy chủ sẽ chia sẻ cùng một mật khẩu gốc MySQL. Các mật khẩu này cũng có thể được băm để tăng tính bảo mật.

  • Để sử dụng mặc định của mô-đun MySQL, bạn có thể thêm bao gồm ‘:: mysql :: server’ dòng đếnsite.pptập tin. Tuy nhiên, trong ví dụ này, bạn sẽ ghi đè một số mặc định của mô-đun để tạo cơ sở dữ liệu cho mỗi nút của bạn.

Chỉnh sửasite.pptệp với các giá trị sau:

node 'Puppetagent-ubuntu.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' bao gồm apache bao gồm apache :: vhosts bao gồm mysql :: máy chủ mysql :: db {'mydb_ $ {fqdn} ': user =>' myuser ', password =>' mypass ', dbname =>' mydb ', host => $ :: fqdn, Grant => [' SELECT ',' UPDATE '], tag = > $ domain,}} node 'Puppetagent-centos.example.com' {$ adminemail = 'webmaster@example.com' $ servername = 'hostname.example.com' bao gồm apache bao gồm apache :: vhosts bao gồm mysql :: máy chủ mysql :: db {'mydb _ $ {fqdn}': user => 'myuser', password => 'mypass', dbname => 'mydb', host => $ :: fqdn, Grant => ['SELECT', ' CẬP NHẬT '], tag => $ miền,}}

Tự động hóa việc cài đặt các Mô-đun con rối từ chủ nhân con rối thành đặc vụ con rối

  • Bạn có thể chạy các bản cập nhật này theo cách thủ công trên từng nút bằng cách SSHing vào từng nút và đưa ra lệnh sau:

sudo / opt / rốilabs / bin / đặc vụ bù nhìn -t

  • Nếu không, dịch vụ tác nhân Con rối trên các nút được quản lý của bạn sẽ tự động kiểm tra với nút chính 30 phút một lần và áp dụng bất kỳ cấu hình mới nào từ nút chính.

Đã áp dụng danh mục thành công trên đại lý Ubuntu

Đã áp dụng danh mục thành công trên đại lý CentOS

Do đó, toàn bộ cài đặt được tự động trên các nút đại lý chỉ bằng cách áp dụng danh mục.Có thể tìm thấy các tệp mã và phần phụ thuộc được sử dụng cho bản trình diễn này đây .

Tôi hy vọng bản trình diễn này đã giúp bạn hiểu rõ hơn về các mô-đun và tệp kê khai rối và cách sử dụng chúng để tự động hóa cơ sở hạ tầng CNTT.Trong trường hợp này, công việc của bạn trở nên thật dễ dàng, chỉ cần chỉ định cấu hình trong Puppet Master và các tác nhân Puppet sẽ tự động đánh giá tệp kê khai chính và áp dụng mô-đun chỉ định thiết lập Apache và MySQL. Nếu bạn gặp khó khăn với bất kỳ câu hỏi nào, vui lòng đăng chúng lên .

Nếu bạn tìm thấy cái này Hướng dẫn về con rối liên quan, thích hợp, kiểm tra của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo Chứng chỉ Edureka DevOps giúp người học có được kiến ​​thức chuyên môn về các quy trình và công cụ DevOps khác nhau như Puppet, Jenkins, Nagios và GIT để tự động hóa nhiều bước trong SDLC.