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 -Ncho biết không nên cài đặt salt-minionvì 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ế saltbằ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.pubvào /etc/salt/miniongiữ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ị truecho 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à aptyum, 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ụ, apachelà gói máy chủ Apache httpd trong Debian và Ubuntu, trong khi httpdlà 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 mariadbdị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/