Chef là một công cụ quản lý cấu hình mã nguồn mở và miễn phí. Nó được viết bằng Ruby và Erlang. Chef có thể dễ dàng tích hợp với các nền tảng đám mây như AWS, OpenStack hoặc RackSpace, v.v. để tự động tạo và quản lý máy chủ. Khi một tổ chức phát triển và số lượng nút tăng lên, quản trị viên hệ thống sẽ khó có thể tự mình quản lý từng nút. Trong trường hợp này, Chef sẽ đến để giải cứu. Hệ sinh thái Chef bao gồm ba phần, máy chủ Chef, máy trạm Chef và các nút Chef.Công cụ DevOps này cho phép quản trị viên hệ thống quản lý nhiều nút từ một vị trí trung tâm.
Trong hướng dẫn này, chúng ta sẽ cài đặt phiên bản Chef mới nhất trong Ubuntu 17.04 (Zesty Zapus).
Điều kiện tiên quyết
Sau khi hệ thống của bạn được cập nhật, hãy tiến hành thêm.
Thay thế chef.yourdomain.com bằng tên miền thực tế của bạn. Ngoài ra, hãy cập nhật tên máy chủ trong tệp /etc/hostname.
Thêm địa chỉ IP của tên máy chủ của bạn vào tệp /etc/hosts bằng cách chạy lệnh sau.
Thay thế 192.168.1.1 bằng địa chỉ IP công khai thực tế của bạn.
Khởi động NTP bằng cách chạy lệnh sau.
Để cho phép NTP tự động khởi động khi khởi động, hãy chạy lệnh sau.
Bạn có thể xác minh xem NTP đã đồng bộ hóa đồng hồ hay chưa bằng cách chạy lệnh sau.
Bạn sẽ thấy đầu ra sau:
Bạn luôn có thể tìm thấy liên kết đến phiên bản mới nhất của Chef bằng cách truy cập Trang tải xuống Chef. Bây giờ, hãy cài đặt gói bằng cách chạy lệnh sau.
Chef hiện đã được cài đặt trên hệ thống của bạn. Bạn sẽ cần cấu hình máy chủ trước khi sử dụng.
Lệnh trên sẽ mất vài phút để hoàn tất vì nó cài đặt và cấu hình tất cả các thành phần của máy chủ chef. Sau khi hoàn tất thành công, bạn sẽ nhận được thông báo sau ở cuối.
Bạn có thể kiểm tra xem các dịch vụ đã khởi động thành công hay chưa bằng cách chạy:
Bạn sẽ thấy đầu ra sau.
Để cài đặt Chef Manage, hãy chạy lệnh sau:
Cấu hình lại máy chủ Chef bằng cách nhập:
Cuối cùng, hãy cấu hình Chef Manage bằng cách chạy lệnh sau.
Lệnh trên sẽ yêu cầu bạn chấp nhận thỏa thuận cấp phép. Bạn có thể chọn chấp nhận thỏa thuận cấp phép trong khi chạy hoặc chỉ cần chạy lệnh sau để tự động chấp nhận giấy phép.
Bây giờ hãy tạo một quản trị viên mới bằng cách chạy lệnh sau.
Thay thế admin bằng tên người dùng bạn muốn, Chef bằng tên và Administrator bằng họ, [emailprotected] bằng email của bạn và admin.pem phải theo tên người dùng của bạn. Thay thế StrongPassword bằng một mật khẩu rất mạnh.
Bây giờ hãy tạo một tổ chức mới bằng cách chạy lệnh sau.
Thay thế my_org bằng tên viết tắt của tổ chức bạn, My Organization bằng tên đầy đủ của tổ chức bạn và admin bằng người dùng quản trị mà bạn đã tạo.
Bạn cũng có thể sử dụng tên miền của mình thay vì IP máy chủ nếu bạn đã định cấu hình tên miền. Bạn sẽ thấy màn hình đăng nhập sau.
Đăng nhập bằng tên người dùng và mật khẩu bạn đã tạo. Sau khi đăng nhập thành công, bạn sẽ thấy giao diện sau.
Cấu hình lại máy chủ Chef bằng cách chạy:
Cấu hình mô-đun báo cáo bằng cách chạy:
Bạn có thể xác minh xem plugin Báo cáo đã được cài đặt và hoạt động chính xác hay chưa bằng cách chạy:
Tương tự như vậy, bạn có thể cài đặt các tác vụ Chef Push để chạy các tác vụ. Các tác vụ Chef Push cho phép máy chủ Chef chạy các tác vụ trên các nút độc lập với lệnh chạy chef-client. Các tác vụ đẩy của Chef sử dụng API máy chủ Chef và một máy khách Ruby để khởi tạo tất cả các kết nối đến máy chủ Chef.Cài đặt các tác vụ đẩy bằng cách chạy lệnh sau.
Cấu hình lại máy chủ Chef bằng cách chạy:
Cấu hình mô-đun tác vụ đẩy bằng cách chạy:
Trong hướng dẫn này, chúng ta sẽ cài đặt phiên bản Chef mới nhất trong Ubuntu 17.04 (Zesty Zapus).
Điều kiện tiên quyết
- Máy chủ Ubuntu 17.04 tối thiểu.
- Quyền root. Hướng dẫn này được viết dưới dạng người dùng root, nếu bạn đăng nhập dưới dạng người dùng sudo, hãy chạy sudo -i.
- một tên miền trỏ đến máy chủ của bạn.
Cập nhật Hệ thống Cơ sở
Trước khi cài đặt bất kỳ gói nào, bạn nên cập nhật các gói và kho lưu trữ bằng lệnh sau.
Mã:
apt update && apt -y upgrade
Cập nhật Tên máy chủ
Chef yêu cầu một tên máy chủ có thể phân giải được được đặt trên máy chủ. Tên máy chủ phải là FQDN hoặc Tên miền đủ điều kiện đầy đủ, ví dụ: chef.yourdomain.com. Để thiết lập tên máy chủ trên máy chủ của bạn, hãy chạy lệnh sau.
Mã:
hostname 'chef.yourdomain.com'
Mã:
echo "chef.yourdomain.com" | tee /etc/hostname
Mã:
echo "192.168.1.1 chef.yourdomain.com" >> /etc/hosts
Thiết lập NTP
NTP của máy chủ Network Time Protocol là bắt buộc để đồng bộ hóa đồng hồ của máy chủ. Chef yêu cầu hệ thống mà nó được kết nối chạy NTP vì nó rất nhạy cảm với những thay đổi về đồng hồ. NTP chạy trên cổng 123 trên UDP. Để cài đặt NTP trên máy chủ của bạn, hãy chạy lệnh sau.
Mã:
apt install ntp
Mã:
systemctl start ntp
Mã:
systemctl enable ntp
Mã:
ntpq -p
Mã:
root@chef:~# ntpq -p remote refid st t when poll reach delay offset rung= ... 16 trang - 64 0 0,000 0,000 0,000 ntp.ubuntu.com .POOL. 16 p - 64 0 0,000 0,000 0,000#hydrogen.consta 129.6.15.29 2 u 34 64 17 174.427 -9.145 0,751#helium.constant 128.59.0.245 2 u 30 64 17 176.812 -8.253 0,726#lithium.constan 18.26.4.105 2 u 33 64 17 175.435 0,357 0,684#ntppublic.uzh.c 130.60.159.8 3 u 24 64 17 256.712 8,982 0,927+x.ns.gin.ntt.ne 249.224.99.213 2 u 25 64 17 0.872 -1.636 0.805-borris.netwurx. 144.92.9.22 2 u 22 64 17 163.284 0.848 1.141-ns1.do.steersne 195.66.241.3 2 u 23 64 17 222.882 -3.528 0.965-sircabirus.von- 36.224.68.195 2 u 28 64 17 266.005 3.502 1.173*chobi.paina.net 131.113.192.40 2 u 26 64 17 1.280 -1.852 1.046#213.251.53.11 193.62.22.74 2 u 27 64 17 246.940 9.920 1.405-flightplandatab 210.240.96.206 2 u 27 64 17 258.052 -1.338 2.789-time.platformni 118.211.218.186 2 u 27 64 17 1.592 3.394 1.127
Tải xuống và cài đặt Chef
Tải xuống gói Chef Server cho Ubuntu bằng cách chạy lệnh sau.
Mã:
wget https://packages.chef.io/files/stable/chef-server/12.15.8/ubuntu/16.04/chef-server-core_12.15.8-1_amd64.deb
Mã:
dpkg -i chef-server-*.deb
Cấu hình Chef
Bây giờ bạn có thể chạy lệnh sau để khởi động tất cả các dịch vụ yêu cầu Chef hoạt động.
Mã:
chef-server-ctl reconfigure
Mã:
Chef Client đã hoàn tất, 491/1096 tài nguyên đã cập nhật trong 03 phút 13 giâyChef Server đã cấu hình lại!
Mã:
chef-server-ctl status
Mã:
root@chef:~# chef-server-ctl statusrun: bookshelf: (pid 6030) 87 giây; run: log: (pid 6047) 86 giâyrun: nginx: (pid 5859) 91 giây; chạy: log: (pid 6387) 82 giâychạy: oc_bifrost: (pid 5766) 92 giây; chạy: log: (pid 5842) 92 giâychạy: oc_id: (pid 5849) 91 giây; chạy: log: (pid 5854) 91 giâychạy: opscode-erchef: (pid 6244) 84 giây; chạy: log: (pid 6108) 85 giâychạy: opscode-expander: (pid 5926) 88 giây; chạy: log: (pid 6010) 87 giâychạy: opscode-solr4: (pid 5895) 89 giây; chạy: log: (pid 5912) 89 giâychạy: postgresql: (pid 5718) 93 giây; chạy: log: (pid 5745) 92 giâychạy: rabbitmq: (pid 5239) 101 giây; chạy: log: (pid 5099) 105 giâychạy: redis_lb: (pid 5036) 121 giây; chạy: log: (pid 6361) 83 giây
Cài đặt Web Management Console
Chef cung cấp giao diện người dùng đồ họa dựa trên web cho máy chủ Chef của quản trị viên. Bạn có thể sử dụng bảng điều khiển dựa trên GUI để quản lý túi dữ liệu, thuộc tính, danh sách chạy, vai trò, môi trường và sổ tay hướng dẫn.Để cài đặt Chef Manage, hãy chạy lệnh sau:
Mã:
chef-server-ctl install chef-manage
Mã:
chef-server-ctl reconfigure
Mã:
chef-manage-ctl reconfigure
Mã:
chef-manage-ctl reconfigure --accept-license
Tạo Quản trị viên và Tổ chức
Trước khi bạn có thể đăng nhập và sử dụng bảng điều khiển quản trị, bạn sẽ cần tạo người dùng và tổ chức. Trong quá trình tạo người dùng và tổ chức, nó sẽ tự động tạo khóa riêng RSA cần thiết để kết nối với máy trạm và máy khách. Bạn có thể tạo thư mục .chef mới để lưu trữ các khóa. Chạy lệnh để tạo thư mục mới lưu trữ khóa riêng.
Mã:
mkdir ~/.chef
Mã:
chef-server-ctl user-create admin Chef Administrator [emailprotected] StrongPassword -f ~/.chef/admin.pem
Bây giờ hãy tạo một tổ chức mới bằng cách chạy lệnh sau.
Mã:
chef-server-ctl org-create my_org 'My Organization' --association_user admin -f ~/.chef/my_org.pem
Truy cập Bảng điều khiển web
Bây giờ mọi thứ cần thiết để truy cập bảng điều khiển web đã được cài đặt và định cấu hình, bạn có thể truy cập bảng điều khiển bằng cách duyệt URL sau thông qua trình duyệt yêu thích của mình.
Mã:
http://Your-Server-IP
Đăng nhập bằng tên người dùng và mật khẩu bạn đã tạo. Sau khi đăng nhập thành công, bạn sẽ thấy giao diện sau.
Cài đặt Plugin tùy chọn
Bạn có thể bật báo cáo để tìm hiểu về quy trình diễn ra trên tất cả các chef-client do máy chủ Chef quản lý. Bạn có thể chạy báo cáo qua bảng điều khiển quản lý Chef để xem báo cáo trên bảng điều khiển web. Báo cáo có thể được tạo cho toàn bộ tổ chức và có thể được tạo cho các nút cụ thể.Để cài đặt báo cáo, hãy chạy lệnh sau.
Mã:
chef-server-ctl install opscode-reporting
Mã:
chef-server-ctl reconfigure
Mã:
opscode-reporting-ctl reconfigure
Mã:
opscode-reporting-ctl test
Mã:
chef-server-ctl install opscode-push-jobs-server
Mã:
chef-server-ctl reconfigure
Mã:
opscode-push-jobs-server-ctl reconfigure