Chương này phác thảo việc gửi các yêu cầu API tới Vệ tinh Red Hat bằng curl, Ruby và Python, đồng thời cung cấp các ví dụ
4. 1. Yêu cầu API với curl
Phần này phác thảo cách sử dụng
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}3 với API vệ tinh để thực hiện các tác vụ khác nhau
Red Hat Satellite yêu cầu sử dụng HTTPS và theo mặc định là chứng chỉ để nhận dạng máy chủ. Nếu bạn chưa thêm chứng chỉ Máy chủ vệ tinh như được mô tả trong Phần 3. 1, “Tổng quan về xác thực SSL”, thì bạn có thể sử dụng tùy chọn
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}4 để bỏ qua kiểm tra chứng chỉ
Để xác thực người dùng, bạn có thể sử dụng tùy chọn
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}5 để cung cấp thông tin đăng nhập của người dùng Vệ tinh ở dạng
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}6 hoặc, nếu bạn không bao gồm mật khẩu, lệnh sẽ nhắc bạn nhập mật khẩu. Để giảm rủi ro bảo mật, không bao gồm mật khẩu như một phần của lệnh, vì sau đó mật khẩu sẽ trở thành một phần lịch sử trình bao của bạn. Các ví dụ trong phần này chỉ bao gồm mật khẩu vì mục đích đơn giản
Xin lưu ý rằng nếu bạn sử dụng tùy chọn
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}7, thì
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}3 sẽ không hiển thị đồng hồ đo tiến độ hoặc bất kỳ thông báo lỗi nào
Các ví dụ trong chương này sử dụng mô-đun Python
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}9 để định dạng đầu ra
4. 1. 1. Truyền dữ liệu JSON cho yêu cầu API
Bạn có thể truyền dữ liệu đến Máy chủ vệ tinh bằng yêu cầu API. Dữ liệu phải ở định dạng JSON. Khi chỉ định dữ liệu JSON bằng tùy chọn
--data @file.json
0, bạn phải đặt các tiêu đề HTTP sau bằng tùy chọn --data @file.json
1--header "Accept:application/json,version=2" \ --header "Content-Type:application/json"
Sử dụng một trong các tùy chọn sau để bao gồm dữ liệu với tùy chọn
--data @file.json
0Dữ liệu được định dạng JSON được trích dẫn được đặt trong dấu ngoặc nhọn
--data @file.json
3. Khi chuyển một giá trị cho tham số kiểu JSON, bạn phải thoát khỏi dấu ngoặc kép--data @file.json
4 bằng dấu gạch chéo ngược--data @file.json
5. Ví dụ: trong dấu ngoặc nhọn, bạn phải định dạng--data @file.json
6 là--data @file.json
7--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}
Dữ liệu định dạng JSON không được trích dẫn được đính kèm trong một tệp và được chỉ định bởi ký hiệu
--data @file.json
8 và tên tệp. Ví dụ--data @file.json
Sử dụng các tệp bên ngoài cho dữ liệu được định dạng JSON có những ưu điểm sau
- Bạn có thể sử dụng trình soạn thảo văn bản yêu thích của mình
- Bạn có thể sử dụng trình kiểm tra cú pháp để tìm và tránh lỗi
- Bạn có thể sử dụng các công cụ để kiểm tra tính hợp lệ của dữ liệu JSON hoặc định dạng lại nó
Xác thực tệp JSON
Sử dụng công cụ
--data @file.json
9 để kiểm tra tính hợp lệ của tệp JSON--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}0
4. 1. 2. Truy xuất danh sách tài nguyên
Phần này trình bày cách sử dụng
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}3 với API Vệ tinh 6 để yêu cầu thông tin từ quá trình triển khai Vệ tinh của bạn. Những ví dụ này bao gồm cả yêu cầu và phản hồi. Mong đợi các kết quả khác nhau cho mỗi lần triển khai
Liệt kê người dùng
Ví dụ này là một yêu cầu cơ bản trả về danh sách tài nguyên Vệ tinh, người dùng Vệ tinh trong trường hợp này. Những yêu cầu như vậy trả về một danh sách dữ liệu được bao bọc trong siêu dữ liệu, trong khi các loại yêu cầu khác chỉ trả về đối tượng thực tế
yêu cầu ví dụ
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}2
phản hồi ví dụ
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}3
4. 1. 3. Tạo và sửa đổi tài nguyên
Phần này trình bày cách sử dụng
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}3 với API Vệ tinh 6 để thao tác tài nguyên trên Máy chủ vệ tinh. Các lệnh gọi API này yêu cầu bạn chuyển dữ liệu ở định dạng
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}02 bằng lệnh gọi API. Để biết thêm thông tin, hãy xem Phần 4. 1. 1, “Truyền dữ liệu JSON tới yêu cầu API”
Tạo người dùng
Ví dụ này tạo một người dùng sử dụng tùy chọn
--data @file.json
0 để cung cấp thông tin cần thiếtyêu cầu ví dụ
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}7
Sửa đổi người dùng
Ví dụ này sửa đổi tên và thông tin đăng nhập của
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}04 đã được tạo trong Tạo người dùng
yêu cầu ví dụ
--date {"id":44, "smart_class_parameter":{"override":"true", "parameter_type":"json", "default_value":"{\"GRUB_CMDLINE_LINUX\": {\"audit\":\"1\",\"crashkernel\":\"true\"}}"}}9
4. 2. Yêu cầu API với Ruby
Phần này phác thảo cách sử dụng Ruby với API vệ tinh để thực hiện các tác vụ khác nhau
Quan trọng
Đây là những tập lệnh và lệnh mẫu. Đảm bảo bạn xem xét cẩn thận các tập lệnh này trước khi sử dụng và thay thế bất kỳ biến, tên người dùng, mật khẩu và thông tin nào khác cho phù hợp với việc triển khai của riêng bạn
4. 2. 1. Tạo đối tượng bằng Ruby
Tập lệnh này kết nối với API vệ tinh Red Hat 6 và tạo một tổ chức, sau đó tạo ba môi trường trong tổ chức. Nếu tổ chức đã tồn tại, tập lệnh sẽ sử dụng tổ chức đó. Nếu bất kỳ môi trường nào đã tồn tại trong tổ chức, tập lệnh sẽ phát sinh lỗi và thoát