Salt hoặc Saltstack là một khuôn khổ tự động hóa CNTT nguồn mở được viết bằng Python. Nó cho phép người quản trị thực hiện lệnh từ xa đến nhiều máy trực tiếp.
Salt được thiết kế với kiến trúc Master và Minion. Salt master là bộ điều khiển trung tâm của quản lý cấu hình Salt và Minion là các máy chủ do Salt master quản lý hoặc bạn đặt tên cho minion là máy chủ mục tiêu.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt SaltStack trên máy chủ Debian 12. Chúng tôi sẽ chỉ cho bạn cách cài đặt Salt Master và Minion, cách chạy các lệnh tùy ý thông qua Salt, sau đó tạo trạng thái Salt đầu tiên để cài đặt LAMP Stack.
Mở tệp /etc/hosts bằng trình chỉnh sửa nano sau.
Chèn thông tin chi tiết về máy chủ và địa chỉ IP vào tệp. Đảm bảo thay đổi địa chỉ IP và tên máy chủ bằng thông tin của bạn.
Lưu và thoát tệp khi hoàn tất.
Đầu tiên, hãy tạo một thư mục mới /etc/apt/keyrings bằng lệnh bên dưới.
Tải xuống khóa GPG cho kho lưu trữ SaltStack bằng lệnh bên dưới.
Sau khi Khóa GPG đã được tải xuống, hãy thêm kho lưu trữ SaltStack bằng lệnh sau.
Bây giờ hãy cập nhật và làm mới chỉ mục gói Debian của bạn.
Bạn có thể thấy kho lưu trữ SaltStack được thêm vào máy chủ Debian bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Cài đặt UFW trên hệ thống Debian của bạn bằng lệnh bên dưới.
Sau khi UFW được cài đặt, hãy thực hiện lệnh sau để kích hoạt cấu hình ứng dụng OpenSSH. Bạn sẽ thấy các Quy tắc đầu ra được thêm vào.
Bây giờ hãy bật UFW bằng lệnh bên dưới. Nhập y để xác nhận, bắt đầu và bật UFW.
Bạn sẽ nhận được thông báo 'Tường lửa đang hoạt động ...' sau khi UFW được khởi động và bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22148%22%3E%3C/svg%3E
Trên máy chủ master, hãy chạy lệnh bên dưới để cài đặt gói salt-master. Nhập Y để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22700%22%20height=%22322%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy mở cấu hình Salt Master mặc định /etc/salt/master bằng lệnh nano editor bên dưới.
Thay đổi giao diện mặc định bằng địa chỉ IP cục bộ của bạn. Trong ví dụ này, địa chỉ IP của máy chủ chính là 192.168.5.15.
Lưu tệp và thoát khi hoàn tất.
Bây giờ hãy chạy lệnh bên dưới để khởi động lại dịch vụ salt-master và áp dụng các thay đổi của bạn.
Sau đó, hãy xác minh dịch vụ salt-master để đảm bảo rằng dịch vụ đang chạy.
Nếu đang chạy, bạn sẽ thấy đầu ra như active (đang chạy).
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để mở các cổng TCP 4505 và 4506 mà Salt Master sẽ sử dụng.
Cuối cùng, hãy kiểm tra danh sách các cổng trong máy chủ chính của bạn bằng lệnh bên dưới. Đảm bảo quyền truy cập vào các cổng 4505 và 4506 được phép.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22573%22%20height=%22275%22%3E%3C/svg%3E
Cài đặt gói salt-minion vào máy chủ minion1 bằng lệnh bên dưới. Nhập Y để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy mở cấu hình Salt Minion /etc/salt/minion bằng trình chỉnh sửa nano lệnh.
Nhập địa chỉ IP Salt Master của bạn vào tham số chính như sau:
lưu tệp và thoát khỏi trình chỉnh sửa.
Tiếp theo, chạy lệnh bên dưới để khởi động lại dịch vụ salt-minion và áp dụng thay đổi.
Cuối cùng, hãy xác minh dịch vụ salt-minion để đảm bảo rằng dịch vụ đang chạy. Salt Minion sẽ tự động đăng ký vào máy chủ Salt Master.
Đảm bảo dịch vụ salt-minion đang chạy như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22237%22%3E%3C/svg%3E
Trước tiên, hãy chạy lệnh bên dưới để xác minh khóa danh sách trên máy chủ master.
Nếu mọi thứ diễn ra tốt đẹp, bạn có thể thấy khóa cho máy chủ minion1 hoặc máy chủ Salt Minion.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22102%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để chấp nhận khóa cho máy chủ minion1. Nhập Y để xác nhận và chấp nhận khóa.
Tiếp theo, hãy xác minh lại khóa danh sách trên máy chủ minion1. Bạn sẽ thấy khóa cho máy chủ minion1 được liệt kê trong phần Khóa được chấp nhận.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22198%22%3E%3C/svg%3E
Bây giờ bạn có thể kiểm tra kết nối với máy chủ Salt Minion bằng lệnh. bạn có thể chỉ định máy chủ đích bằng tên máy chủ hoặc bạn có thể sử dụng ký tự '*' để nhắm mục tiêu đến tất cả các máy chủ Salt Minion khả dụng.
Nếu kết nối đến Salt Minion thành công, bạn sẽ thấy đầu ra 'Đúng'.
Cuối cùng, hãy xác minh phiên bản Salt bằng lệnh bên dưới.
Trong ví dụ này, Salt Minion 3007.0 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22475%22%20height=%22242%22%3E%3C/svg%3E
Chạy lệnh bên dưới để cập nhật chỉ mục gói kho lưu trữ cho máy chủ Minion.
Bây giờ hãy chạy lệnh bên dưới để đóng gói các bản cập nhật trên máy chủ mục tiêu.
Tiếp theo, chạy lệnh sau để hiển thị thông tin về gói apache2.
Để kiểm tra các dịch vụ đang chạy trên máy chủ Minion, hãy chạy lệnh bên dưới.
Đầu tiên, hãy tạo một thư mục mới /srv/salt/lamp bằng lệnh bên dưới.
Bây giờ hãy tạo tệp khởi tạo trạng thái Salt mới /srv/salt/lamp/init.sls bằng trình chỉnh sửa nano sau.
Thêm cấu hình bên dưới vào tệp. Với lệnh này, bạn sẽ cài đặt LAMP Stack (Apache, MariaDB và PHP) trên máy chủ đích.
Lưu tệp và thoát.
Bây giờ hãy chạy lệnh bên dưới để xác minh cấu hình trạng thái Salt của bạn với Salt Minion. Đảm bảo rằng bạn không gặp bất kỳ lỗi nào.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22528%22%20height=%22684%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để áp dụng trạng thái Salt 'lamp' cho minion1 máy chủ.
Khi quá trình hoàn tất, bạn sẽ nhận được kết quả đầu ra sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22576%22%20height=%22514%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh bên dưới để xác minh các dịch vụ Apache và MariaDB trên minion1 máy chủ.
Đảm bảo cả dịch vụ apache2 và mariadb đều đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22532%22%20height=%22289%22%3E%3C/svg%3E
Salt được thiết kế với kiến trúc Master và Minion. Salt master là bộ điều khiển trung tâm của quản lý cấu hình Salt và Minion là các máy chủ do Salt master quản lý hoặc bạn đặt tên cho minion là máy chủ mục tiêu.
Hướng dẫn này sẽ chỉ cho bạn cách cài đặt SaltStack trên máy chủ Debian 12. Chúng tôi sẽ chỉ cho bạn cách cài đặt Salt Master và Minion, cách chạy các lệnh tùy ý thông qua Salt, sau đó tạo trạng thái Salt đầu tiên để cài đặt LAMP Stack.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:- Hai hoặc ba máy chủ Debian 12 - Trong ví dụ này, chúng tôi sẽ sử dụng máy chủ master trên 192.168.5.15 và máy chủ minion1 trên 192.168.5.21.
- Người dùng không phải root có quyền quản trị viên.
Thiết lập tệp /etc/hosts
Trong phần này, bạn sẽ thiết lập tệp /etc/hosts để mỗi máy chủ có thể kết nối qua tên máy chủ, dễ hơn so với việc sử dụng địa chỉ IP.Mở tệp /etc/hosts bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/hosts
Mã:
192.168.5.15 master
192.168.5.21 minion1
Thêm kho lưu trữ SaltStack
Sau khi thiết lập tệp /etc/hosts, bạn phải thêm kho lưu trữ SaltStack vào tất cả các máy chủ Debian của mình. SaltStack cung cấp kho lưu trữ chính thức cho hầu hết các bản phân phối Linux, bao gồm cả Debian 12 mới nhất.Đầu tiên, hãy tạo một thư mục mới /etc/apt/keyrings bằng lệnh bên dưới.
Mã:
mkdir /etc/apt/keyrings
Mã:
sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg
Mã:
echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Thiết lập UFW
Trong ví dụ này, bạn sẽ thiết lập và kích hoạt UFW (Tường lửa đơn giản) trên các máy chủ Debian của mình. Vì vậy, bạn sẽ cài đặt UFW, mở cổng SSH, sau đó khởi động và kích hoạt UFW.Cài đặt UFW trên hệ thống Debian của bạn bằng lệnh bên dưới.
Mã:
sudo apt install ufw -y
Mã:
sudo ufw allow OpenSSH
Mã:
sudo ufw enable
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22148%22%3E%3C/svg%3E
Cài đặt Salt Master
Sau khi hoàn thành các tác vụ ở trên, bạn đã sẵn sàng cài đặt SaltStack. Bạn sẽ cài đặt và cấu hình Salt Master trên máy chủ master.Trên máy chủ master, hãy chạy lệnh bên dưới để cài đặt gói salt-master. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install salt-master
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22700%22%20height=%22322%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy mở cấu hình Salt Master mặc định /etc/salt/master bằng lệnh nano editor bên dưới.
Mã:
sudo nano /etc/salt/master
Mã:
interface: 192.168.5.15
Bây giờ hãy chạy lệnh bên dưới để khởi động lại dịch vụ salt-master và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart salt-master
Mã:
sudo systemctl status salt-master
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để mở các cổng TCP 4505 và 4506 mà Salt Master sẽ sử dụng.
Mã:
sudo ufw allow 4505,4506/tcp
Mã:
sudo ufw status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22573%22%20height=%22275%22%3E%3C/svg%3E
Cài đặt Salt Minion
Bây giờ bạn đã cấu hình Salt Master, hãy chuyển sang cấu hình Salt Manion trên máy chủ minion1. Bạn sẽ cài đặt salt-minion và sau đó cấu hình nó để kết nối với máy chủ Salt Master.Cài đặt gói salt-minion vào máy chủ minion1 bằng lệnh bên dưới. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install salt-minion
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22302%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy mở cấu hình Salt Minion /etc/salt/minion bằng trình chỉnh sửa nano lệnh.
Mã:
sudo nano /etc/salt/minion
Mã:
master: 192.168.5.15
Tiếp theo, chạy lệnh bên dưới để khởi động lại dịch vụ salt-minion và áp dụng thay đổi.
Mã:
sudo systemctl restart salt-minion
Mã:
sudo systemctl status salt-minion
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22237%22%3E%3C/svg%3E
Thêm Salt Minion vào Salt Master
Sau khi cấu hình Salt Minion, bạn vẫn cần chấp nhận khóa đăng ký từ máy chủ Minion.Trước tiên, hãy chạy lệnh bên dưới để xác minh khóa danh sách trên máy chủ master.
Mã:
salt-key --finger-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22102%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để chấp nhận khóa cho máy chủ minion1. Nhập Y để xác nhận và chấp nhận khóa.
Mã:
salt-key -a minion1
Mã:
salt-key --finger-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22198%22%3E%3C/svg%3E
Bây giờ bạn có thể kiểm tra kết nối với máy chủ Salt Minion bằng lệnh. bạn có thể chỉ định máy chủ đích bằng tên máy chủ hoặc bạn có thể sử dụng ký tự '*' để nhắm mục tiêu đến tất cả các máy chủ Salt Minion khả dụng.
Mã:
salt minion1 test.ping
salt * test.ping
Cuối cùng, hãy xác minh phiên bản Salt bằng lệnh bên dưới.
Mã:
salt minion1 test.version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22475%22%20height=%22242%22%3E%3C/svg%3E
Chạy lệnh tùy ý qua SaltStack
Với mọi thứ được cấu hình, bạn sẽ kiểm tra cài đặt SaltStack của mình bằng cách chạy lệnh tùy ý trên máy chủ minion1 từ máy chủ chính.Chạy lệnh bên dưới để cập nhật chỉ mục gói kho lưu trữ cho máy chủ Minion.
Mã:
salt '*' pkg.refresh_db
Mã:
salt '*' pkg.list_upgrades
Mã:
salt '*' pkg.show apache2
Mã:
salt '*' service.get_running
salt '*' service.execs
Tạo Salt State để cài đặt LAMP Stack
Trong phần này, bạn sẽ tìm hiểu cách tạo SaltState đầu tiên để cài đặt LAMP Stack (Apache, MariaDB và PHP) vào máy chủ minion1.Đầu tiên, hãy tạo một thư mục mới /srv/salt/lamp bằng lệnh bên dưới.
Mã:
mkdir -p /srv/salt/lamp
Mã:
nano /srv/salt/lamp/init.sls
Mã:
lamp_stack:
pkg.installed:
- pkgs:
- apache2
- mariadb-server
- php
- libapache2-mod-php
apache2:
service.running:
- enable: True
- reload: True
mariadb:
service.running:
- enable: True
- reload: True
Bây giờ hãy chạy lệnh bên dưới để xác minh cấu hình trạng thái Salt của bạn với Salt Minion. Đảm bảo rằng bạn không gặp bất kỳ lỗi nào.
Mã:
sudo salt * state.show_sls lamp
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22528%22%20height=%22684%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh bên dưới để áp dụng trạng thái Salt 'lamp' cho minion1 máy chủ.
Mã:
sudo salt minion1 state.apply lamp
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22576%22%20height=%22514%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh bên dưới để xác minh các dịch vụ Apache và MariaDB trên minion1 máy chủ.
Mã:
salt '*' service.get_running
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22532%22%20height=%22289%22%3E%3C/svg%3E