Cách cài đặt Chef Server, Workstation và Client trên Phiên bản VPS Ubuntu
Khi cơ cấu tổ chức của bạn phát triển và các thành phần riêng biệt cần thiết để quản lý môi trường của bạn mở rộng, việc quản trị từng server và dịch vụ có thể trở nên không thể quản lý được.
Các giải pháp quản lý cấu hình được thiết kế để đơn giản hóa việc quản lý hệ thống và cơ sở hạ tầng. Mục tiêu của các công cụ quản lý cấu hình là cho phép bạn quản lý cơ sở hạ tầng của bạn dưới dạng cơ sở mã. Chef là một giải pháp quản lý cấu hình cho phép bạn quản lý số lượng lớn server một cách dễ dàng.
Trong hướng dẫn trước , ta đã thảo luận về cấu trúc chung của các thành phần Chef và cách hệ thống hoạt động ở mức khái niệm. Ta đã xem qua một số thuật ngữ chính và mối quan hệ giữa nhiều thành phần khác nhau.
Trong hướng dẫn này, ta sẽ làm việc để cài đặt một cài đặt Chef 11 nhỏ. Đây sẽ là một server Chef được sử dụng để lưu trữ dữ liệu cấu hình và quản lý quyền truy cập. Điều này sẽ phục vụ như một trung tâm cho các máy khác của ta .
Ta cũng sẽ cài đặt một máy trạm cho phép ta tương tác với server và xây dựng các policy cấu hình của ta . Đây là nơi ta sẽ thực hiện công việc quản lý môi trường cơ sở hạ tầng của bạn .
Cuối cùng, ta sẽ khởi động một nút, nút này sẽ đại diện cho một trong những server trong tổ chức của ta sẽ được quản lý thông qua Chef. Ta sẽ thực hiện việc này bằng cách sử dụng server và máy trạm mà ta đã cấu hình .
Cả ba máy này sẽ sử dụng version VPS Ubuntu 12.04 x86_64 vì mục đích đơn giản. Ta sẽ nhắm đến đến bản phát hành Chef 11 vì nó ổn định và được thử nghiệm tốt.
Cài đặt Server
Thành phần đầu tiên mà ta cần để trực tuyến là server Chef. Bởi vì điều này là trung tâm của giao tiếp của các thành phần khác của ta , nó cần phải có sẵn cho các máy khác của ta để hoàn thành cài đặt của chúng.
Trước khi thực hiện việc này, điều quan trọng là phải cài đặt một domain cho server Chef của bạn để giải quyết các yêu cầu một cách chính xác. Bạn có thể xem hướng dẫn của ta về cách cài đặt domain với DigitalOcean tại đây.
Nếu bạn không có domain , bạn cần chỉnh sửa file /etc/hosts
trên từng version VPS mà bạn sẽ sử dụng, để tất cả chúng có thể phân giải server Chef theo tên. Nếu bạn có một domain , điều này chỉ nên cần thiết về VPS bạn sẽ được sử dụng như server Chef. Bạn có thể thực hiện việc này bằng lệnh vào VPS mà bạn sẽ sử dụng làm server Chef:
<pre>
sudo nano / etc / hosts
</pre>
Bên trong, hãy thêm địa chỉ IP của máy tính này và sau đó là tên bạn muốn sử dụng để kết nối với server . Sau đó, bạn có thể thêm một tên ngắn sau đó. Thông tin như thế này:
<pre>
<span class = “highlight”> 111.222.333.444 đầu bếp chef.domain.com </span>
</pre>
Thay đổi 111.222.333.444
thành địa chỉ IP của server Chef của bạn và thay đổi hai giá trị khác thành bất kỳ giá trị nào bạn muốn sử dụng để chỉ server của bạn.Thêm dòng này để trỏ đến server Chef của bạn tới file này trên mỗi máy bạn định sử dụng nếu bạn không sử dụng domain .
Bạn có thể kiểm tra xem cài đặt này đã được cài đặt đúng chưa bằng lệnh :
<pre>
tên server -f
</pre>
Điều này sẽ cung cấp cho bạn tên được sử dụng để truy cập server này.
Bạn có thể nhận gói server đầu bếp bằng cách truy cập trang này trong trình duyệt web của bạn .
Nhấp vào tab “Chef Server” và sau đó chọn các menu phù hợp với hệ điều hành của bạn:
Chọn version mới nhất của server Chef 11 có sẵn cho bạn ở phía bên phải:
Bạn sẽ được hiển thị với một liên kết đến một file deb. Nhấp chuột phải vào tùy chọn này và chọn tùy chọn tương tự như “sao chép vị trí liên kết”.
Trong version VPS mà bạn sẽ sử dụng làm server , hãy thay đổi thành folder chính của user và sử dụng trình wget
để download bản deb. Tại thời điểm viết bài này, liên kết mới nhất là:
cd ~ wget https://opscode-omnibus-packages.s3.amazonaws.com/ubuntu/12.04/x86_64/chef-server_11.0.10-1.ubuntu.12.04_amd64.deb
Thao tác này sẽ download gói cài đặt mà sau đó bạn có thể cài đặt như sau:
sudo dpkg -i chef-server*
Thao tác này sẽ cài đặt thành phần server trên máy này.
Sau đó, nó in ra màn hình rằng bạn nên chạy lệnh tiếp theo này để thực sự cấu hình dịch vụ xung quanh máy cụ thể của bạn. Điều này sẽ tự động cấu hình mọi thứ:
sudo chef-server-ctl reconfigure
Khi bước này hoàn tất, server sẽ hoạt động. Bạn có thể truy cập giao diện web ngay lập tức bằng lệnh https://
sau đó là domain hoặc địa chỉ IP của server .
<pre>
https: // <span class = “highlight”> miền server hoặc_IP </span>
</pre>
Vì certificate SSL được ký bởi một cơ quan mà trình duyệt của bạn không nhận dạng được theo mặc định, bạn sẽ thấy một thông báo cảnh báo xuất hiện:
Nhấp vào nút “Vẫn tiếp tục” để bỏ qua màn hình này và truy cập màn hình đăng nhập. Nó trông giống như sau :
Thông tin đăng nhập mặc định như sau:
<pre>
Tên user mặc định: <span class = “highlight”> admin </span>
Mật khẩu mặc định: <span class = “highlight”> p @ ssw0rd1 </span>
</pre>
Khi đăng nhập lần đầu tiên, bạn sẽ ngay lập tức được yêu cầu thay đổi password của bạn . Chọn một password mới và sau đó nhấp vào nút “Lưu user ” ở dưới cùng:
Đến đây bạn đã cấu hình server đến một điểm mà ta có thể rời khỏi nó và bắt đầu cấu hình máy trạm của bạn .
Cài đặt máy trạm
Máy tính trạm của ta là VPS mà ta sẽ sử dụng để tạo và chỉnh sửa các policy thực tế quy định môi trường cơ sở hạ tầng của ta . Máy này có một bản sao của Chef repo mô tả máy móc và dịch vụ của ta và nó tải chúng lên server Chef để thực hiện.
Ta sẽ bắt đầu bằng cách cài đặt git
để kiểm soát version :
sudo apt-get update sudo apt-get install git
Điều này thực sự có hai mục đích. Việc sử dụng rõ ràng là ta sẽ giữ cấu hình của bạn dưới sự kiểm soát của version để theo dõi các thay đổi. Mục đích thứ hai là tạm thời lưu password của ta bằng sudo để lệnh sau hoạt động.
Bây giờ ta sẽ download và chạy lệnh cài đặt ứng dụng client từ trang web Chef. Nhập lệnh này để hoàn thành tất cả các bước sau:
curl -L https://www.opscode.com/chef/install.sh | sudo bash
Thành phần máy trạm Chef của ta hiện đã được cài đặt. Tuy nhiên nó còn rất xa mới được cấu hình.
Bước tiếp theo là lấy cấu trúc folder “chef-repo” cho repository Chef được định dạng đúng từ GitHub. Ta có thể sao chép cấu trúc vào folder chính của bạn bằng lệnh :
cd ~ git clone https://github.com/opscode/chef-repo.git
Thao tác này sẽ tạo một folder tên là chef-repo
trong folder chính của bạn. Đây là nơi chứa toàn bộ cấu hình cho cài đặt của bạn.
Ta sẽ tạo một folder cấu hình cho chính các công cụ Chef trong folder này:
mkdir -p ~/chef-repo/.chef
Trong folder này, ta cần đặt một số file xác thực từ server Chef của ta . Cụ thể, ta cần hai private key .
Tạo và sao chép khóa từ server
Quay lại server Chef trong trình duyệt web :
<pre>
https: // <span class = “highlight”> miền server hoặc_IP </span>
</pre>
Đăng nhập bằng thông tin đăng nhập của user admin
mà bạn đã thay đổi trước đó.
Nhấp vào tab “Khách hàng” trong thanh chuyển trên cùng. Bạn sẽ thấy hai khách hàng được gọi là đầu bếp-xác thực và đầu bếp-webui:
Nhấp vào nút "Chỉnh sửa" được liên kết với khách hàng chef-validator
. Tạo lại private key bằng cách chọn hộp đó và nhấp vào “Lưu khách hàng”:
Bạn sẽ được đưa đến một màn hình với các giá trị mới được tạo cho file khóa.
Lưu ý: Khóa này sẽ chỉ sử dụng được một lần, vì vậy đừng nhấp ra khỏi trang này! Nếu bạn làm vậy, bạn cần tạo lại khóa .
Sao chép giá trị của trường private key (trường ở dưới cùng).
Trên máy trạm của bạn, hãy thay đổi thành folder cấu hình Chef mà ta đã tạo trong repo:
cd ~/chef-repo/.chef
Mở một file mới cho khóa xác thực mà ta vừa tạo:
nano chef-validator.pem
Trong file này, hãy dán nội dung của khóa bạn đã sao chép từ giao diện web của server (một số dòng đã bị xóa để ngắn gọn ở đây):
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEA6Np8f3J3M4NkA4J+r144P4z27B7O0htfXmPOjvQa2avkzWwx oP28SjUkU/pZD5jTWxsIlRjXgDNdtLwtHYABT+9Q5xiTQ37s+eeJgykQIifED23C aDi1cFXOp/ysBXaGwjvl5ZBCZkQGRG4NIuL7taPMsVTqM41MRgbAcLCdl5g7Vkri . . . . . . xGjoTVH1vBAJ7BG1RHJZlx+T9QnrK+fQu5R9mikkLHayxi13mD0C -----END RSA PRIVATE KEY-----
Đảm bảo rằng không có thêm dòng trống phía trên hoặc bên dưới khóa. Lưu và đóng file .
Ta sẽ làm theo quy trình tương tự để tạo và lưu file khóa của admin-user viên. Lần này, khóa dành cho user , vì vậy hãy nhấp vào tab “ User ” ở trên cùng.
, nhấp vào nút “Chỉnh sửa” được liên kết với admin-user , chọn hộp “Tạo lại Khóa cá nhân” và nhấp vào nút “Lưu user ”:
Sao chép giá trị Khóa cá nhân trên màn hình tiếp theo. , điều này sẽ không được hiển thị lại , vì vậy hãy sao chép nó một cách chính xác lần đầu tiên.
Quay lại máy tính trạm của bạn , bạn cần tạo một file khác cho admin-user trong cùng folder :
nano admin.pem
Dán nội dung của khóa bạn đã sao chép từ giao diện của server ( , khóa này được rút gọn):
-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA/apu0+F5bkVtX6qGYcfoA6sIW/aLFUEc3Bw7ltb50GoZnUPj 0Ms1N1Rv/pdVZXeBa8KsqICAhAzvwSr0H9j+AoURidbkLv4urVC9VS4dZyIRfwvq PGvAKop9bbY2WJMs23SiEkurEDyfKaqXKW687taJ9AKbH2yVx0ArPI2RwS3Sze3g . . . . . . VTkNpg3lLRSGbQkvRUP6Kt20erS2bfETTtH6ok/zW4db8B/vnBlcZg== -----END RSA PRIVATE KEY-----
Xác minh không có dòng thừa bên trên hoặc bên dưới dòng khóa đã dán. Lưu và đóng file .
Cấu hình lệnh Knife
Bây giờ ta phải cấu hình lệnh knife
. Lệnh này là cách giao tiếp trung tâm với server của ta và các node mà ta sẽ cấu hình . Ta cần cho nó biết cách xác thực và sau đó tạo một user để truy cập server Chef.
May mắn là ta đã đặt nền tảng cho bước này bằng cách có được các file thông tin xác thực thích hợp. Ta có thể bắt đầu cấu hình bằng lệnh :
knife configure --initial
Điều này sẽ hỏi bạn một loạt câu hỏi. Ta sẽ đi qua từng cái một:
<pre>
CẢNH BÁO: Không tìm thấy file cấu hình dao
Tôi nên đặt file cấu hình ở đâu? [/ home / <span class = “highlight”> your_user </span> /.chef/knife.rb]
</pre>
Các giá trị trong ngoặc ([]) là giá trị mặc định mà dao sẽ sử dụng nếu ta không chọn một giá trị.
Ta muốn đặt file cấu hình dao của ta trong folder ẩn mà ta đã sử dụng:
<pre>
/ home / <span class = “highlight”> your_user </span> /chef-repo/.chef/knife.rb
</pre>
Trong câu hỏi tiếp theo, hãy nhập domain hoặc địa chỉ IP bạn sử dụng để truy cập server Chef. Điều này phải bắt đầu bằng https://
và kết thúc bằng :443
:
<pre>
https: // <span class = “highlight”> miền server hoặc_IP </span>: 443
</pre>
Bạn cần đặt tên cho user mới mà bạn sẽ tạo. Chọn một cái gì đó mang tính mô tả:
<pre>
Vui lòng nhập tên cho user mới: [root] <span class = “highlight”> station1 </span>
</pre>
Sau đó nó sẽ hỏi bạn tên administrator . Điều này bạn chỉ cần nhấn enter để chấp nhận giá trị mặc định ( ta không thay đổi tên administrator ).
Sau đó, nó sẽ hỏi bạn vị trí của khóa administrator hiện có. Điều này phải là:
<pre>
/ home / <span class = “highlight”> your_user </span> /chef-repo/.chef/admin.pem
</pre>
Nó sẽ hỏi một bộ câu hỏi tương tự về trình xác thực. Ta cũng không thay đổi tên của trình xác thực, vì vậy ta có thể giữ tên đó làm chef-validator
. Nhấn enter để chấp nhận giá trị này.
Sau đó, nó sẽ hỏi bạn vị trí của khóa xác thực. Nó phải là thông tin như thế này:
<pre>
/ home / <span class = “highlight”> your_user </span> /chef-repo/.chef/chef-validator.pem
</pre>
Tiếp theo, nó sẽ yêu cầu đường dẫn đến repository . Đây là folder chef-repo
mà ta đang vận hành:
<pre>
/ home / <span class = “highlight”> your_user </span> / chef-repo
</pre>
Cuối cùng, nó sẽ yêu cầu bạn chọn password cho user mới của bạn. Chọn bạn muốn .
Điều này sẽ hoàn thành cấu hình dao của ta . Nếu ta xem trong folder chef-repo/.chef
, ta sẽ thấy file cấu hình dao và thông tin đăng nhập của user mới:
ls ~/chef-repo/.chef
admin.pem chef-validator.pem knife.rb station1.pem
Dọn dẹp và kiểm tra máy trạm
Cấu hình cho máy trạm của ta gần như hoàn tất. Ta cần thực hiện một số việc để dọn dẹp và xác minh các kết nối của ta hoạt động.
Đầu tiên, ta nên quản lý repository Chef của bạn dưới quyền kiểm soát version . Vì cấu hình Chef hoạt động dưới dạng mã nguồn, ta có thể xử lý nó theo cách giống như cách ta xử lý với các file cho bất kỳ chương trình nào.
Đầu tiên, ta cần khởi tạo tên git và email của bạn . Kiểu:
<pre>
git config –global user.email “<span class =" highlight "> your_email@domain.com </span>“
git config –global user.name ”<span class =“ highlight ”> Tên của bạn </span>“
</pre>
Vì cấu trúc folder "chef-repo" của ta được lấy thẳng từ GitHub, nên nó đã nằm dưới quyền kiểm soát version git.
Tuy nhiên, ta không muốn đưa folder “chef-repo / .chef” vào điều khiển version này. Điều này chứa các private key của ta và file cấu hình dao. Chúng không liên quan gì đến cơ sở hạ tầng mà ta muốn thiết kế.
Thêm folder này vào danh sách bỏ qua bằng cách mở file .gitignore
:
nano ~/chef-repo/.gitignore
Ở cuối file , nhập .chef
để bao gồm toàn bộ folder :
<pre>
.rake kiểm tra bộ nhớ cache
Bỏ qua các file chính và bí mật của Chef
.chef / *. pem
.chef / dữ liệu được mã hóa bag_secret
<span class = “highlight”>. đầu bếp </span>
</pre>
Lưu và đóng file .
Bây giờ, ta có thể commit trạng thái hiện tại của bạn (có thể sẽ không có bất kỳ thay đổi nào bên cạnh file .gitignore
mà ta vừa sửa đổi) bằng lệnh :
git add . git commit -m 'Finish configuring station1'
Ta cũng muốn đảm bảo user của ta sử dụng version Ruby được đóng gói với cài đặt Chef của ta . Nếu không, các lệnh gọi do Chef thực hiện có thể được hiểu bởi cài đặt Ruby của hệ thống, có thể không tương thích với các công cụ còn lại của ta .
Ta chỉ có thể sửa đổi đường dẫn của bạn bằng cách thêm một dòng vào cuối file .bash_profile
.
Nhập cái này vào để thêm dòng:
echo 'export PATH="/opt/chef/embedded/bin:$PATH"' >> ~/.bash_profile
Bây giờ, ta có thể triển khai những thay đổi này vào môi trường hiện tại của bạn bằng lệnh :
source ~/.bash_profile
Ta có thể kiểm tra xem ta có thể kết nối thành công với server Chef hay không bằng cách yêu cầu một số thông tin từ server bằng lệnh dao.
Thao tác này sẽ trả về danh sách tất cả user của ta :
knife user list
admin station1
Nếu điều này thành công, thì máy trạm của ta có thể giao tiếp thành công với server của ta .
Khởi động nút client
Bây giờ ta đã có server Chef và một máy trạm trực tuyến, ta có thể thử khởi động client Chef trên một nút mẫu. Ta sẽ sử dụng một version Ubuntu khác.
Quá trình khởi động bao gồm việc cài đặt client Chef trên một nút. Chef client là một phần mềm giao tiếp với server để nhận chỉ đường cho cấu hình của chính nó. Sau đó, client mang đến nút mà nó đã được cài đặt trực tuyến với policy do server cung cấp cho nó.
Quá trình này sẽ đơn giản cấu hình version VPS mới của ta dưới sự bảo trợ của hệ thống quản lý Chef của ta . Sau đó, ta có thể cấu hình nó theo cách ta muốn bằng cách tạo các policy trên máy trạm của ta và tải chúng lên server của ta .
Để hoàn tất quá trình này, ta chỉ cần biết ba phần thông tin về VPS mà ta muốn cài đặt phần mềm client :
- Địa chỉ IP hoặc domain
- Tên user (có thể truy cập thông qua SSH và với các quyền sudo)
- Mật khẩu
Với những thông tin này, ta có thể cài đặt các gói thích hợp bằng cách sử dụng công cụ dao trên máy trạm của ta .
Bạn muốn nhập một lệnh giống như sau:
<pre>
dao bootstrap <span class = “highlight”> tên domain nút hoặc IP </span> -x <span class = “highlight”> tên user </span> -P <span class = “highlight”> password </span> -N <span class = “highlight”> name for_node </span> –sudo
</pre>
Hãy chia nhỏ điều này một chút. Tên domain / địa chỉ IP cho dao biết server nào cần kết nối. Tên user và password cung cấp thông tin đăng nhập.
Nếu user bạn đang sử dụng không phải là root, thì tùy chọn --sudo
là cần thiết để quá trình khởi động cài đặt thành công phần mềm trên máy tính từ xa. Nó sẽ nhắc bạn nhập password khi bạn đăng nhập để sử dụng lệnh sudo.
Tên cho nút là tên mà bạn chọn được Chef sử dụng nội bộ. Đây là cách bạn sẽ tham khảo máy này khi chế tạo các policy và sử dụng dao.
Sau khi lệnh được chạy, phần mềm client sẽ được cài đặt trên nút từ xa. Nó sẽ được cấu hình để giao tiếp với server Chef để nhận hướng dẫn.
Ta có thể truy vấn danh sách khách hàng của bạn bằng lệnh :
knife client list
chef-validator chef-webui client1
Ta có thể thấy hai ứng dụng client được cấu hình theo mặc định trong quá trình cài đặt server Chef (đầu bếp-xác thực và đầu bếp-webui), cũng như ứng dụng client mà ta vừa tạo.
Bạn cũng có thể dễ dàng cài đặt các node khác để đặt chúng dưới sự kiểm soát cấu hình của hệ thống Chef của bạn.
Kết luận
Đến đây bạn sẽ có một server Chef, một máy trạm riêng biệt để tạo cấu hình của bạn và một nút mẫu.
Ta chưa thực hiện bất kỳ cấu hình thực tế nào của nút thông qua Chef tại thời điểm này, nhưng ta đã cài đặt để bắt đầu quá trình này. Trong các hướng dẫn trong tương lai, ta sẽ thảo luận về cách triển khai các policy và tạo công thức nấu ăn và sách nấu ăn để quản lý các node của bạn.
<div class = “author”> Bởi Justin Ellingwood </div>
Các tin liên quan
Giới thiệu về Chuyển hướng I / O Linux2014-01-23
Giới thiệu về Chuyển hướng I / O Linux
2014-01-23
Cách thiết lập server email Postfix với Dovecot: Dynamic Maildirs và LMTP
2013-12-17
Cách xem và cấu hình log Linux trên Ubuntu và Centos
2013-12-17
Cách cài đặt Linux Socket Monitor (LSM) trên CentOS 6.4
2013-11-26
Cách sử dụng ApacheBench để thực hiện kiểm tra tải trên VPS Arch Linux
2013-11-21
Cách thiết lập server VPN đa giao thức bằng SoftEther
2013-11-19
Cách thiết lập server e-mail Postfix với Dovecot
2013-11-14
Cách thiết lập WordPress với W3 Total Cache trên Lighttpd Server
2013-11-12
Thiết lập server ban đầu với Debian 7
2013-11-04