Hướng dẫn Chef - Chuyển đổi cơ sở hạ tầng thành mã



Chef Tutorial là blog thứ hai của loạt blog Chef. Blog này giải thích kiến ​​trúc Chef và các thành phần Chef như Sách dạy nấu ăn, Công thức nấu ăn, v.v. với các ví dụ.

Hướng dẫn đầu bếp

Chef Tutorial là blog thứ hai của loạt blog Chef. trong tôi blog trước , Tôi đã giải thích Chef là gì, Quản lý cấu hình và cách Chef đạt được Quản lý cấu hình với sự trợ giúp của một ca sử dụng của Gannett.

Trong Hướng dẫn Đầu bếp này, các chủ đề sau sẽ được đề cập:





Tôi chắc chắn sau khi đọc blog trước bạn phải tò mò muốn biết chính xác Chef hoạt động như thế nào. Phần đầu tiên của blog Hướng dẫn đầu bếp này sẽ giải thích cho bạn chi tiết về kiến ​​trúc Chef, điều này sẽ xóa tan mọi nghi ngờ của bạn.



Hướng dẫn đầu bếp - Kiến trúc đầu bếp

Như thể hiện trong sơ đồ bên dưới, có ba thành phần chính của Chef:

  • Máy trạm
  • Người phục vụ
  • Điểm giao

Kiến trúc đầu bếp - Hướng dẫn đầu bếp - Edureka

Hướng dẫn đầu bếp - Máy trạm



Workstation là nơi chứa tất cả các cấu hình Chefquản lý. Máy này giữ tất cả dữ liệu cấu hình mà sau này có thể được đẩy lên Chef Server trung tâm. Các cấu hình này được kiểm tra trong máy trạm trước khi đưa vào Chef Server. Máy trạm bao gồm một công cụ dòng lệnh được gọi là Dao, được sử dụng để tương tác với Chef Server. Có thể có nhiều Máy trạm cùng quản lý Máy chủ đầu bếp trung tâm.

Các máy trạm chịu trách nhiệm thực hiện các chức năng dưới đây:

  • Viết Sách nấu ăn và Công thức nấu ăn sau này sẽ được đưa vào Máy chủ đầu bếp trung tâm
  • Quản lý các nút trên Máy chủ Chef trung tâm

Bây giờ, chúng ta hãy hiểu từng điểm được đề cập ở trên.

Viết Sách nấu ăn và Công thức nấu ăn sau này sẽ được đưa vào Máy chủ đầu bếp trung tâm

Công thức nấu ăn: Công thức là một tập hợp các tài nguyên mô tả một cấu hình hoặc chính sách cụ thể. Nó mô tả mọi thứ cần thiết để cấu hình một phần của hệ thống. Người dùng viết Công thức mô tả cách Chef quản lý các ứng dụng và tiện ích (chẳng hạn như Apache HTTP Server, MySQL hoặc Hadoop) và cách chúng được cấu hình.

Các Công thức này mô tả một loạt các tài nguyên phải ở một trạng thái cụ thể, tức là các gói cần được cài đặt, các dịch vụ sẽ chạy hoặc các tệp cần được viết.

Sau trong blog , Tôi sẽ hướng dẫn bạn cách viết Công thức cài đặt gói Apache2 trên Chef Nodes bằng cách viết mã ruby ​​trong Chef Workstation.

Sách dạy nấu ăn: Nhiều Công thức nấu ăn có thể được nhóm lại với nhau để tạo thành một Sách dạy nấu ăn. Cookbook xác định một kịch bản và chứa mọi thứ cần thiết để hỗ trợ kịch bản đó:

  • Công thức nấu ăn, chỉ định các tài nguyên sẽ sử dụng và thứ tự áp dụng chúng
  • Giá trị thuộc tính
  • Phân phối tệp
  • Mẫu
  • Các tiện ích mở rộng cho Chef, chẳng hạn như thư viện, định nghĩa và tài nguyên tùy chỉnh

Quản lý các nút trên Máy chủ Chef trung tâm

Hệ thống Workstation sẽ có các tiện ích dòng lệnh cần thiết, để kiểm soát và quản lý mọi khía cạnh của Chef Server trung tâm. Những việc như thêm Node mới vào Chef Server trung tâm, xóa Node khỏi Chef Server trung tâm, sửa đổi cấu hình Node, v.v. đều có thể được quản lý từ chính Workstation.

Bây giờ chúng ta hãy xem, những thành phần nào của Workstation cần có để thực hiện các chức năng trên.

Máy trạm có hai thành phần chính:

Tiện ích dao: Công cụ dòng lệnh này có thể được sử dụng để giao tiếp với Chef Server trung tâm từ Workstation. Việc thêm, bớt, thay đổi cấu hình của các Nút trong Máy chủ Chef trung tâm sẽ được thực hiện bằng cách sử dụng tiện ích Knife này. Sử dụng tiện ích Knife, Sách dạy nấu ăn có thể được tải lên Máy chủ và Vai trò đầu bếp trung tâm, các môi trường cũng có thể được quản lý. Về cơ bản, mọi khía cạnh của Chef Server trung tâm có thể được điều khiển từ Workstation bằng tiện ích Knife.

Kho lưu trữ Chef cục bộ: Đây là nơi lưu trữ mọi thành phần cấu hình của Máy chủ Chef trung tâm. Kho lưu trữ Chef này có thể được đồng bộ hóa với Chef Server trung tâm (lại sử dụng chính tiện ích dao).

Chef Tutorial - Chef Server

Chef Server hoạt động như một trung tâm cho dữ liệu cấu hình. Chef Server lưu trữ Cookbook, các chính sách được áp dụng cho Node và siêu dữ liệu mô tả từng Node đã đăng ký đang được quản lý bởi Chef-Client.

Các nút sử dụng Chef-Client để hỏi Chef Server về chi tiết cấu hình, chẳng hạn như Công thức nấu ăn, Mẫu và bản phân phối tệp. Sau đó, Chef-Client thực hiện càng nhiều cấu hình càng tốt trên chính các Node (chứ không phải trên Chef Server). Mỗi Node được cài đặt phần mềm Chef Client, phần mềm này sẽ kéo xuống cấu hình từ Chef Server trung tâm áp dụng cho Node đó. Cách tiếp cận có thể mở rộng này phân phối nỗ lực cấu hình trong toàn tổ chức.

Hướng dẫn đầu bếp - Các nút đầu bếp

Các nút có thể là một máy chủ ảo dựa trên đám mây hoặc một máy chủ vật lý trong trung tâm dữ liệu của riêng bạn, được quản lý bằng Máy chủ Chef trung tâm. Thành phần chính cần có trên Node là một tác nhân sẽ thiết lập giao tiếp với Chef Server trung tâm. Đây được gọi là Chef Client.

Chef Client thực hiện các chức năng sau:

  • Nó có nhiệm vụ tương tác với Chef Server trung tâm.
  • Nó quản lý đăng ký ban đầu của Node vào Máy chủ đầu bếp trung tâm.
  • Nó kéo Cookbook xuống và áp dụng chúng trên Node, để cấu hình nó.
  • Bỏ phiếu định kỳ của Máy chủ đầu bếp trung tâm để lấy các mục cấu hình mới, nếu có.

Nhấp vào đây để tìm hiểu cách cài đặt Chef Server, Workstation và Node

cách cài đặt windows php

Hướng dẫn Đầu bếp - Ưu điểm của Đầu bếp:

Hướng dẫn Đầu bếp này sẽ không đầy đủ nếu, tôi không bao gồm các lợi ích chính của Đầu bếp:

  • Bạn có thể tự động hóa toàn bộ cơ sở hạ tầng bằng Chef. Tất cả các công việc được thực hiện thủ công, giờ đây có thể được thực hiện thông qua công cụ Chef.
  • Bạn có thể định cấu hình hàng nghìn nút trong vòng vài phút bằng Chef.
  • Tự động hóa đầu bếp hoạt động với phần lớn các dịch vụ đám mây công cộng như .
  • Chef sẽ không chỉ tự động hóa mọi thứ mà còn giữ cho hệ thống luôn được kiểm tra nhất quán và xác nhận rằng hệ thống trên thực tế đã được cấu hình theo cách nó được yêu cầu (Chef Agent / Client thực hiện công việc này). Nếu ai đó mắc lỗi khi sửa đổi tệp, Chef sẽ sửa nó.
  • Toàn bộ cơ sở hạ tầng có thể được ghi lại dưới dạng kho lưu trữ Chef, có thể được sử dụng như một bản thiết kế để tạo lại cơ sở hạ tầng từ đầu.

Tôi hy vọng bạn đã thích hướng dẫn Đầu bếp này cho đến bây giờ, đủ với các bài viết lý thuyết! hãy để chúng tôi có một số niềm vui với thực hành.

Hướng dẫn đầu bếp | Bắt đầu với đầu bếp | Edureka

Hướng dẫn đầu bếp - Thực hành

Sau đây tôi sẽ giải thích cho bạn cách tạo Recipe, Cookbook và Template trong Chef Workstation. Tôi cũng sẽ giải thích cho bạn cách triển khai Cookbook từ Workstation đến Chef-Client (Chef Node).

Tôi đang sử dụng hai Hình ảnh ảo một cho Chef Workstation và một cho Chef Node. Đối với Chef Server, tôi sẽ sử dụng phiên bản Chef được lưu trữ trên máy chủ (trên đám mây). Bạn cũng có thể sử dụng một máy vật lý cho Chef Server.

Bước 1: Cài đặt Chef DK (Bộ phát triển) trong Chef Workstation của bạn.

Chef DK là một gói chứa tất cả các công cụ phát triển mà bạn sẽ cần khi viết mã Chef. Đây là liên kết để tải về Đầu bếp DK .

Tại đây, chọn hệ điều hành mà bạn đang sử dụng. Tôi đang sử dụng CentOS 6.8. Vì vậy, tôi sẽ nhấp vào Red Hat Enterprise Linux .

Sao chép liên kết theo phiên bản CentOS mà bạn đang sử dụng. Tôi đang sử dụng CentOS 6, như bạn có thể thấy rằng tôi đã đánh dấu trong ảnh chụp màn hình ở trên.

Đi tới thiết bị đầu cuối Máy trạm của bạn và tải xuống Chef DK bằng cách sử dụng lệnh wget và dán liên kết.

Thực hiện điều này:

wget https://packages.chef.io/stable/el/6/chefdk-1.0.3-1.el6.x86_64.rpm

Gói hiện đã được tải xuống. Đã đến lúc cài đặt gói này bằng rpm.

Thực hiện điều này:

rpm -ivh chefdk-1.0.3-1.el6.x86_64.rpm

Chef DK hiện đã được cài đặt trong Máy trạm của tôi.

Bước 2: Tạo Công thức trong Máy trạm

Chúng ta hãy bắt đầu bằng cách tạo một Công thức trong Máy trạm và kiểm tra nó cục bộ để đảm bảo nó đang hoạt động.Tạo một thư mục có tên Chef-repo. Chúng ta có thể tạo Công thức của mình bên trong thư mục này.

Thực hiện điều này:

mkdir chef-repo cd chef-repo

Trong thư mục Chef-repo này, tôi sẽ tạo một Công thức có tên là edureka.rb. .rb là phần mở rộng được sử dụng cho ruby. Tôi sẽ sử dụng trình soạn thảo vim, bạn có thể sử dụng bất kỳ trình soạn thảo nào khác mà bạn muốn như gedit, emac, vi, v.v.

Thực hiện điều này:

vim edureka.rb

Ở đây thêm những thứ sau:

file '/ etc / motd' content 'Welcome to Chef' end

R nàyecipe dureka .rb tạo một tệp có tên / etc / motd với nội dung “Chào mừng đến với Đầu bếp”.

Bây giờ tôi sẽ sử dụng Công thức này để kiểm tra xem nó có hoạt động hay không.

Hành hình điều này:

Chef-apply edureka.rb

Vì vậy, có một tệp được tạo trong Chef-repo có nội dung Chào mừng đến với Chef.

Bước 3: Modifying tệp Recipe để cài đặt gói httpd

Tôi sẽ sửa đổi Công thức để cài đặt gói httpd trên Máy trạm của mình và sao chép tệp index.html vào gốc tài liệu mặc định để xác nhận cài đặt. Hành động mặc định cho tài nguyên gói là cài đặt, do đó tôi không cần chỉ định hành động đó một cách riêng biệt.

Hành hình điều này:

vim edureka.rb

Trên đây thêm những điều sau:

package 'httpd' service 'httpd' do action [: enable,: start] end file '/var/www/html/index.html' do content 'Chào mừng bạn đến với Apache in Chef' end

Bây giờ tôi sẽ áp dụng các cấu hình này bằng cách thực hiện lệnh dưới đây:

Hành hình điều này:

Chef-apply edureka.rb

Việc thực thi lệnh mô tả rõ ràng từng trường hợp trong Công thức. Nó cài đặt gói Apache, kích hoạt và khởi động dịch vụ httpd trên Máy trạm. Và nó tạo ra một tệp index.html trong gốc tài liệu mặc định với nội dung “Chào mừng bạn đến với Apache trong Chef”.

Bây giờ xác nhận cài đặt Apache2 bằng cách mở trình duyệt web của bạn. Nhập địa chỉ IP công cộng của bạn hoặc tên máy chủ của bạn. Trong trường hợp của tôi, đó là localhost.

Bước 4: Bây giờ chúng ta sẽ tạo Cookbook đầu tiên của mình.

Tạo một thư mục gọi là sách nấu ăn và thực hiện lệnh dưới đây để tạo Sách nấu ăn.

Hành hình điều này:

mkdir sách nấu ăn cd sách nấu ăn đầu bếp tạo sách nấu ăn httpd_deploy

httpd_deploy là tên được đặt cho Cookbook. Bạn có thể đặt bất kỳ tên nào mà bạn muốn.

Hãy để chúng tôi chuyển đến thư mục mới này httpd_deploy.

Hành hình điều này:

cd httpd_deploy

Bây giờ chúng ta hãy xem cấu trúc tệp của Cookbook đã tạo.

Hành hình điều này:

cây

Bước 5: Create một tệp Mẫu.

Trước đó, tôi đã tạo một tệp có một số nội dung, nhưng nội dung đó không thể phù hợp với các cấu trúc Recipes và Cookbook của tôi. Vì vậy, hãy để chúng tôi xem cách chúng tôi có thể tạo Mẫu cho trang index.html.

Hành hình điều này:

đầu bếp tạo mẫu httpd_deploy index.html

Bây giờ nếu bạn thấy cấu trúc tệp Cookbook của tôi, có một thư mục được tạo với các mẫu tên với tệp index.html.erb. Tôi sẽ chỉnh sửa tệp mẫu index.html.erb này và thêm Công thức của tôi vào đó. Tham khảo ví dụ dưới đây:

Chuyển đến thư mục mặc định

Hành hình điều này:

cd / root / chef-repo / cookbook / httpd_deploy / templates / default

Tại đây, hãy chỉnh sửa mẫu index.html.erb bằng cách sử dụng bất kỳ trình chỉnh sửa nào bạn cảm thấy thoải mái. Tôi sẽ sử dụng trình soạn thảo vim.

Hành hình điều này:

vim index.html.erb

Bây giờ hãy thêm những thứ sau:

Chào mừng bạn đến với Chef Apache Deployment

Bước 6: Ctrình bày một Công thức với mẫu này.

Đi tới thư mục Công thức nấu ăn.

Thực hiện t của anh ấy:

cd / root / chef-repo / cookbooks / httpd_deploy / Cooking

Bây giờ chỉnh sửa tệp default.rb bằng cách sử dụng bất kỳ trình chỉnh sửa nào bạn muốn. Tôi sẽ sử dụng trình soạn thảo vim.

Hành hình điều này:

vim default.rb

Trên đây thêm những điều sau:

gói 'httpd' dịch vụ 'httpd' thực hiện hành động [: enable,: start] end template '/var/www/html/index.html' do source 'index.html.erb' end

Bây giờ tôi sẽ quay lại thư mục Chef-repo của mình và chạy / thử nghiệm công thức của tôi trên Máy trạm của tôi.

Hành hình điều này:

cd / root / chef-repo chef-client --local-mode --runlist 'công thức [httpd_deploy]'

Theo Công thức của tôi, Apache được cài đặt trên Máy trạm của tôi, dịch vụ đang được khởi động và kích hoạt khi khởi động. Ngoài ra, một tệp mẫu đã được tạo trên gốc tài liệu mặc định của tôi.

Bây giờ tôi đã thử nghiệm Máy trạm của mình. Đã đến lúc thiết lập Chef Server.

Bước 7: Thiết lập Máy chủ Chef

Tôi sẽ sử dụng phiên bản Chef Server được lưu trữ trên đám mây nhưng bạn cũng có thể sử dụng máy vật lý. Chef-Server này hiện diện tại management.chef.io

Tại đây, hãy tạo một tài khoản nếu bạn chưa có. Khi bạn đã tạo tài khoản, hãy đăng nhập bằng thông tin đăng nhập của bạn.

Đây là cách Chef Server trông như thế nào.

Nếu bạn đăng nhập lần đầu tiên, điều đầu tiên bạn sẽ làm là tạo một tổ chức. Tổ chức về cơ bản là một nhóm Máy móc mà bạn sẽ quản lý với Máy chủ đầu bếp.

Đầu tiên, tôi sẽ chuyển đến tab quản trị. Ở đó, tôi đã tạo ra một tổ chức tên là edu. Vì vậy, tôi cần tải xuống bộ khởi động trong Máy trạm của mình. Bộ khởi động này sẽ giúp bạn đẩy tệp từ Máy trạm đến Máy chủ đầu bếp. Nhấp vào biểu tượng cài đặt ở phía bên phải và nhấp vào Bộ khởi động.

Khi bạn nhấp vào đó, bạn sẽ nhận được một tùy chọn để tải xuống Bộ khởi động. Chỉ cần nhấp vào nó để tải xuống tệp zip Starter Kit.

Di chuyển tệp này vào thư mục gốc của bạn.Bây giờ giải nén tệp zip này bằng cách sử dụng lệnh giải nén trong thiết bị đầu cuối của bạn. Bạn sẽ nhận thấy rằng nó bao gồm một thư mục được gọi là Chef-repo.

Hành hình điều này:

giải nén đầu bếp-starter.zip

Bây giờ di chuyển bộ khởi động này vào thư mục sách nấu ăn trong thư mục Chef-repo.

Hành hình điều này:

mv starter / root / chef-repo / cookbook

Sách dạy nấu ăn có sẵn trong Siêu thị sách dạy nấu ăn, chúng ta có thể đến với Siêu thị sách dạy nấu ăn. Tải xuống Sách dạy nấu ăn bắt buộc từ siêu thị.chef.io . Tôi đang tải xuống một trong những Cookbook để cài đặt Apache từ đó.

Hành hình e t h Là:

Tải xuống trang web dạy nấu ăn dao cd Chef-repo learning_chef_httpd

Có Tar ball được tải xuống cho Apache Cookbook. Bây giờ, chúng ta cần trích xuất nội dung từ tệp Tar đã tải xuống này. Đối với điều đó, tôi sẽ sử dụng lệnh tar.

tar -xvf learning_chef_httpd-0.2.0.tar.gz

Tất cả các tệp cần thiết được tạo tự động trong Sách dạy nấu ăn này. Không cần phải thực hiện bất kỳ sửa đổi nào. Hãy kiểm tra mô tả Công thức bên trong thư mục công thức nấu ăn của tôi.

Thực hiện t h :

cd / root / chef-repo / learning_chef_httpd / Cooking cat default.rb

Bây giờ, tôi sẽ chỉ tải sách dạy nấu ăn này lên Máy chủ đầu bếp của tôi vì nó trông rất hoàn hảo đối với tôi.

Bước 8: Tải Sách dạy nấu ăn lên Máy chủ đầu bếp.

Để tải lên Apache Cookbook mà tôi đã tải xuống, trước tiên hãy di chuyển tệp learning_chef_httpd này vào thư mục Cookbooks trong Chef-repo. Sau đó, thay đổi thư mục của bạn thành sách nấu ăn.

Thực hiện t h :

mv / root / chef-repo / learning_chef_httpd / root / chef-repo / cookbooks

Bây giờ chuyển đến thư mục sách nấu ăn này.

Thực hiện điều này:

sách nấu ăn cd

Bây giờ trong thư mục này, hãy thực hiện lệnh dưới đây để tải lên Apache Cookboođến:

Exec oto t h Là:

tải lên sách dạy nấu dao learning_chef_httpd

Xác minh Sách nấu ăn từ bảng điều khiển Quản lý Máy chủ Đầu bếp. Trong phần chính sách, bạn sẽ tìm thấy Sách dạy nấu ăn mà bạn đã tải lên. Tham khảo ảnh chụp màn hình bên dưới:

Bây giờ bước cuối cùng của chúng ta là thêm Chef Node. Tôi đã thiết lập Máy trạm, Máy chủ Chef và bây giờ tôi cần thêm Khách hàng của mình vào Máy chủ Chef để tự động hóa.

Bước 9: Thêm Chef Node vào Chef Server.

Với mục đích trình diễn, tôi sẽ sử dụng một máy CentOS làm Chef Node. Có thể có hàng trăm nút kết nối với một Chef Server. Màu đầu cuối của máy Node của tôi khác với Máy trạm để bạn có thể phân biệt giữa cả hai.

Tôi chỉ cần địa chỉ IP của Node của mình để thực hiện lệnh dưới đây trong Node machin của mìnhLà.

Exec u t t h Là:

ifconfig

Tôi sẽ thêm Chef Node của mình vào Server bằng cách thực hiện lệnh Knife Bootstrap, trong đó tôi sẽ chỉ định địa chỉ IP của Chef Node và tên của nó. Thực hiện lệnh được hiển thị belotrong:

Exec oto t h Là:

dao bootstrap 192.168.56.102 --ssh-user root --ssh-password edureka --node-name chefNode

Lệnh này cũng sẽ khởi tạo cài đặt Chef-Client trong Chef Node. Bạn có thể xác minh nó từ CLI trên Máy trạm bằng lệnh dao, như minh họa belotrong:

Exec oto t h Là:

Danh sách nút dao

Bạn cũng có thể xác minh từ Chef Server. Đi tới tab nút trong Bảng điều khiển quản lý máy chủ của bạn, tại đây bạn sẽ nhận thấy rằng nút mà bạn đã thêm đang hiện diện. Tham khảo ảnh chụp màn hình bên dưới.

Bước 10: Quản lý danh sách chạy nút

Hãy xem cách chúng ta có thể thêm Cookbook vào Node và quản lý danh sách Run của nó từ Chef Server. Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, nhấp vào tab Hành động và chọn tùy chọn Chỉnh sửa danh sách Chạy để quản lý danh sách Chạy.

Trong Công thức có sẵn, bạn có thể xem Công thức learning_chef_httpd của chúng tôi, bạn có thể kéo Công thức đó từ các gói có sẵn vào Danh sách Chạy hiện tại và lưu danh sách Chạy.

Bây giờ đăng nhập vào Node của bạn và chỉ cần chạy đầu bếp-khách hàng để thực hiện Run List

Exec oto t h Là:

khách hàng chính

Tôi hy vọng bạn thích Hướng dẫn đầu bếp này và biết được cách sử dụng Chef để định cấu hình hàng trăm nút. Đầu bếp đang đóng một vai trò quan trọng trong nhiều tổ chức để đạt được DevOps. Với các tổ chức Chef đang phát hành các ứng dụng thường xuyên hơn vàbly.

Nếu bạn tìm thấy blog này trên “ Hướng dẫn đầu bếp ' 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, Chef, Jenkins, Nagios và GIT để tự động hóa nhiều bước trong SDLC.