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:
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:
Tiếp theo, cài đặt các phụ thuộc cần thiết bằng lệnh sau:
Tiếp theo, cài đặt SaltStack master bằng lệnh sau:
Sau khi cài đặt thành công, bạn có thể tiến hành bước tiếp theo.
Thay đổi dòng sau:
Lưu và đóng tệp, sau đó khởi động lại máy chủ SaltStack bằng lệnh sau:
Bây giờ bạn có thể xác minh trạng thái của SaltStack bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
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:
Tiếp theo, cài đặt SaltStack Minion bằng lệnh sau:
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.
Thay đổi dòng sau:
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:
Bạn sẽ nhận được kết quả sau:
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:
Thêm dấu vân tay chính như hiển thị bên dưới:
Bạn cũng sẽ cần phải xác định tên của Minion:
Lưu và đóng tệp, sau đó khởi động lại Minion SaltStack bằng lệnh sau:
Bạn cũng có thể xác minh trạng thái của Minion SaltStack bằng lệnh sau:
Bạn sẽ nhận được thông báo sau đầu ra:
Bạn cũng có thể kiểm tra dấu vân tay của minion bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Trên máy SaltStack Master, hãy khớp dấu vân tay bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Trên SaltStack Master, chấp nhận Minion bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Bây giờ, hãy xác minh kết nối giữa Master và Minion bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Chạy lệnh sau để liệt kê dung lượng đĩa khả dụng trên Minion:
Bạn sẽ nhận được kết quả đầu ra sau:
Để cài đặt gói Apache trên Minion, hãy chạy lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Để kiểm tra miễn phí bộ nhớ trên Minion, hãy chạy lệnh sau:
Bạn sẽ nhận được kết quả sau:
Để tạo tệp trạng thái, bạn sẽ cần tạo cơ sở môi trường cho SaltStack.
Tiếp theo, tạo tệp trạng thái bằng lệnh sau:
Thêm mã sau để cài đặt PHP, UNZIP và gói Apache trên Minions:
Lưu và đóng tệp sau đó áp dụng cấu hình cho tất cả Minions bằng lệnh sau:
Bạn sẽ nhận được đầu ra sau:
- 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.
Đ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
Mã:
apt-get update -y
Mã:
apt-get install python3 salt-common -y
Mã:
apt-get install salt-master -y
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
Mã:
giao diện: 0.0.0.0
Mã:
systemctl restart salt-master
Mã:
systemctl status salt-master
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.
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
Mã:
apt-get update -y
Mã:
apt-get install salt-minion -y
Mã:
nano /etc/salt/minion
Mã:
master: salt-master-ip
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
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
Trên máy Minion, hãy chỉnh sửa tệp cấu hình:
Mã:
nano /etc/salt/minion
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'
Mã:
id: Minion1
Mã:
systemctl restart salt-minion
Mã:
systemctl status salt-minion
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.
Mã:
salt-call key.finger --local
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
Mã:
salt-key --finger-all
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
Mã:
salt-key -a Minion1
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.
Mã:
salt Minion1 test.ping
Mã:
Minion1: True
Đ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
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
Mã:
salt Minion1 pkg.install apache2
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:
Mã:
salt '*' cmd.run 'free -m'
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
Mã:
nano /src/salt/setup.sls
Mã:
network_utilities: pkg.installed: - pkgs: - php - unzipapache2_pkg: pkg.installed: - name: apache2apache2_service: service.running: - name: apache2 - enable: True - require: - pkg: apache2_pkg
Mã:
salt '*' state.apply setup
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