Cách cài đặt SaltStack IT Automation Framework trên Debian 12

theanh

Administrator
Nhân viên
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.

Đ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
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.
Mã:
192.168.5.15 master
192.168.5.21 minion1
Lưu và thoát tệp khi hoàn tất.

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
Tải xuống khóa GPG cho kho lưu trữ SaltStack bằng lệnh bên dưới.
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
Sau khi Khóa GPG đã được tải xuống, hãy thêm kho lưu trữ SaltStack bằng lệnh sau.
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
Bây giờ hãy cập nhật và làm mới chỉ mục gói Debian của bạn.
Mã:
sudo apt update
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

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
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.
Mã:
sudo ufw allow OpenSSH
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.
Mã:
sudo ufw enable
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

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
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.
Mã:
interface: 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.
Mã:
sudo systemctl restart salt-master
Sau đó, hãy xác minh dịch vụ salt-master để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl status salt-master
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.
Mã:
sudo ufw allow 4505,4506/tcp
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.
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
Nhập địa chỉ IP Salt Master của bạn vào tham số chính như sau:
Mã:
master: 192.168.5.15
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.
Mã:
sudo systemctl restart salt-minion
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ã:
sudo systemctl status salt-minion
Đả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

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
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.
Mã:
salt-key -a minion1
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.
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
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.
Mã:
salt minion1 test.version
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 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
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.
Mã:
salt '*' pkg.list_upgrades
Tiếp theo, chạy lệnh sau để hiển thị thông tin về gói apache2.
Mã:
salt '*' pkg.show 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.
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
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.
Mã:
nano /srv/salt/lamp/init.sls
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.
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
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.
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
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ã:
salt '*' service.get_running
Đả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

Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt SaltStack (Salt Master và Minion) trên máy chủ Debian 12. Bạn cũng đã học cách chạy lệnh tùy ý trên máy chủ Minion và tạo trạng thái Salt đầu tiên để cài đặt LAMP Stack (Apache2, MariaDB và PHP).
 
Back
Bên trên