Chef - Bản thiết kế
Trong Chef, bản thiết kế là công cụ để tìm ra và ghi lại chính xác những gì có trên máy chủ. Bản thiết kế ghi lại tất cả những thứ cần thiết như giám đốc, gói, tệp cấu hình, v.v. Bản thiết kế có khả năng phân chia thông tin máy chủ ở nhiều định dạng khác nhau. Một trong số đó là công thức Chef. Điều này giúp định cấu hình máy chủ duy nhất bằng Chef.
Phương pháp Woring
Chúng ta cần cài đặt Python và Git trên nút nơi chúng ta cần chạy bản thiết kế.
Step 1 - Cài đặt bản thiết kế.
vipin@server:~$ pip install blueprint
Step 2 - Tạo bản thiết kế.
user@server:~$ sudo blueprint create internal-cookbook
# [blueprint] using cached blueprintignore(5) rules
# [blueprint] searching for Python packages
# [blueprint] searching for PEAR/PECL packages
# [blueprint] searching for Yum packages
# [blueprint] searching for Ruby gems
# [blueprint] searching for npm packages
# [blueprint] searching for software built from source
# [blueprint] searching for configuration files
# [blueprint] /etc/ssl/certs/AC_Ra\xc3\xadz_Certic\xc3\
xa1mara_S.A..pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/NetLock_Arany_=Class_Gold=_F\xc5\
x91tan\xc3\xbas\xc3\xadtv\xc3\xa1ny.pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sa\
xc4\x9flay\xc4\xb1c\xc4\xb1s\xc4\xb1.pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/Certinomis_-_Autorit\xc3\xa9_Racine.
pem not UTF-8 - skipping it
# [blueprint] /etc/ssl/certs/T\xc3\x9cB\xc4\xb0TAK_UEKAE_K\xc3\
xb6k_Sertifika_Hizmet_Sa\xc4\x9flay\xc4\xb1c\xc4\xb1s\xc4\xb1_-_S\
xc3\xbcr\xc3\xbcm_3.pem not UTF-8 - skipping it
# [blueprint] searching for APT packages
# [blueprint] searching for service dependencies
Step 3 - Tạo sách nấu ăn từ bản thiết kế.
user@server:~$ blueprint show -C internal-cookbook my-server/recipes/default.rb
Step 4 - Xác thực nội dung của tệp được tạo.
user@server:~$ cat internal-cookbook /recipes/default.rb
#
# Automatically generated by blueprint(7). Edit at your own risk.
#
cookbook_file('/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar')
do
backup false
group 'root'
mode '0644'
owner 'root'
source 'tmp/96468fd1cc36927a027045b223c61065de6bc575.tar'
end
execute('/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar') do
command 'tar xf "/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar"'
cwd '/usr/local'
end
directory('/etc/apt/apt.conf.d') do
...TRUNCATED OUTPUT...
service('ssh') do
action [:enable, :start]
subscribes :restart, resources('cookbook_file[/etc/default/
keyboard]', 'cookbook_file[/etc/default/console-setup]',
'cookbook_file[/etc/default/ntfs-3g]', 'package[openssh-server]',
'execute[96468fd1cc36927a027045b223c61065de6bc575.tar]')
end
Tập lệnh quy trình làm việc
Blueprint là một gói Python tìm ra tất cả dữ liệu cấu hình có liên quan của máy chủ và lưu trữ nó trong một kho lưu trữ Git. Mỗi bản thiết kế có tên riêng.
Người ta có thể yêu cầu bản thiết kế hiển thị nội dung của kho Git của nó trong nhiều công thức khác nhau.
user@server:~$ ls -l internal-cookbook /
total 8
drwxrwxr-x 3 vagrant vagrant 4096 Jun 28 06:01 files
-rw-rw-r-- 1 vagrant vagrant 0 Jun 28 06:01 metadata.rb
drwxrwxr-x 2 vagrant vagrant 4096 Jun 28 06:01 recipes
Bản thiết kế Hiển thị lệnh
user@server:~$ blueprint show-packages my-server
...TRUNCATED OUTPUT...
apt wireless-regdb 2011.04.28-1ubuntu3
apt zlib1g-dev 1:1.2.3.4.dfsg-3ubuntu4
python2.7 distribute 0.6.45
python2.7 pip 1.3.1
pip blueprint 3.4.2
pip virtualenv 1.9.1
Lệnh trước hiển thị tất cả các loại gói đã cài đặt. Các lệnh hiển thị khác như sau:
- show-files
- show-services
- show-sources