Thứ hai, 05/10/2015 | 00:00 GMT+7

Cách cài đặt và cấu hình server Salt Master và Minion trên Ubuntu 14.04

SaltStack là một hệ thống quản lý cấu hình và thực thi từ xa mạnh mẽ, linh hoạt, hiệu suất cao. Nó được dùng để quản lý cơ sở hạ tầng của bạn từ một vị trí tập trung trong khi giảm thiểu các bước bảo trì thủ công. Để tìm hiểu thêm về một số thuật ngữ và công cụ liên quan đến SaltStack, hãy xem hướng dẫn này .

Trong bài viết này, ta sẽ tập trung vào việc cài đặt một server chính của Salt để quản lý cơ sở hạ tầng của bạn. Ta cũng sẽ trình bày cách cài đặt daemon Salt minion trên các máy tính khác để quản lý chúng bằng Salt. Ta sẽ sử dụng hai server Ubuntu 14.04 để chứng minh các bước này.

Yêu cầu

Để bắt đầu, bạn nên có ít nhất hai version server Ubuntu 14.04. Chúng phải có một user không phải root được cấu hình với các quyền sudo . Bạn có thể tìm hiểu cách tạo và cấu hình những user này theo hướng dẫn cài đặt server ban đầu Ubuntu 14.04 của ta .

Khi đã sẵn sàng bắt đầu, hãy đăng nhập vào server mà bạn muốn sử dụng làm Salt master với user sudo của bạn. Ta sẽ cấu hình máy này trước.

Cài đặt Master Daemon

Daemon chính Salt có thể được cài đặt theo một số cách trên Ubuntu 14.04. Sau đây là tóm tắt ngắn gọn về những ưu điểm và nhược điểm của từng phương pháp:

  • Ubuntu SaltStack PPA : Sử dụng các công cụ quản lý gói root Ubuntu để cài đặt và cập nhật phần mềm cần thiết. Đây là phương pháp cài đặt dễ dàng nhất nhưng, như trường hợp tại thời điểm viết bài này, các gói có thể đã lỗi thời đáng kể.
  • Salt-Bootstrap : Tập lệnh khởi động này cố gắng cung cấp một phương pháp phổ biến hơn để cài đặt và cấu hình Salt. Nó có thể cố gắng sử dụng các công cụ phần mềm root có sẵn, nghĩa là nó vẫn có thể cố gắng cài đặt từ PPA ở trên. Nó cũng cung cấp khả năng truy cập dễ dàng vào các version phát triển của Salt.

Dưới đây, ta sẽ trình bày cách cài đặt bằng phương pháp Ubuntu PPA. Ta cũng sẽ cung cấp hướng dẫn về cách sử dụng tập lệnh salt-bootstrap để cài đặt cả version ổn định và phát triển của Salt master.

Bạn sẽ quyết định lựa chọn nào phù hợp với nhu cầu của bạn nhất. Nếu bạn gặp sự cố, có thể có các bản sửa lỗi trong version phát triển. Tuy nhiên, cũng có cơ hội gặp phải các lỗi mới phát hành.

Cài đặt version ổn định từ PPA chính thức

Cài đặt từ Ubuntu PPA là phương pháp cài đặt đơn giản nhất.

Để bắt đầu, bạn cần thêm SaltStack PPA vào server mà bạn sẽ sử dụng làm chủ. Bạn có thể thực hiện việc này bằng lệnh :

  • sudo add-apt-repository ppa:saltstack/salt

Khi bạn đã xác nhận việc bổ sung PPA, nó sẽ được thêm vào hệ thống của bạn. Để lập index các gói mới có sẵn bên trong, bạn cần cập nhật index gói local của bạn . Sau đó, bạn có thể cài đặt phần mềm liên quan:

  • sudo apt-get update
  • sudo apt-get install salt-master salt-minion salt-ssh salt-cloud salt-doc

Trong lệnh trên, ta đã cài đặt cả Salt master và minion daemon. Điều này cũng sẽ cho phép ta kiểm soát server chính của bạn bằng Salt. Ta cũng đã cài đặt salt-sshsalt-cloud , giúp ta linh hoạt hơn trong cách kết nối và kiểm soát tài nguyên. Ta cũng đã bao gồm cả gói tài liệu.

Đến đây, bạn đã hoàn tất quá trình cài đặt Salt master. Bỏ qua phần cấu hình chính ban đầu để cài đặt và chạy các dịch vụ mới của bạn.

Cài đặt version ổn định bằng Salt-Bootstrap

Một giải pháp thay thế cho việc sử dụng PPA trực tiếp là cài đặt version ổn định bằng cách sử dụng tập lệnh salt-bootstrap . Điều này có sẵn để download từ trang web SaltStack. Một lý do bạn có thể chọn sử dụng phương pháp cài đặt hệ thống ổn định này thay vì phương pháp trên là nó lấy một số phụ thuộc của nó từ trình quản lý gói pip . Điều này có thể cung cấp cho bạn các version cập nhật hơn của một số phụ thuộc Salt.

Để bắt đầu, hãy chuyển đến folder chính của bạn hoặc một nơi khác mà bạn có quyền ghi. Ta có thể sử dụng curl để download tập lệnh bootstrap. Ta sẽ làm theo các hướng dẫn được tìm thấy trên trang GitHub của salt-bootstrap và sẽ sử dụng tên kết quả mà họ đã chọn để rõ ràng:

  • cd ~
  • curl -L https://bootstrap.saltstack.com -o install_salt.sh

Đến đây, hãy xem tập lệnh đảm bảo rằng nó không làm bất cứ điều gì mà bạn không chấp thuận:

  • less ~/install_salt.sh

Group SaltStack duy trì tập lệnh salt-bootstrap , nhưng bạn phải luôn kiểm tra nội dung của các tập lệnh bên ngoài trước khi chạy chúng.

Khi thấy ổn với các hành động sẽ được thực hiện, hãy chạy script bằng cách chuyển nó cho sh . Ta sẽ sử dụng cờ -P để tập lệnh có thể sử dụng pip làm nguồn phụ thuộc, nếu cần. Nếu không có cờ này, quá trình cài đặt sẽ có thể không thành công. Ta cũng cần thêm cờ -M để trình chính Salt được cài đặt. Tất cả các tiện ích của Salt helper sẽ tự động được đưa vào.

Lệnh đầy đủ ta cần là:

  • sudo sh install_salt.sh -P -M

Đến đây, bạn đã hoàn tất quá trình cài đặt Salt master. Bỏ qua phần cấu hình chính ban đầu để cài đặt và chạy các dịch vụ mới của bạn.

Cài đặt version phát triển bằng Salt-Bootstrap

Ta cũng có thể sử dụng tập lệnh salt-bootstrap để cài đặt version phát triển của Salt bằng git . Điều này có thể hữu ích để có quyền truy cập vào các tính năng mới hơn và quan trọng hơn là có quyền truy cập vào các bản sửa lỗi gần đây hơn mà có thể không có trong version PPA của phần mềm.

Tập lệnh cần thiết là cùng một tập lệnh salt-bootstrap mà ta đã sử dụng ở trên. Chỉ các tùy chọn ta sử dụng sẽ khác nhau. Với lưu ý này, nếu bạn chưa có script, hãy tải nó xuống folder chính của bạn:

  • cd ~
  • curl -L https://bootstrap.saltstack.com -o install_salt.sh

, hãy xem lại tập lệnh đảm bảo rằng bạn ổn với các thao tác mà nó sẽ thực hiện:

  • less ~/install_salt.sh

Khi thấy ổn , bạn có thể chuyển script cho sh để thực thi nó. Ta sẽ bao gồm cờ -P để yêu cầu tập lệnh nhận các phụ thuộc với pip nếu cần thiết. Cờ -M được bao gồm để chỉ định rằng ta muốn cài đặt Salt master. Ta sẽ kết thúc lệnh bằng git develop Develop để nói với script rằng ta muốn sử dụng kho lưu trữ SaltStack GitHub để cài đặt version phát triển mới nhất thay vì Ubuntu PPA.

Lệnh đầy đủ ta cần là:

  • sudo sh install_salt.sh -P -M git develop

Đến đây, bạn đã hoàn tất quá trình cài đặt Salt master. Tiếp theo, ta sẽ cấu hình cái chính để cài đặt và chạy các dịch vụ mới.

Cấu hình chính ban đầu

Tiếp theo, ta cần cấu hình Salt master.

Tạo cấu trúc folder muối

Đầu tiên, ta sẽ tạo cấu trúc folder quản lý cấu hình nơi Salt master sẽ tìm kiếm các file khác nhau. Tất cả chúng đều nằm trong folder /srv theo mặc định. Ta cần /srv/salt/srv/pillar để bắt đầu. Tạo chúng ngay bây giờ bằng lệnh :

  • sudo mkdir -p /srv/{salt,pillar}

Sửa đổi cấu hình Salt Master

Tiếp theo, ta sẽ điều chỉnh file cấu hình chính của Salt. Mở file với quyền sudo trong editor của bạn:

  • sudo nano /etc/salt/master

Điều đầu tiên ta sẽ làm là cài đặt từ điển file_roots . Về cơ bản, điều này chỉ định các vị trí mà Salt master sẽ tìm kiếm các hướng dẫn quản lý cấu hình. Cơ base chỉ định môi trường mặc định. Hai trong số các folder mà ta đã tạo trước đó sẽ được sử dụng cho mục đích này. /srv/salt sẽ được sử dụng cho các hướng dẫn do administrator tạo và /srv/formulas sẽ được dành riêng cho các cấu hình đóng gói sẵn được download từ các nguồn bên ngoài:

/ etc / salt / master
file_roots:   base:     - /srv/salt     - /srv/formulas 

Ghi chú
Điều quan trọng là phải sao chép chính xác các định dạng được đưa ra. Salt sử dụng file cấu hình kiểu YAML. Những điều này đòi hỏi sự chú ý nghiêm ngặt đến khoảng cách và thụt lề để daemon diễn giải chính xác các giá trị.

Tiếp theo, ta sẽ cài đặt folder root cho cấu hình trụ Salt của ta . Điều này trông rất giống với cấu hình ở trên và sử dụng folder thứ ba mà ta đã tạo:

/ etc / salt / master
pillar_roots:   base:     - /srv/pillar 

Đây là tất cả những gì ta cần để cấu hình cho bản chính tại thời điểm này. Lưu file khi bạn hoàn tất.

Sửa đổi cấu hình Salt Minion

Ta cũng đã cài đặt daemon Salt minion trên máy này để ta có thể giữ cho nó tuân theo các policy cơ sở hạ tầng còn lại của ta . Mở cấu hình Salt minion với các quyền sudo tiếp theo:

  • sudo nano /etc/salt/minion

Thay đổi duy nhất mà ta cần thực hiện là chỉ định chủ mà minion này sẽ kết nối. Trong trường hợp này, minion phải kết nối với quy trình chính chạy trên cùng một máy. Đặt master chốt bằng đến địa chỉ loopback local 127.0.0.1 để các minion để một cách chính xác kết nối:

/ etc / salt / minion
master: 127.0.0.1 

Lưu file khi bạn hoàn tất.

Khởi động lại quá trình

Bây giờ, ta cần khởi động lại cả daemon chính và minion để sử dụng các cấu hình mới của ta :

  • sudo restart salt-master
  • sudo restart salt-minion

Cả hai daemon sẽ khởi động lại, có tính đến các thay đổi cấu hình mà ta đã phác thảo.

Chấp nhận Minion Key

Sau khi khởi động lại, daemon Salt minion tự động liên hệ với Salt master bằng thông tin đăng nhập của nó. Với quyền là administrator , bạn chỉ cần xác minh và chấp nhận khóa y sai để cho phép liên lạc.

Bắt đầu bằng cách liệt kê tất cả các key mà Salt master có kiến thức:

  • sudo salt-key --list all

Bạn sẽ thấy thông tin như thế này. saltmaster bên dưới phải trùng với ID minion Salt trong hệ thống của bạn. Đây thường là tên server của server của bạn:

Output
Accepted Keys: Denied Keys: Unaccepted Keys: saltmaster Rejected Keys:

Như bạn thấy , Salt minion của ta đã gửi key cho chủ nhân, nhưng nó vẫn chưa được chấp nhận. Vì mục đích bảo mật, trước khi chấp nhận khóa, ta sẽ chạy hai lệnh.

Ta cần đảm bảo kết quả của điều này (cho ta biết dấu fingerprint của key mà Salt minion tạo ra):

  • sudo salt-call key.finger --local
Output
local: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

Trùng với dấu fingerprint được tìm thấy ở đây (dấu fingerprint của key mà Salt master đang được yêu cầu chấp nhận). Thay thế ID minion tại đây:

  • sudo salt-key -f saltmaster
Output
Unaccepted Keys: saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

Sau khi xác minh các giá trị đó giống nhau, bạn có thể chấp nhận khóa bằng lệnh :

  • sudo salt-key -a saltmaster

Sau khi chấp nhận khóa, bạn có thể thấy rằng khóa đã được chuyển đến phần “Khóa được chấp nhận”:

  • sudo salt-key --list all
Output
Accepted Keys: saltmaster Denied Keys: Unaccepted Keys: Rejected Keys:

Bây giờ, bạn có thể kiểm tra xem các quy trình Salt master và minion đang giao tiếp chính xác bằng lệnh :

  • sudo salt '*' test.ping

Bạn sẽ nhận được một thông báo phản hồi cho biết rằng việc kiểm tra sức khỏe đã thành công:

Output
saltmaster: True

Server chính Salt của bạn hiện đã được cấu hình . Ta có thể chuyển sang phần trình bày cách cài đặt thêm một server Salt minion.

Cài đặt Minion riêng biệt

Bây giờ ta đã có server chính Salt của bạn và hoạt động trơn tru, ta có thể chứng minh cách đưa một server mới dưới sự kiểm soát của Salt như một tay sai.

, ta có nhiều cách cài đặt phần mềm cần thiết, nhưng bạn nên phù hợp với phương pháp được sử dụng cho server chính . Điều này sẽ đảm bảo bạn không có version không khớp giữa Salt master và minion. Các tay sai Salt được cập nhật nhiều hơn so với server chính của chúng có thể thể hiện hành vi không thể đoán trước.

Khi đã sẵn sàng , hãy đăng nhập vào server thứ hai với user sudo của bạn.

Cài đặt Ổn định chính từ PPA Chính thức

Nếu bạn đã cài đặt server chính Salt của bạn từ SaltStack PPA, bạn có thể thêm PPA tương tự trên server minion Ubuntu của bạn :

  • sudo add-apt-repository ppa:saltstack/salt

Lần này, ta chỉ cần cài đặt file thực thi salt-minion . Cập nhật index gói local của bạn sau khi thêm PPA và cài đặt phần mềm bằng lệnh :

  • sudo apt-get update
  • sudo apt-get install salt-minion

Minion Salt của bạn bây giờ sẽ được cài đặt. Chuyển sang phần cấu hình minion của bạn .

Cài đặt version ổn định bằng Salt-Bootstrap

Nếu bạn đã cài đặt version ổn định bằng cách sử dụng salt-bootstrap , bạn có thể tải tập lệnh tương tự xuống máy minion của bạn :

  • cd ~
  • curl -L https://bootstrap.saltstack.com -o install_salt.sh

Ta sẽ gọi script theo cách gần giống như ta đã làm trên Salt master. Sự khác biệt duy nhất là ta bỏ cờ -M , vì ta không cần cài đặt các công cụ chính và daemon:

  • sudo sh install_salt.sh -P

Minion Salt của bạn bây giờ sẽ được cài đặt. Chuyển sang phần cấu hình minion của bạn .

Cài đặt version phát triển bằng Salt-Bootstrap

Nếu bạn đã cài đặt version phát triển hiện tại trên Salt master bằng cách sử dụng salt-bootstrap , bạn có thể cài đặt quy trình minion đồng hành bằng cách sử dụng cùng một tập lệnh. Tải nó xuống minion của bạn bằng lệnh :

  • cd ~
  • curl -L https://bootstrap.saltstack.com -o install_salt.sh

Lệnh ta cần để cài đặt minion gần giống với lệnh ta đã sử dụng trên master. Sự khác biệt duy nhất là ta bỏ cờ -M để cho biết rằng ta không cần các công cụ và daemon chính của Salt:

  • sudo sh install_salt.sh -P git develop

Khi bạn hoàn tất, hãy tiếp tục cấu hình version minion của bạn.

Cấu hình Minion

Bây giờ ta đã cài đặt minion, ta có thể tiếp tục và cấu hình nó để giao tiếp với Salt master của ta .

Nhận fingerprint public key của Salt Master

Trước khi bắt đầu, ta nên lấy dấu fingerprint chính của Salt master. Ta có thể thêm điều này vào cấu hình minion của bạn để tăng cường bảo mật.

Trên server chính Salt của bạn, hãy nhập:

  • sudo salt-key -F master

Đầu ra sẽ giống như sau:

Output
Local Keys: master.pem: 12:db:25:3d:7f:00:a3:ed:20:55:94:ca:18:f8:67:97 master.pub: 7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92 Accepted Keys: saltmaster: 24:c8:77:1d:ed:10:d7:b0:3e:bc:bc:ed:41:e1:5a:d1

Giá trị của khóa master.pub , nằm trong phần “Khóa local ” là dấu fingerprint mà ta đang tìm kiếm. Sao chép giá trị này để sử dụng trong cấu hình Minion của ta .

Sửa đổi cấu hình Minion

Quay lại minion Salt mới của bạn, mở file cấu hình minion với các quyền sudo :

  • sudo nano /etc/salt/minion

Ta cần chỉ định vị trí có thể tìm thấy Salt master. Đây có thể là một domain DNS có thể phân giải hoặc một địa chỉ IP:

/ etc / salt / minion
master: ip_of_salt_master 

Tiếp theo, đặt tùy chọn master_finger thành giá trị fingerprint mà bạn đã sao chép từ Salt master một lúc trước:

/ etc / salt / minion
master_finger: '7b:97:23:4b:a4:6d:16:31:2d:c9:e3:81:e2:d5:32:92' 

Lưu file khi bạn hoàn tất.

Bây giờ, khởi động lại daemon Salt minion để áp dụng các thay đổi cấu hình mới của bạn:

  • sudo restart salt-minion

Tay sai mới nên liên hệ với dịch vụ chính của Salt theo địa chỉ được cung cấp. Sau đó, nó sẽ gửi khóa của nó để chủ nhân chấp nhận. Để xác minh khóa an toàn, cần kiểm tra dấu fingerprint của khóa trên server minion mới.

Để làm điều này, hãy nhập:

  • sudo salt-call key.finger --local

Bạn sẽ thấy kết quả giống như sau:

Output
local: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

Bạn cần xác minh fingerprint chính mà server chính nhận được trùng với giá trị này.

Nhận key Minion trên Salt Master

Quay lại server chính Salt của bạn, ta cần chấp nhận khóa.

Trước tiên, hãy xác minh ta có một khóa chưa được chấp nhận đang chờ trên chính:

  • sudo salt-key --list all

Bạn sẽ thấy một khóa mới trong phần "Khóa không được chấp nhận" được liên kết với lính mới của bạn:

Output
Accepted Keys: saltmaster Denied Keys: Unaccepted Keys: saltminion Rejected Keys:

Kiểm tra dấu fingerprint của key mới. Sửa đổi phần được đánh dấu bên dưới bằng ID minion mà bạn thấy trong phần “Khóa không được chấp nhận”:

  • sudo salt-key -f saltminion

Đầu ra sẽ giống như sau:

Output
Unaccepted Keys: saltminion: 32:2a:7c:9a:f2:0c:d1:db:84:df:d3:82:00:d5:8f:be

Nếu giá trị này trùng với giá trị bạn nhận được từ minion khi ra lệnh salt-call , bạn có thể chấp nhận khóa một cách an toàn bằng lệnh :

  • sudo salt-key -a saltminion

Khóa bây giờ sẽ được thêm vào phần "Khóa được chấp nhận":

  • sudo salt-key --list all
Output
Accepted Keys: saltmaster saltminion Denied Keys: Unaccepted Keys: Rejected Keys:

Kiểm tra xem bạn có thể gửi lệnh tới lính mới của bạn bằng lệnh :

  • sudo salt '*' test.ping

Bạn sẽ nhận được câu trả lời từ cả hai daemon minion mà bạn đã cấu hình :

Output
saltminion: True saltmaster: True

Kết luận

Đến đây bạn sẽ có một server chính Salt được cấu hình để kiểm soát cơ sở hạ tầng của bạn . Ta cũng đã thực hiện quá trình cài đặt một server minion mới. Bạn có thể làm theo quy trình tương tự cho các minion Salt bổ sung. Đây là những kỹ năng cơ bản bạn cần để cài đặt cơ sở hạ tầng mới cho việc quản lý Muối.


Tags:

Các tin liên quan

Cách cài đặt và bắt đầu với Symfony 2 trên Ubuntu 14.04
2015-10-01
Cách cài đặt MemSQL trên Ubuntu 14.04
2015-09-30
Cách thiết lập xác thực đa yếu tố cho SSH trên Ubuntu 14.04
2015-09-29
Cách bảo vệ WordPress với Fail2Ban trên Ubuntu 14.04
2015-09-16
Cách cài đặt và sử dụng Composer trên Ubuntu 14.04
2015-09-11
Cách tối ưu hóa cài đặt Tomcat của bạn trên Ubuntu 14.04
2015-09-08
Cách cài đặt Mailpile trên Ubuntu 14.04
2015-08-21
Cách cài đặt CouchDB và Futon trên Ubuntu 14.04
2015-08-10
Cách thiết lập firewall với UFW trên Ubuntu 14.04
2015-08-05
Cách đánh giá độ trễ HTTP theo chuẩn với wrk trên Ubuntu 14.04
2015-07-21