Salt là một nền tảng quản lý cấu hình dựa trên Python được thiết kế để điều khiển một số máy chủ phụ (gọi là Minion theo thuật ngữ của Salt) từ một máy chủ chính duy nhất. Hướng dẫn này hướng dẫn bạn cách cấu hình Salt Master và Minion và liên quan đến bất kỳ bản phân phối Linux nào được hỗ trợ.
Trước khi bạn bắt đầu
- Bạn sẽ cần ít nhất hai Linode: Một sẽ hoạt động như Salt Master và một hoặc nhiều cái còn lại sẽ hoạt động như Salt Minion.
- Đặt tên máy chủ của từng Linode . Tên máy chủ sẽ được sử dụng để xác định từng Linode trong Salt nên hãy đặt tên cụ thể (ví dụ: master, minion1, minion2, v.v.).
- Chúng tôi khuyên bạn nên cấu hình địa chỉ IP riêng cho từng hệ thống nếu Linode của bạn nằm trong cùng một trung tâm dữ liệu.
Cài đặt bằng Salt Bootstrap
Salt Bootstrap là một tập lệnh cấu hình tự động phát hiện hệ điều hành đang chạy, thiết lập kho lưu trữ chính xác và cài đặt Salt. Tập lệnh cài đặt được thiết kế để chạy trên máy chủ Salt và tất cả các máy minion.
Salt Master
curl -L https://bootstrap.saltproject.io -o install_salt.sh
sudo sh install_salt.sh -P -M -N
Ghi chú: Cờ này -N
cho biết không nên cài đặt salt-minion
vì hệ thống này là Salt master.
Minion Salt
curl -L https://bootstrap.saltproject.io -o install_salt.sh
sudo sh install_salt.sh -P
Phối hợp Địa chỉ Mạng
Salt Master
1.Bỏ chú thích #interface:
dòng gần đầu tệp và thay thế trình giữ chỗ địa chỉ bằng địa chỉ Linode của Salt master của bạn. Nếu Linode của bạn nằm trong cùng một trung tâm dữ liệu, bạn có thể sử dụng địa chỉ IP riêng của Linode.
# The address of the interface to bind to:
interface: 203.0.113.0
2.Khởi động lại Salt:
sudo systemctl restart salt-master
Minion Salt
Ghi chú: Bước này phải được thực hiện trên mỗi lính Salt.
Bỏ chú thích #master: salt
ở gần đầu /etc/salt/minion
, và thay thế salt
bằng địa chỉ IP của máy chủ Salt của bạn:
# Set the location of the salt master server. If the master server cannot be
# resolved, then the minion will fail to start.
master: 203.0.113.0
Xác thực Minions với Salt Master
Nhận vân tay Salt Master Key
Từ Salt master, liệt kê dấu vân tay chính của nó và tất cả Minion được liên kết với nó bằng dấu vân tay chính của chúng:
sudo salt-key --finger-all
Bạn sẽ thấy tên máy chủ minion hoặc địa chỉ IP được liệt kê trong Unaccepted Keys và dấu vân tay SHA256 của mỗi khóa. Tại đây, dấu vân tay được cắt bớt để ...
tránh lộn xộn.
Local Keys:
master.pem: e9:6a:86:bf...
master.pub: 4b:2a:81:79...
Accepted Keys:
Unaccepted Keys:
minion1: c7:b2:55:83:46...
minion2: f8:41:ce:73:f8...
Cấu hình Salt Minions
1.Thêm dấu vân tay của Salt Master master.pub
vào /etc/salt/minion
giữa dấu ngoặc đơn:
# Fingerprint of the master public key to validate the identity of your Salt master
# before the initial key exchange. The master fingerprint can be found by running
# "salt-key -f master.pub" on the Salt master.
master_finger: '4b:2a:81:79...'
2.Khởi động lại Salt:
sudo systemctl restart salt-minion
3.Liệt kê mã băm dấu vân tay của Minion và xác minh nó với thông tin được Salt Master báo cáo ở Bước 1 ở trên:
sudo salt-call key.finger --local
Chấp nhận Minions
1.Sau khi xác minh từng ID Minion, hãy chấp nhận tất cả chúng từ Salt Master:
sudo salt-key -A
Ghi chú: Để chấp nhận một minion riêng lẻ, hãy chỉ định nó theo tên máy chủ hoặc địa chỉ IP:
sudo salt-key -a hostname
2.Xác minh trạng thái của các minion đã được chấp nhận. Lệnh bên dưới sẽ trả về tên máy chủ hoặc địa chỉ IP của mỗi Minion đã được xác minh và đang chạy.
sudo salt-run manage.up
Để biết thêm thông tin về Salt keys, hãy xem trang hướng dẫn salt-key .
Kiểm tra kết nối Master-Minion
Ping tất cả Minion:
sudo salt '*' test.ping
Đầu ra sẽ hiển thị true
cho từng Minion:
root@saltmaster:~# salt '*' test.ping
minion1:
True
minion2:
True
Tổng quan về quản lý gói
Các gói được cài đặt hoặc gỡ bỏ khỏi Minion bằng cách sử dụng mô-đun pkg state . Miễn là bạn đang chạy bản phân phối Linux được SaltStack hỗ trợ, mô-đun Salt sẽ điều khiển trình quản lý gói của bản phân phối, có thể là apt
, yum
, v.v. Các gói có thể được nhắm mục tiêu đến từng Minion bằng cách chỉ định tên máy chủ hoặc địa chỉ IP của minion hoặc đến tất cả Minion bằng cách sử dụng *
.
Cài đặt các gói bằng cùng tên gói được sử dụng trong kho lưu trữ hệ thống của Salt minion. Ví dụ, apache
là gói máy chủ Apache httpd trong Debian và Ubuntu, trong khi httpd
là tên gói trong các hệ thống dựa trên RHEL. Nếu Salt Minion của bạn là phiên bản Debian hoặc Ubuntu, bạn sẽ cài đặt hoặc xóa Apache bằng các ví dụ bên dưới.
Cài đặt Apache cho tất cả Minion:
sudo salt '*' pkg.install apache2
Xóa Apache khỏi minion5
:
sudo salt 'minion5' pkg.remove apache2
Liệt kê tất cả các gói được cài đặt trên minion1
:
sudo salt 'minion1' pkg.list_pkgs
Các dịch vụ được kiểm soát bằng mô-đun dịch vụ .
Khởi động lại Apache trên tất cả Minion:
sudo salt '*' service.start apache2
Xem trạng thái của mariadb
dịch vụ trên minion1
:
sudo salt 'minion1' service.status mariadb
Các bước tiếp theo
Salt là một hệ sinh thái phức tạp đòi hỏi phải nghiên cứu và thực hành để nắm bắt kỹ lưỡng. Tài liệu Salt có nhiều ví dụ, hướng dẫn và trang tham khảo sẽ giúp ích.
Tiến về phía trước, bạn nên bắt đầu bằng cách làm quen với Execution Modules và Salt States , và xác định cách áp dụng chúng vào thiết lập của bạn.
Nguồn: https://www.linode.com/docs/guides/getting-started-with-salt-basic-installation-and-setup/