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