Chef là ứng dụng Infrastructure as Code (IaC) miễn phí và mã nguồn mở. Đây là hệ thống quản lý cấu hình cho phép quản trị viên cung cấp và quản lý cơ sở hạ tầng bằng cách tự động hóa. Một quy trình làm việc Chef hoàn chỉnh bao gồm một hoặc nhiều Chef Workstation, một Chef Server và một tập hợp các nút. Hướng dẫn này cung cấp một số thông tin cơ bản về cách Chef hoạt động và giải thích cách cài đặt và cấu hình Chef trên Ubuntu 20.04.
Chef là gì?
Chef là một ứng dụng IaC để tự động hóa và hợp lý hóa quy trình cung cấp, cấu hình, triển khai và quản lý các nút mạng. Nó cho phép triển khai liên tục và môi trường tự động. Chef có thể quản lý nhiều loại thành phần bao gồm máy chủ, vùng chứa và cơ sở hạ tầng mạng.
Chef hoạt động bằng kiến trúc hub-and-spoke, với Chef Server chính ở trung tâm. Một hoặc nhiều Chef Workstation tương tác với Server, tự động cấu hình một hoặc nhiều nút Chef. Tài sản cấu hình di chuyển từ máy trạm đến máy chủ và cuối cùng đến các nút. Các máy trạm không thể tương tác trực tiếp với các nút. Cơ sở hạ tầng Chef bao gồm các thành phần sau.
- Chef Workstation : Một workstation là một máy chủ để tạo và kiểm tra mã cấu hình. Sau đó, mã được đẩy đến Chef Server. Một số workstation có thể tương tác với cùng một máy chủ, nhưng mỗi workstation chỉ liên kết đến một máy chủ. Tài liệu Chef Workstation có nhiều thông tin hơn về cách sử dụng workstation.
- Chef Server : Chef Server là “trung tâm chỉ huy” cho toàn bộ hệ thống. Nó lưu trữ và duy trì tất cả các tệp cấu hình, mã và tập lệnh. Chef Server bao gồm nhiều thành phần, bao gồm máy chủ web và cơ sở dữ liệu PostgreSQL. Nó chịu trách nhiệm đẩy các tài sản có liên quan đến các nút khác nhau và theo dõi các nút do nó quản lý. Mỗi máy chủ đều có khả năng cao, hiệu quả và mạnh mẽ, và có khả năng quản lý một số lượng lớn các nút.
- Chef Node : Chef Server triển khai và quản lý một node bằng cách sử dụng các tài sản được phát triển trên Chef Workstation. Mỗi node được quản lý bởi một Chef Server duy nhất. Mặc dù phụ thuộc vào server, Chef Node chứa một Chef client. Client truy vấn server để cập nhật và giữ cho node được cập nhật.
Hình minh họa sau đây chỉ ra mối quan hệ giữa ba phần của hệ thống Chef.

Các máy trạm sử dụng lệnh Chef, chẳng hạn như chỉ knife
thị, để tương tác với máy chủ. Chef kết hợp bảo mật và xác thực bổ sung vào tất cả các hoạt động của mình, sử dụng mã hóa khóa công khai. Tuy nhiên, hệ thống Chef phức tạp và có đường cong học tập cao.
Đầu bếp sử dụng thuật ngữ đặc biệt dựa trên từ vựng nấu ăn. Một số thuật ngữ quan trọng hơn bao gồm:
- Thuộc tính : Chỉ định giá trị cho một mục trên một nút.
- Bookshelf : Lưu trữ nhiều sách dạy nấu ăn và tài sản khác nhau trên Chef Server bằng cách sử dụng kiểm soát phiên bản.
- Chef-client : Chạy trên nút và chịu trách nhiệm xác minh xem nút có cập nhật các tài sản được lưu trữ trên máy chủ hay không.
- Chef-repo : Một thư mục trên Chef Workstation chứa các sách hướng dẫn nấu ăn cục bộ và các tệp cấu hình.
- Cookbook : Phương pháp chính để quản lý các nút. Nó chứa thông tin mô tả trạng thái cuối cùng của một nút. Máy chủ Chef và nút sử dụng cookbook để hướng dẫn cấu hình. Cookbook chứa các công thức , cùng với các thuộc tính, thư viện, mẫu và tập lệnh. Các cookbook này có thể được phát triển trên máy trạm hoặc tải xuống từ Chef Supermarket .
- Môi trường : Thu thập các nút thành các nhóm để tổ chức chúng tốt hơn. Các cấu hình và tập lệnh tương tự có thể được áp dụng cho toàn bộ nhóm.
- Knife : Một Chef Workstation sử dụng
knife
công cụ để tương ứng với Chef Server. Mộtknife
lệnh thường có định dạngknife subcommand [ARGUMENT] (options)
. - Recipe : Một recipe được chứa trong một cookbook. Nó giải thích các tài nguyên để thêm, thay đổi hoặc chạy trên node. Recipe được viết bằng Ruby.
- Tài nguyên : Tài nguyên là một phần của công thức. Nó chứa loại, tên và danh sách các cặp khóa-giá trị cho một thành phần.
- Bếp thử nghiệm : Đây là mô-đun máy trạm giúp người dùng thử nghiệm công thức nấu ăn trước khi triển khai.
Linode có Hướng dẫn hữu ích cho người mới bắt đầu về Chef . Để biết thông tin chi tiết về Chef, hãy xem tài liệu Chef . Chef cũng cung cấp tài nguyên đào tạo Learn Chef .
Trước khi bạn bắt đầu
- Nếu bạn chưa thực hiện, hãy tạo một tài khoản Linode và Compute Instance. Xem hướng dẫn Bắt đầu với Linode và Tạo Compute Instance của chúng tôi .
- Làm theo hướng dẫn Thiết lập và Bảo mật Phiên bản Compute của chúng tôi để cập nhật hệ thống của bạn. Bạn cũng có thể muốn đặt múi giờ, cấu hình tên máy chủ, tạo tài khoản người dùng giới hạn và tăng cường quyền truy cập SSH.
- Cần có ít nhất ba hệ thống Linode chạy Ubuntu 20.04 để triển khai hệ thống Chef. Một máy chủ dành cho Chef Workstation, máy chủ thứ hai dành cho Chef Server, trong khi máy chủ thứ ba đại diện cho một nút đang được quản trị. Do nhu cầu bộ nhớ của Chef, Chef Server yêu cầu Linode 8GB. Hai máy chủ còn lại có thể là Linode 2GB. Cả Chef Server và Chef Workstation đều phải được cấu hình bằng các hướng dẫn trước đó. Chef được sử dụng để thiết lập nút mục tiêu.
- Đảm bảo tất cả máy chủ Linode được cập nhật bằng lệnh sau.
sudo apt update && sudo apt upgrade
- Gán tên miền cho Chef Server. Để biết thông tin về tên miền và trỏ tên miền đến Linode, hãy xem hướng dẫn Linode DNS Manager .
- Cấu hình tên máy chủ của Chef Server sao cho khớp với tên miền. Điều này cho phép phân bổ chứng chỉ SSL diễn ra bình thường. Để đặt tên máy chủ của máy chủ Ubuntu, hãy sử dụng lệnh
sudo hostnamectl set-hostname <hostname>
, thay thế<hostname>
bằng tên miền thực tế của bạn.
Ghi chú: Hướng dẫn này được viết cho người dùng không phải root. Các lệnh yêu cầu quyền nâng cao được thêm tiền tố sudo
. Nếu bạn không quen với sudo
lệnh, hãy xem hướng dẫn Người dùng và Nhóm .
Cách cài đặt và cấu hình Chef Server
Vì Chef Server hoạt động như một trung tâm cho toàn bộ hệ thống, tốt nhất là cài đặt và cấu hình nó trước. Chef Server sử dụng nhiều tài nguyên, vì vậy điều quan trọng là phải sử dụng Linode chuyên dụng có ít nhất 8GB bộ nhớ.
Cách cài đặt máy chủ Chef
Có thể tải xuống Chef Server Core bằng cách sử dụng wget
. Các bước sau đây sẽ hướng dẫn cách tải xuống bản phát hành mới nhất của Chef cho bản phát hành Ubuntu 20.04. Đối với các bản phát hành khác của Ubuntu, hãy xem trang tải xuống Chef . Để biết hướng dẫn chi tiết hơn, hãy xem trang cài đặt Chef Server . Để cài đặt Chef Server, hãy làm theo các bước sau.
1.Tải xuống lõi Chef Server bằng cách sử dụng wget
.
wget https://packages.chef.io/files/stable/chef-server/15.1.7/ubuntu/20.04/chef-server-core_15.1.7-1_amd64.deb
2.Cài đặt lõi máy chủ.
sudo dpkg -i chef-server-core_*.deb
Selecting previously unselected package chef-server-core.
(Reading database ... 108635 files and directories currently installed.)
Preparing to unpack chef-server-core_15.1.7-1_amd64.deb ...
Unpacking chef-server-core (15.1.7-1) ...
Setting up chef-server-core (15.1.7-1) ...
Thank you for installing Chef Infra Server!
3.Để bảo mật tốt hơn và tiết kiệm dung lượng máy chủ, hãy xóa .deb
tệp đã tải xuống.
rm chef-server-core_*.deb
4.Khởi động máy chủ Chef. Trả lời yes
khi được nhắc chấp nhận giấy phép sản phẩm.
sudo chef-server-ctl reconfigure
Cách cấu hình người dùng và tổ chức Chef
Để sử dụng Chef, hãy cấu hình một tổ chức và ít nhất một người dùng trên Chef Server. Điều này cho phép truy cập máy chủ cho các máy trạm và nút. Để tạo các tài khoản này, hãy làm theo các bước sau.
1.Tạo một .chef
thư mục để lưu trữ khóa. Đây phải là một thư mục con nằm bên trong thư mục gốc.
mkdir .chef
2.Sử dụng chef-server-ctl
lệnh để tạo tài khoản người dùng cho quản trị viên Chef. Có thể tạo thêm tài khoản người dùng sau. Thay thế các trường USER_NAME
, FIRST_NAME
, LAST_NAME
, EMAIL
, và PASSWORD
bằng thông tin có liên quan. Đối với --filename
đối số, hãy thay thế USER_NAME.pem
bằng tên người dùng đã sử dụng trước đó trong lệnh.
sudo chef-server-ctl user-create USER_NAME FIRST_NAME LAST_NAME EMAIL 'PASSWORD' --filename ~/.chef/USER_NAME.pem
3.Xem lại danh sách người dùng và xác nhận tài khoản hiện đã tồn tại.
sudo chef-server-ctl user-list
USER_NAME
4.Tạo một tổ chức mới, cũng sử dụng chef-server-ctl
lệnh. Thay thế ORG_NAME
và ORG_FULL_NAME
bằng tên thực tế của tổ chức. ORG_NAME
Trường phải toàn bộ là chữ thường. Giá trị for USER_NAME
phải là cùng tên được sử dụng trong user-create
lệnh. Đối với --filename
đối số, trong ORG_NAME.pem
, hãy thay thế ORG_NAME
bằng tên tổ chức được sử dụng ở nơi khác trong lệnh.
sudo chef-server-ctl org-create ORG_NAME "ORG_FULL_NAME" --association_user USER_NAME --filename ~/.chef/ORG_NAME.pem
5.Liệt kê các tổ chức để xác nhận tổ chức mới đã được tạo thành công.
sudo chef-server-ctl org-list
ORG_NAME
Cách cài đặt và cấu hình Chef Workstation
Chef Workstation dành cho người dùng tạo và thử nghiệm công thức nấu ăn. Bất kỳ Linode nào có ít nhất 2GB bộ nhớ đều có thể được sử dụng cho tác vụ này. Không giống như Chef Server, một máy trạm cũng có thể được sử dụng cho các tác vụ khác. Tuy nhiên, trong một tổ chức lớn hơn lưu trữ nhiều người dùng, thường hiệu quả hơn khi tập trung các hoạt động của máy trạm trên một máy chủ lưu trữ nhiều tài khoản.
Cách cài đặt Chef Workstation
Các bước cài đặt Chef Workstation tương tự như các bước cài đặt Server. Tải xuống tệp chính xác bằng cách sử dụng wget
, sau đó cài đặt. Để cài đặt Chef Workstation, hãy làm theo các bước sau.
1.Tải xuống các tệp nguồn cho Chef Workstation. Đối với các bản phát hành khác nhau của Workstation hoặc tải xuống các bản phát hành trước đó, hãy xem trang Tải xuống Chef Workstation . Để biết thêm thông tin về quy trình cài đặt, hãy xem Tài liệu cài đặt Chef Workstation .
wget https://packages.chef.io/files/stable/chef-workstation/22.10.1013/ubuntu/20.04/chef-workstation_22.10.1013-1_amd64.deb
2.Cài đặt Chef Workstation.
sudo dpkg -i chef-workstation_*.deb
Thank you for installing Chef Workstation!
3.Xóa tệp nguồn.
rm chef-workstation_*.deb
4.Xác nhận phiên bản chính xác của Chef Workstation đã được cài đặt.
chef -v
Chef Workstation version: 22.10.1013
Chef Infra Client version: 17.10.0
Chef InSpec version: 4.56.20
Chef CLI version: 5.6.1
Chef Habitat version: 1.6.521
Test Kitchen version: 3.3.2
Cookstyle version: 7.32.1
Cách cấu hình trạm làm việc Chef
Một số mục khác phải được cấu hình trước khi Máy trạm hoạt động. Các tác vụ bao gồm tạo kho lưu trữ, chỉnh sửa tệp hosts
và tạo thư mục con. Để cấu hình đầy đủ máy trạm, hãy làm theo các bước sau.
1.Tạo chef-repo
kho lưu trữ. Thư mục này lưu trữ các sách dạy nấu ăn và công thức nấu ăn của Chef. Nhập yes
khi được hỏi có chấp nhận giấy phép sản phẩm hay không.
chef generate repo chef-repo
Your new Chef Infra repo is ready! Type `cd chef-repo` to enter it.
2.Chỉnh sửa /etc/hosts
tệp. Tệp này chứa các ánh xạ giữa tên máy chủ và địa chỉ IP của chúng. Thêm một mục nhập cho Chef Server, chứa tên máy chủ, cũng là tên miền và địa chỉ IP của máy chủ. Trong ví dụ này, điều này được chỉ ra trong dòng 192.0.1.0 example.com
. Cũng phải có một mục nhập cho máy chủ cục bộ. Đây là dòng 192.0.2.0 chefworkstation
trong ví dụ. Mục nhập này phải chứa địa chỉ IP cục bộ và tên máy chủ của máy chủ lưu trữ Chef Workstation. Tệp phải giống với ví dụ sau.
127.0.0.1 localhost
192.0.1.0 example.com
192.0.2.0 chefworkstation
3.Tạo một .chef
thư mục con. Đây là nơi knife
lưu trữ tệp, cùng với các tệp để mã hóa và bảo mật.
mkdir ~/chef-repo/.chef
cd chef-repo
Cách Thêm Khóa Riêng RSA
Khóa riêng RSA cho phép bảo mật tốt hơn giữa Chef Server và các máy trạm liên quan thông qua việc sử dụng mã hóa. Trước đó, khóa riêng RSA được tạo trên Chef Server. Sao chép các khóa này vào máy trạm cho phép máy trạm giao tiếp với máy chủ. Để bật mã hóa bằng khóa riêng RSA, hãy làm theo các bước sau.
Ghi chú: Xác thực mật khẩu SSH phải được bật trên Chef Server để hoàn tất trao đổi khóa. Nếu xác thực mật khẩu SSH đã bị tắt để bảo mật tốt hơn, hãy bật lại trước khi tiếp tục. Sau khi các khóa đã được lấy và thêm vào máy trạm, xác thực mật khẩu SSH có thể được tắt lại. Xem hướng dẫn của Linode về
Cách bảo mật máy chủ của bạn để biết thêm thông tin.
1.Trên máy trạm, tạo cặp khóa RSA. Khóa này có thể được sử dụng để truy cập ban đầu vào máy chủ Chef để sao chép các tệp mã hóa riêng tư.
ssh-keygen -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
2.Nhấn phím Enter để chấp nhận tên tệp mặc định id_rsa
và id_rsa.pub
. Ubuntu lưu trữ các tệp này trong /home/username/.ssh
thư mục.
Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):
3.Nhập mật khẩu khi được nhắc, sau đó nhập lại. Mã định danh và khóa công khai được lưu vào thư mục.
Your identification has been saved in /home/username/.ssh/id_rsa
Your public key has been saved in /home/username/.ssh/id_rsa.pub
4.Sao chép khóa công khai mới từ máy trạm đến Chef Server. Trong lệnh sau, sử dụng tên tài khoản cho Chef Server cùng với địa chỉ IP của nó.
ssh-copy-id username@192.0.1.0
5.Sử dụng scp
lệnh để sao chép .pem
các tệp từ Chef Server vào máy trạm. Trong ví dụ sau, thay thế username
bằng tài khoản người dùng cho Chef Server và 192.0.1.0
bằng địa chỉ IP thực tế của Chef Server.
scp username@192.0.1.0:~/.chef/*.pem ~/chef-repo/.chef/
Enter passphrase for key '/home/username/.ssh/id_rsa':
username.pem 100% 1674 1.7MB/s 00:00
testcompany.pem 100% 1678 4.7MB/s 00:00
6.Liệt kê nội dung của .chef
thư mục con để đảm bảo .pem
các tập tin đã được sao chép thành công.
ls ~/chef-repo/.chef
username.pem testcompany.pem
Cách cấu hình Git trên máy trạm Chef
Hệ thống kiểm soát phiên bản giúp Chef Workstation theo dõi mọi thay đổi đối với cookbook và khôi phục các phiên bản trước đó nếu cần. Ví dụ này sử dụng Git, tương thích với hệ thống Chef. Các bước sau đây giải thích cách cấu hình Git, khởi tạo kho lưu trữ Git, thêm tệp mới và cam kết chúng.
1.Cấu hình Git bằng git config
lệnh. Thay thế username
và user@email.com
bằng giá trị của riêng bạn.
git config --global user.name username
git config --global user.email user@email.com
2.Thêm .chef
thư mục vào .gitignore
tệp. Điều này đảm bảo các tệp hệ thống và tệp tự động tạo không được hiển thị trong đầu ra của git status
và các lệnh Git khác.
echo ".chef" > ~/chef-repo/.gitignore
3.Đảm bảo chef-repo
thư mục là thư mục làm việc hiện tại. Thêm và cam kết các tệp hiện có bằng cách sử dụng git add
và git commit
.
cd ~/chef-repo
git add .
git commit -m "initial commit"
[master (root-commit) a3208a3] initial commit
13 files changed, 343 insertions(+)
create mode 100644 .chef-repo.txt
...
create mode 100644 policyfiles/README.md
4.Chạy git status
lệnh để đảm bảo tất cả các tệp đã được cam kết.
git status
On branch master
nothing to commit, working tree clean
Cách tạo ra một Chef Cookbook
Để tạo một sách dạy nấu ăn mới của Chef, hãy sử dụng chef generate
lệnh.
chef generate cookbook my_cookbook
Cách cấu hình tiện ích Knife
Tiện ích Chef Knife giúp máy trạm Chef giao tiếp với máy chủ. Tiện ích này cung cấp phương pháp quản lý sổ tay nấu ăn, nút và môi trường Chef. Chef sử dụng tệp config.rb
trong .chef
thư mục con để lưu trữ cấu hình Knife. Để cấu hình Knife, hãy làm theo các bước sau.
1.Tạo một config.rb
tệp trong ~/chef-repo/.chef
thư mục. Ví dụ này sử dụng vi
, nhưng có thể sử dụng bất kỳ trình soạn thảo văn bản nào.
cd ~/chef-repo/.chef
vi config.rb
2.Sử dụng tệp sau đây config.rb
làm ví dụ về cách cấu hình Knife. Sao chép cấu hình mẫu này vào tệp.
current_dir = File.dirname(__FILE__)
log_level :info
log_location STDOUT
node_name 'node_name'
client_key "USER.pem"
validation_client_name 'ORG_NAME-validator'
validation_key "ORG_NAME-validator.pem"
chef_server_url 'https://example.com/organizations/ORG_NAME'
cache_type 'BasicFile'
cache_options( :path => "#{ENV['HOME']}/.chef/checksums" )
cookbook_path ["#{current_dir}/../cookbooks"]
3.Thực hiện những thay đổi sau:
node_name
phải là tên của tài khoản người dùng được tạo khi cấu hình Máy chủ Chef.- Đối với
client_key
, hãy thay thếUSER
bằng tên người dùng được liên kết với.pem
tệp, theo sau là.pem
. validation_client_name
yêu cầu giống nhưORG_NAME
khi tạo tổ chức theo sau là-validator
.- trường này
validation_key
phải chứa tên được sử dụngORG_NAME
khi tổ chức được thành lập, theo sau là-validator.pem
. - Đối với
chef_server_url
, hãy đổiexample.com
tên miền. Theo sau tên miền là/organizations/
vàORG_NAME
được sử dụng khi tạo tổ chức. - Giữ nguyên các trường còn lại.
4.Quay lại thư chef-repo
mục và lấy chứng chỉ SSL cần thiết từ máy chủ bằng knife fetch
lệnh
Ghi chú: Chứng chỉ SSL được tạo khi máy chủ Chef được cài đặt. Các chứng chỉ được tự ký. Điều này có nghĩa là cơ quan cấp chứng chỉ chưa xác minh chúng. Trước khi lấy chứng chỉ, hãy đăng nhập vào máy chủ Chef và đảm bảo tên máy chủ và tên miền đủ điều kiện (FQDN) giống nhau. Các giá trị này có thể được xác nhận bằng lệnh hostname
và hostname -f
.
5.Để xác nhận config.rb
tệp là đúng, hãy chạy knife client list
lệnh. Tên trình xác thực có liên quan sẽ được hiển thị.
knife client list
testcompany-validator
Cách khởi động một node
Tại thời điểm này, cả Chef Server và Chef Workstation đều đã được cấu hình. Bây giờ chúng có thể được sử dụng để khởi động nút. Quá trình khởi động cài đặt máy khách chef trên nút và thực hiện xác thực. Sau đó, nút có thể truy xuất bất kỳ bản cập nhật cần thiết nào từ Chef Server. Để khởi động nút, hãy làm theo các bước sau.
1.Đăng nhập vào nút mục tiêu, là nút cần khởi động và chỉnh sửa tệp /etc/hosts
. Thêm các mục nhập cho nút, tên miền máy chủ Chef và máy trạm. Tệp phải giống với ví dụ sau, sử dụng tên thực tế của Máy chủ Chef, máy trạm và nút mục tiêu, cùng với địa chỉ IP của chúng.
127.0.0.1 localhost
192.0.100.0 targetnode
192.0.2.0 chefworkstation
192.0.1.0 example.com
2.Quay lại Linode lưu trữ Chef Workstation và thay đổi thư mục làm việc thành ~/chef-repo/.chef
.
cd ~/chef-repo/.chef
3.Khởi động nút bằng knife bootstrap
lệnh. Chỉ định địa chỉ IP của nút mục tiêu cho node_ip_address
. Đây là địa chỉ của nút để khởi động. Trong ví dụ sau, sử dụng tên người dùng và mật khẩu thực tế cho tài khoản thay cho username
và password
. Nhập tên của nút thay cho nodename
. Trả lời Y
khi được hỏi “Bạn có chắc chắn muốn tiếp tục kết nối không”.
Ghi chú: Tùy chọn khởi động bằng xác thực cặp khóa có vẻ như không còn được hỗ trợ nữa.
knife bootstrap node_ip_address -U username -P password --sudo --use-sudo-password --node-name nodename
4.Xác nhận nút đã được khởi động thành công. Liệt kê các nút máy khách bằng lệnh knife client list
. Tất cả các nút đã khởi động phải được liệt kê.
knife client list
target-node
testcompany-validator
5.Thêm nút khởi động vào /etc/hosts
tệp máy trạm như sau. Thay thế 192.0.100.0 targetnode
bằng địa chỉ IP và tên của nút khởi động.
127.0.0.1 localhost
192.0.1.0 example.com
192.0.2.0 chefworkstation
192.0.100.0 targetnode
Cách tải xuống và áp dụng a Cookbook (Tùy chọn)
Cookbook là cách hiệu quả nhất để giữ cho các nút mục tiêu được cập nhật. Ngoài ra, cookbook có thể xóa tệp validation.pem
được tạo trên nút khi nó được khởi động. Điều quan trọng là phải xóa tệp này vì lý do bảo mật.
Không bắt buộc phải tải xuống hoặc tạo sách dạy nấu ăn để sử dụng Chef. Nhưng phần này cung cấp một ví dụ ngắn gọn về cách tải xuống sách dạy nấu ăn và áp dụng vào một nút.
1.Trên máy trạm Chef, hãy chuyển đến ~/chef-repo/.chef
thư mục.
cd ~/chef-repo/.chef
2.Tải xuống cron-delvalidate
sách dạy nấu ăn từ Chef Supermarket. Để biết thêm thông tin về supermarket
lệnh, hãy xem tài liệu của Chef supermarket .
knife supermarket download cron-delvalidate
Downloading cron-delvalidate from Supermarket at version 0.1.3 to /home/username/chef-repo/.chef/cron-delvalidate-0.1.3.tar.gz
Cookbook saved: /home/username/chef-repo/.chef/cron-delvalidate-0.1.3.tar.gz
3.Nếu sách dạy nấu ăn được tải xuống dưới dạng .tar.gz
tệp, hãy sử dụng tar
lệnh để giải nén tệp đó. Di chuyển thư mục đã giải nén đến thư cookbooks
mục.
tar -xf cron-delvalidate-0.1.3.tar.gz
cp -r cron-delvalidate ~/chef-repo/cookbooks/
4.Xem lại tệp của sách hướng dẫn nấu ăn default.rb
để xem công thức. Công thức này được viết bằng Ruby và minh họa cách một công thức điển hình được cấu trúc. Công thức này chứa một công việc cron có tên là clientrun
. Công việc này khởi tạo một công việc cron mới để chạy chef-client
lệnh theo giờ. Công việc này cũng xóa validation.pem
tệp không cần thiết.
#
# Cookbook Name:: cron-delvalidate
# Recipe:: Chef-Client Cron & Delete Validation.pem
#
#
cron "clientrun" do
minute '0'
hour '*/1'
command "/usr/bin/chef-client"
action :create
end
file "/etc/chef/validation.pem" do
action :delete
end
5.Thêm công thức vào danh sách chạy cho nút. Trong lệnh sau, thay thế nodename
bằng tên của nút.
knife node run_list add nodename 'recipe[cron-delvalidate::default]'
nodename:
run_list: recipe[cron-delvalidate::default]
6.Tải sách dạy nấu ăn và công thức nấu ăn lên Máy chủ đầu bếp.
knife cookbook upload cron-delvalidate
Uploading cron-delvalidate [0.1.3]
Uploaded 1 cookbook.
7.Chạy chef-client
lệnh trên nút bằng knife ssh
tiện ích. Lệnh này khiến nút kéo các công thức trong danh sách chạy của nó từ máy chủ. Nó cũng xác định xem có bất kỳ bản cập nhật nào không. Chef Server truyền các công thức đến nút mục tiêu. Khi công thức chạy, nó xóa tệp và cài đặt một công việc cron để giữ cho nút được cập nhật trong tương lai. Trong lệnh sau, hãy thay thế nodename
bằng tên thực tế của nút mục tiêu. Thay thế username
bằng tên của tài khoản người dùng có sudo
quyền truy cập. Nhập mật khẩu cho tài khoản khi được nhắc thực hiện.
knife ssh 'name:nodename' 'sudo chef-client' -x username
nodename Chef Infra Client, version 17.10.3
nodename Patents: https://www.chef.io/patents
nodename Infra Phase starting
nodename Resolving cookbooks for run list: ["cron-delvalidate::default"]
nodename Synchronizing cookbooks:
nodename - cron-delvalidate (0.1.3)
nodename Installing cookbook gem dependencies:
nodename Compiling cookbooks...
nodename Loading Chef InSpec profile files:
nodename Loading Chef InSpec input files:
nodename Loading Chef InSpec waiver files:
nodename Converging 2 resources
nodename Recipe: cron-delvalidate::default
nodename * cron[clientrun] action create
nodename - add crontab entry for cron[clientrun]
nodename * file[/etc/chef/validation.pem] action delete (up to date)
nodename
nodename Running handlers:
nodename Running handlers complete
nodename Infra Phase complete, 1/2 resources updated in 03 seconds
Phần kết luận
Chef là một ứng dụng cơ sở hạ tầng dưới dạng mã (IaC) để tự động triển khai và quản lý các nút cơ sở hạ tầng. Kiến trúc Chef bao gồm Chef Server, nơi lưu trữ tất cả các quy trình và Chef Workstation, nơi mã cơ sở hạ tầng được phát triển. Các nút được quản lý giao tiếp với máy chủ để nhận các bản cập nhật. Để sử dụng Chef, hãy cài đặt phần mềm Chef Server và Chef Workstation. Chia sẻ khóa RSA giữa máy chủ và máy trạm, đồng thời cài đặt kiểm soát phiên bản và tiện ích Chef Knife trên máy trạm. Khởi động các nút mục tiêu bằng tiện knife bootstrap
ích. Sau khi một nút được khởi động, có thể tải xuống sách dạy nấu ăn và công thức nấu ăn bằng danh sách chạy của nút. Để biết thêm thông tin, hãy xem tài liệu Chef .
Thông tin thêm
Bạn có thể muốn tham khảo các nguồn sau để biết thêm thông tin về chủ đề này. Mặc dù chúng tôi cung cấp với hy vọng rằng chúng sẽ hữu ích, nhưng xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc tính kịp thời của các tài liệu được lưu trữ bên ngoài.
- Trang web của đầu bếp
- Tổng quan về đầu bếp
- Tài liệu về Chef Workstation
- Học khóa đào tạo đầu bếp
- Tải xuống Chef Workstation cho Ubuntu
- Hướng dẫn cài đặt Chef Workstation
- Tải xuống Chef Server cho Ubuntu
- Hướng dẫn cài đặt Chef Server
- Siêu thị đầu bếp
- Tài liệu về Chef Supermarket
- Tài liệu khởi động Chef