Cài đặt và Triển khai SaltStack

SaltStack: Tổng quan và Cài đặt

SaltStack là một nền tảng quản lý cấu hình và điều khiển từ xa mạnh mẽ, được viết bằng Python. Nó cho phép quản lý hàng ngàn máy chủ từ một trung tâm duy nhất, hỗ trợ cả môi trường nhỏ và quy mô lớn. SaltStack sử dụng kiến trúc client-server (C/S) với cấu hình đơn giản, linh hoạt và có khả năng mở rộng cao.

SaltStack hỗ trợ người dùng tùy chỉnh thông qua các module Python và cung cấp API Python để dễ dàng mở rộng chức năng. Nó có thể thực thi lệnh từ xa, quản lý cấu hình hệ thống, và tự động hóa các tác vụ运维.

Trang tài liệu chính thức: http://docs.saltstack.cn/

Môi trường triển khai

Cấu hình máy chủ

IP/HOST Chức năng
192.168.0.110 Master (Quản lý)
192.168.0.101 Minion (Được quản lý)
192.168.0.102 Minion (Được quản lý)
192.168.0.103 Minion (Được quản lý)

Cấu hình file hosts

# Máy chủ
[root@manager110 ~]# vim /etc/hosts
192.168.0.101 db101
192.168.0.102 db102
192.168.0.103 db103
192.168.0.110 manager110

# Client: Thực hiện trên tất cả các máy 101-103
[root@db101 ~]# vim /etc/hosts
192.168.0.101 db101
192.168.0.102 db102
192.168.0.103 db103
192.168.0.110 manager110

Cổng kết nối

  • publish_port: 4505
  • ret_port: 4506

Cài đặt SaltStack

Cấu hình repository YUM

# Cả máy chủ và client đều cần thực hiện
rpm --import https://repo.saltproject.io/salt/py3/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub

curl -fsSL https://repo.saltproject.io/salt/py3/redhat/7/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo

sudo yum clean expire-cache

Cài đặt trên máy chủ Master

sudo yum install salt-master
sudo yum install salt-minion
sudo yum install salt-ssh
sudo yum install salt-syndic
sudo yum install salt-cloud
sudo yum install salt-api

Cài đặt trên máy chủ Minion

sudo yum install salt-minion

Khởi động dịch vụ

# Máy chủ Master
systemctl enable salt-master && systemctl start salt-master
systemctl enable salt-minion && systemctl start salt-minion
systemctl enable salt-syndic && systemctl start salt-syndic
systemctl enable salt-api && systemctl start salt-api

# Máy chủ Minion
systemctl enable salt-minion && systemctl start salt-minion

Cấu hình SaltStack

Tham số cấu hình phổ biến

Master

  • interface: Địa chỉ bind, mặc định 0.0.0.0
  • publish_port: Cổng phát, mặc định 4505
  • ret_port: Cổng trả kết quả, mặc định 4506
  • user: Người dùng chạy dịch vụ, mặc định root
  • timeout: Thời gian chờ, mặc định 5s
  • keep_jobs: Thời gian lưu kết quả, mặc định 24h
  • job_cache: Có lưu cache kết quả không, mặc định True
  • file_recv: Cho phép minion gửi file lên master, mặc định False

Minion

  • master: Địa chỉ master, mặc định salt
  • master_port: Cổng kết nối đến master, mặc định 4506
  • id: Định danh minion, mặc định hostname
  • user: Người dùng chạy dịch vụ, mặc định root
  • cache_jobs: Lưu cache kết quả, mặc định False
  • tcp_keepalive: Giữ kết nối, mặc định True

Cấu hình Master

# Cấu hình tối giản
[root@manager110 salt]# cat /etc/salt/master
interface: 0.0.0.0
publish_port: 4505
ret_port: 4506
user: root
auto_accept: true

Cấu hình Minion

# Cấu hình trên Master
[root@manager110 ~]# sed -i 's/^#master: salt/master: 192.168.0.110/g' /etc/salt/minion
[root@manager110 ~]# sed -i 's/^#id:/id: manager110/g' /etc/salt/minion

# Cấu hình trên Minion
[root@db101 ~]# sed -i 's/^#master: salt/master: 192.168.0.110/g' /etc/salt/minion
[root@db101 ~]# sed -i 's/^#id:/id: db101/g' /etc/salt/minion

Xác thực giữa Master và Minion

Minion sẽ tạo cặp khóa khi khởi động lần đầu và gửi khóa công khai đến Master. Master cần chấp nhận khóa này bằng lệnh salt-key.

# Xem danh sách khóa
salt-key -L

# Chấp nhận tất cả khóa
salt-key -A -y

Kiểm tra kết nối

# Kiểm tra kết nối
[root@db101 ~]# telnet 192.168.0.110 4505

# Nếu không kết nối được, tắt firewall
systemctl stop firewalld && systemctl disable firewalld

Các lệnh cơ bản

Kiểm tra kết nối

# Kiểm tra một minion
salt db101 test.ping

# Kiểm tra nhiều minion
salt -L "db101,db102,db103" test.ping

# Kiểm tra tất cả minion
salt "*" test.ping

Thực thi lệnh từ xa

# Thực thi lệnh trên tất cả minion
salt '*' cmd.run 'ps -ef | grep python'

Quản lý khóa

# Xem danh sách khóa
salt-key -L

# Chấp nhận khóa
salt-key -a db101 -y

# Xóa khóa
salt-key -d db101

Các lệnh khác

  • salt-run: Thực thi runner trên master
  • salt-call: Thực thi module trên chính minion
  • salt-cp: Sao chép file đến minion
  • salt-ssh: Kết nối qua SSH

Thẻ: saltstack Configuration Management automation python infrastructure as code

Đăng vào ngày 1 tháng 7 lúc 22:37