Cách cài đặt Saltstack Master và Minion trên Debian 11

theanh

Administrator
Nhân viên
SaltStack là phần mềm quản lý cấu hình và tự động hóa miễn phí, mã nguồn mở và dựa trên Python. Đây là công cụ dòng lệnh giúp bạn quản lý cơ sở hạ tầng của mình từ một vị trí trung tâm. SoltStack được tạo thành từ bốn thành phần. Giải thích ngắn gọn về từng thành phần được hiển thị bên dưới:
  • Salt Master hoạt động như một bộ điều khiển dòng lệnh cho các minion của nó. Nó được sử dụng để kiểm soát và quản lý một số minion.
  • Salt Minion là daemon slave nhận cấu hình và lệnh từ master.
  • Formula là các tệp quản lý cấu hình.
  • Execution là một số lệnh và mô-đun được thực thi trên các minion.
Trong bài viết này, tôi sẽ chỉ cho bạn cách cài đặt hệ thống SaltStack Master và Minion trên Debian 11.

Điều kiện tiên quyết​

  • Hai máy chủ chạy Debian 11.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Cài đặt Saltstack Master​

Theo mặc định, SaltStack không được bao gồm trong kho lưu trữ mặc định của Debian 11. Vì vậy, bạn sẽ cần thêm kho lưu trữ SaltStack vào APT. Bạn có thể thêm nó bằng cách chạy lệnh sau:
Mã:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
Mã:
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye chính" | tee /etc/apt/sources.list.d/salt.list
Sau khi kho lưu trữ được thêm vào, hãy cập nhật bộ đệm kho lưu trữ bằng lệnh sau:
Mã:
apt-get update -y
Tiếp theo, cài đặt các phụ thuộc cần thiết bằng lệnh sau:
Mã:
apt-get install python3 salt-common -y
Tiếp theo, cài đặt SaltStack master bằng lệnh sau:
Mã:
apt-get install salt-master -y
Sau khi cài đặt thành công, bạn có thể tiến hành bước tiếp theo.

Cấu hình Saltstack Master​

Tiếp theo, bạn sẽ cần xác định giao diện liên kết trong tệp cấu hình SaltSTack.
Mã:
nano /etc/salt/master
Thay đổi dòng sau:
Mã:
giao diện: 0.0.0.0
Lưu và đóng tệp, sau đó khởi động lại máy chủ SaltStack bằng lệnh sau:
Mã:
systemctl restart salt-master
Bây giờ bạn có thể xác minh trạng thái của SaltStack bằng lệnh sau:
Mã:
systemctl status salt-master
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
? salt-master.service - Máy chủ Salt Master Đã tải: đã tải (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ Sat 2022-02-12 07:39:48 UTC; 9 giây trước Tài liệu: man:salt-master(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html PID chính: 19403 (salt-master) Nhiệm vụ: 32 (giới hạn: 2341) Bộ nhớ: 201,5M CPU: 6,109 giây CGroup: /system.slice/salt-master.service ??19403 /usr/bin/python3 /usr/bin/salt-master ??19407 /usr/bin/python3 /usr/bin/salt-master ??19431 /usr/bin/python3 /usr/bin/salt-master ??19434 /usr/bin/python3 /usr/bin/salt-master ??19435 /usr/bin/python3 /usr/bin/salt-master ??19436 /usr/bin/python3 /usr/bin/salt-master ??19437 /usr/bin/python3 /usr/bin/salt-master ??19444 /usr/bin/python3 /usr/bin/salt-master ??19445 /usr/bin/python3 /usr/bin/salt-master ??19446 /usr/bin/python3 /usr/bin/salt-master ??19448 /usr/bin/python3 /usr/bin/salt-master ??19451 /usr/bin/python3 /usr/bin/salt-master ??19454 /usr/bin/python3 /usr/bin/salt-master12/02 07:39:48 debian11 systemd[1]: Bắt đầu Salt Máy chủ chính...12/02 07:39:48 debian11 systemd[1]: Đã khởi động Máy chủ Salt Master.
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cài đặt và cấu hình Saltstack Minion​

Tại thời điểm này, SaltStack Master đã được cài đặt và cấu hình. Bây giờ, hãy đăng nhập vào một máy khác và thêm kho lưu trữ SaltStack Minion bằng lệnh sau:
Mã:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
Mã:
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list
Sau khi kho lưu trữ được thêm vào, hãy cập nhật bộ đệm kho lưu trữ bằng lệnh sau:
Mã:
apt-get update -y
Tiếp theo, cài đặt SaltStack Minion bằng lệnh sau:
Mã:
apt-get install salt-minion -y
Sau khi cài đặt thành công, hãy chỉnh sửa tệp cấu hình SaltStack Minion và xác định địa chỉ IP chính.
Mã:
nano /etc/salt/minion
Thay đổi dòng sau:
Mã:
master: salt-master-ip
Lưu và đóng tệp khi bạn hoàn tất.

Tiếp theo, bạn sẽ cần xác thực các minion bằng dấu vân tay công khai của máy chủ.

Trên máy Salt Master, hãy liệt kê tất cả dấu vân tay bằng lệnh sau:
Mã:
salt-key --finger-all
Bạn sẽ nhận được kết quả sau:
Mã:
Khóa cục bộ:master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1
Bây giờ, hãy sao chép dòng dấu vân tay master.pub và thêm vào tệp cấu hình Minion.

Trên máy Minion, hãy chỉnh sửa tệp cấu hình:
Mã:
nano /etc/salt/minion
Thêm dấu vân tay chính như hiển thị bên dưới:
Mã:
master_finger: '5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1'
Bạn cũng sẽ cần phải xác định tên của Minion:
Mã:
id: Minion1
Lưu và đóng tệp, sau đó khởi động lại Minion SaltStack bằng lệnh sau:
Mã:
systemctl restart salt-minion
Bạn cũng có thể xác minh trạng thái của Minion SaltStack bằng lệnh sau:
Mã:
systemctl status salt-minion
Bạn sẽ nhận được thông báo sau đầu ra:
Mã:
? salt-minion.service - Salt Minion Đã tải: đã tải (/lib/systemd/system/salt-minion.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ bảy 2022-02-12 07:46:04 UTC; 7 giây trước Tài liệu: man:salt-minion(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html PID chính: 2324 (salt-minion) Nhiệm vụ: 8 (giới hạn: 2341) Bộ nhớ: 59,9M CPU: 1,185 giây CGroup: /system.slice/salt-minion.service ??2324 /usr/bin/python3 /usr/bin/salt-minion ??2326 /usr/bin/python3 /usr/bin/salt-minion ??2328 /usr/bin/python3 /usr/bin/salt-minion12/02 07:46:04 debian11 systemd[1]: Đang khởi động Salt Minion...12/02 07:46:04 debian11 systemd[1]: Đã khởi động The Salt Minion.
Bạn cũng có thể kiểm tra dấu vân tay của minion bằng lệnh sau:
Mã:
salt-call key.finger --local
Bạn sẽ nhận được kết quả sau:
Mã:
local: 14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27
Trên máy SaltStack Master, hãy khớp dấu vân tay bằng lệnh sau:
Mã:
salt-key --finger-all
Bạn sẽ nhận được kết quả sau:
Mã:
Local Keys:master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1Khóa không được chấp nhận:Minion1: 14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27
Trên SaltStack Master, chấp nhận Minion bằng lệnh sau:
Mã:
salt-key -a Minion1
Bạn sẽ nhận được kết quả sau:
Mã:
Các khóa sau sẽ được chấp nhận:Khóa không được chấp nhận:Minion1Tiếp tục? [n/Y] YĐã chấp nhận khóa cho minion Minion1.
Bây giờ, hãy xác minh kết nối giữa Master và Minion bằng lệnh sau:
Mã:
salt Minion1 test.ping
Bạn sẽ nhận được kết quả sau:
Mã:
Minion1: True
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Điều khiển Minion từ Master​

Sau khi kết nối thành công giữa Master và Minion. Hãy bắt đầu thực hiện một số lệnh trên Minion.

Chạy lệnh sau để liệt kê dung lượng đĩa khả dụng trên Minion:
Mã:
salt '*' disk.usage
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
Minion1: ---------- /: ---------- 1K-blocks: 51538400 available: 47658628 capacity: 4% filesystem: /dev/sda1 used: 1661604 /dev: ---------- 1K-blocks: 998936 available: 998936 capacity: 0% filesystem: udev used: 0 /dev/shm: ---------- 1K-blocks: 1015232 available: 1015152 capacity: 1% filesystem: tmpfs used: 80
Để cài đặt gói Apache trên Minion, hãy chạy lệnh sau:
Mã:
salt Minion1 pkg.install apache2
Bạn sẽ nhận được kết quả đầu ra sau:
Mã:
Minion1: ---------- apache2: ---------- new: 2.4.52-1~deb11u2 old: apache2-bin: ---------- new: 2.4.52-1~deb11u2 old: apache2-data: ---------- new: 2.4.52-1~deb11u2 old: apache2-utils: ---------- new: 2.4.52-1~deb11u2 old: libapr1: ---------- new: 1.7.0-6+deb11u1 old: libaprutil1: ---------- new: 1.6.1-5 old: libaprutil1-dbd-sqlite3: ---------- new: 1.6.1-5 old: libaprutil1-ldap: ---------- new: 1.6.1-5 old:
Để kiểm tra miễn phí bộ nhớ trên Minion, hãy chạy lệnh sau:
Mã:
salt '*' cmd.run 'free -m'
Bạn sẽ nhận được kết quả sau:
Mã:
Minion1: tổng số bộ đệm/bộ nhớ đệm chia sẻ miễn phí đã sử dụng có sẵn Mem: 1982 140 1392 2 450 1691 Swap: 0 0 0

Sử dụng tệp trạng thái Salt để quản lý Minion​

Tệp trạng thái cũng được gọi là tệp quản lý cấu hình được sử dụng để cấu hình và quản lý Minion.

Để tạo tệp trạng thái, bạn sẽ cần tạo cơ sở môi trường cho SaltStack.
Mã:
mkdir /src/salt
Tiếp theo, tạo tệp trạng thái bằng lệnh sau:
Mã:
nano /src/salt/setup.sls
Thêm mã sau để cài đặt PHP, UNZIP và gói Apache trên Minions:
Mã:
network_utilities: pkg.installed: - pkgs: - php - unzipapache2_pkg: pkg.installed: - name: apache2apache2_service: service.running: - name: apache2 - enable: True - require: - pkg: apache2_pkg
Lưu và đóng tệp sau đó áp dụng cấu hình cho tất cả Minions bằng lệnh sau:
Mã:
salt '*' state.apply setup
Bạn sẽ nhận được đầu ra sau:
Mã:
Minion1:---------- ID: network_utilities Chức năng: pkg.installed Kết quả: True Bình luận: Các gói sau đã được cài đặt/cập nhật: php, unzip Bắt đầu: 07:51:22.424504 Thời lượng: 17349,907 ms Thay đổi: ---------- libapache2-mod-php7.4: ---------- mới: 7.4.25-1+deb11u1 cũ: php: ---------- mới: 2:7.4+76 cũ: php-common: ---------- mới: 2:76 cũ: php7.4: ---------- mới: 7.4.25-1+deb11u1 cũ: php7.4-cli: ---------- mới: 7.4.25-1+deb11u1 cũ: php7.4-common: ---------- mới: 7.4.25-1+deb11u1 cũ: php7.4-json: ---------- mới: 7.4.25-1+deb11u1 cũ: php7.4-opcache: ---------- mới: 7.4.25-1+deb11u1 cũ: php7.4-readline: ---------- new: 7.4.25-1+deb11u1 old: psmisc: ---------- new: 23.4-2 old: unzip: ---------- new: 6.0-26 old:---------- ID: apache2_pkg Function: pkg.installed Name: apache2 Result: True Comment: All specified packages are already installed Started: 07:51:39.780956 Duration: 1029.457 ms Changes:---------- ID: apache2_service Function: service.running Name: apache2 Result: True Comment: The service apache2 is already running Started: 07:51:40.812210 Duration: 35.61 ms Changes:Tóm tắt cho Minion1------------Thành công: 3 (changed=1)Thất bại: 0------------Tổng số trạng thái chạy: 3Tổng thời gian chạy: 18.415 giây

Kết luận​

Xin chúc mừng! Bạn đã cài đặt và cấu hình thành công SaltStack Master và Minion trên máy chủ Debian 11. Chúng tôi cũng đã giải thích cách quản lý Minion bằng tệp trạng thái và dòng lệnh. Tôi hy vọng điều này sẽ giúp bạn tự động hóa và quản lý cơ sở hạ tầng của mình từ vị trí trung tâm. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên