SaltStack - Salt Proxy Minions

Có rất nhiều thiết bị như bộ định tuyến, thiết bị mạng, v.v., có hệ điều hành tùy chỉnh, bộ nhớ hạn chế và cân nhắc bảo mật cao. Trong các thiết bị đó, chúng tôi không thể cài đặt tiêu chuẩnsalt-minionvà sau đó không thể quản lý các hệ thống đó. Tuy nhiên, Salt cung cấp một công nghệ tiên tiến để khắc phục hạn chế này.

Salt có một mô-đun riêng biệt, Salt proxy minion điều khiển hệ thống từ xa bằng dịch vụ REST đang chạy trong hệ thống từ xa. Dịch vụ REST này là một dịch vụ web dựa trên HTTP được viết bằng cách sử dụngRepresentational State Transfer (REST) và chúng đều dễ thực hiện và dễ tiêu thụ.

Mọi thiết bị sẽ có SDK và môi trường phát triển riêng để viết các ứng dụng phức tạp. Salt mong đợi một dịch vụ REST sẽ được phát triển trong thiết bị theo đặc điểm kỹ thuật của giao diện Salt. Salt cũng cung cấp một mô-đun python để viết dịch vụ web REST. Nếu thiết bị hỗ trợ python, thì sẽ dễ dàng phát triển dịch vụ web REST.

Sau khi dịch vụ web REST được phát triển và triển khai trong hệ thống từ xa, Salt có thể được cấu hình để điều khiển thiết bị từ xa bằng dịch vụ web REST thay vì muối minion.

Ví dụ làm việc

Hãy để chúng tôi tìm hiểu khái niệm salt proxy minionsử dụng môi trường làm việc trực tiếp. Đối với môi trường trực tiếp, chúng tôi đã chọn một hệ thống Linux cho cả máy chủ và máy chủ proxy. Chúng tôi sẽ kiểm soát hệ thống bằng cách sử dụng dịch vụ web REST thay vì muối tay sai.

Cài đặt và cấu hình dịch vụ web REST

Salt cung cấp một mẫu triển khai dịch vụ web REST, được đặt tên là proxyminion_rest_example trong mô-đun đóng góp của nó. Hãy để chúng tôi cài đặt dịch vụ web mẫu.

  • Tải về ‘bottle’bằng cách sử dụng pip. Cácbottle lệnh là một khuôn khổ web python để phát triển ứng dụng web.

pip install bottle = 0.12.8
  • Tải về saltstack/salt-contribdự án từ github. Nếu không, hãy sao chép dự án bằng lệnh sau.

git clone https://github.com/saltstack/salt-contrib
  • Mở một thiết bị đầu cuối và đi đến salt-contrib danh mục.

  • Thư mục đóng góp muối này sẽ có một thư mục, proxyminion_rest_example. Thư mục này chứa triển khai mẫu cho dịch vụ web REST. Chuyển đến thư mục proxyminion_rest_example.

  • Chạy lệnh sau để khởi động dịch vụ web REST.

python rest.py --address <your ip address> --port 8000
  • Mở trình duyệt và tải http: // «địa chỉ ip của bạn»: 8000. Điều này sẽ hiển thị trang mặc định với các dịch vụ và gói như được hiển thị trong ảnh chụp màn hình bên dưới.

Bây giờ, chúng tôi đã định cấu hình dịch vụ web REST và nó sẽ kiểm tra cách định cấu hình proxy muối để truy vấn dịch vụ web REST và kiểm soát hệ thống.

Định cấu hình Salt-Proxy

Để định cấu hình Salt-Proxy, chúng ta phải làm theo các bước dưới đây.

  • Chúng tôi phải chỉ định nút chính cho muối-proxy. Chỉnh sửa vị trí tệp cấu hình proxy, trong / etc / salt / proxy, và nhập mã sau.

master: <your ip address>
  • Sửa đổi / tạo tệp trụ cột cơ sở trong /srv/pillar/top.sls như được hiển thị trong khối mã sau đây.

base:
  'p8000':
      - p8000
  • Thêm một tệp trụ cột mới, p8000.sls bên trong /srv/pillar như được hiển thị trong khối mã bên dưới.

proxy:
   proxytype: rest_sample
   url: http://<your ip address>:8000
  • Khởi động Salt-proxy ở chế độ gỡ lỗi bằng lệnh sau.

salt-proxy --proxyid = p8000 -l debug
  • Tương tự như Salt-minion, chấp nhận salt-proxy key như hình bên dưới.

salt-key -y -a p8000

The following keys are going to be accepted:
Unaccepted Keys:
p8000
Key for minion p8000 accepted.

Chạy muối

Bây giờ, chạy salt ra lệnh và gọi ping.test chức năng như hình dưới đây.

salt p8000 test.ping

Chúng tôi có thể chạy bất kỳ chức năng nào được hỗ trợ bởi dịch vụ web REST bằng cách sử dụng salt, tương tự như salt-minion.

Ví dụ, thông tin về hạt có thể được lấy bằng cách sử dụng lệnh sau.

salt p8000 grains.items