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-ssh và salt-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 và /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:
file_roots:   base:     - /srv/salt     - /srv/formulas 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:
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:
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:
OutputAccepted 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 
Outputlocal:     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 
OutputUnaccepted 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 
OutputAccepted 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:
Outputsaltmaster:     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:
OutputLocal 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:
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:
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:
Outputlocal:     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:
OutputAccepted 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:
OutputUnaccepted 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 
OutputAccepted 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 :
Outputsaltminion:     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.
Các tin liên quan
Cách cài đặt và bắt đầu với Symfony 2 trên Ubuntu 14.042015-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
 

