เจฎเฉเจจเฉเฉฐ เจฏเจเฉเจจ เจนเฉ เจเจฟ เจนเจฐ เจเฉเจ เจเจฟเจธเจจเฉ เจเจฆเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเฉเจคเจพ เจนเฉ
เจเฉฑเจ "เจเจฎเจคเจเจพเจฐ" เจฎเฉเจเจพเจฌเจฒเจคเจจ เจนเจพเจฒ เจนเฉ เจตเจฟเฉฑเจ เจนเฉเจเจ เจนเฉ. เจฆเฉ เจจเจตเฉเจ เจธเฉฐเจธเจเจฐเจฃ เจฆเฉ เจเจพเจฐเฉ เจนเฉเจฃ เจฆเฉ เจจเจพเจฒ Gaia R80 เจฎเฉเจเฉ เจฆเจพ เจเจฒเจพเจจ เจเฉเจคเจพ เจเจฟเจ เจธเฉ API เจตเจฐเจคเฉเจ, เจเฉ เจธเจตเฉเจเจพเจฒเจฟเจค เจธเฉเจเจฟเฉฐเจเจพเจ, เจชเฉเจฐเจธเจผเจพเจธเจจ, เจจเจฟเจเจฐเจพเจจเฉ เจเจฆเจฟ เจฒเจ เจตเจฟเจเจชเจ เจฎเฉเจเฉ เจเฉเจฒเฉเจนเจฆเจพ เจนเฉเฅค เจนเฉเจฃ เจคเฉเจธเฉเจ เจเจน เจเจฐ เจธเจเจฆเฉ เจนเฉ:
- เจตเจธเจคเฉเจเจ เจฌเจฃเจพเจเจฃเจพ;
- เจชเจนเฉเฉฐเจ เจธเฉเจเฉเจเจ เจจเฉเฉฐ เจเฉเฉเฉ เจเจพเจ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเฉ;
- เจฌเจฒเฉเจก เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ/เจ เจฏเฉเจ เจเจฐเฉ;
- เจจเฉเฉฑเจเจตเจฐเจ เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ;
- เจจเฉเจคเฉเจเจ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ;
- เจ เจคเฉ เจนเฉเจฐ เจฌเจนเฉเจค เจเฉเจ.
เจเจฎเจพเจจเจฆเจพเจฐ เจนเฉเจฃ เจฒเจ, เจฎเฉเจจเฉเฉฐ เจธเจฎเจ เจจเจนเฉเจ เจเจเจเจฆเฉ เจเจฟ เจเจน เจเจผเจฌเจฐ เจนเจพเจฌเจฐ เจฆเฉเจเจฐเจพ เจเจฟเจตเฉเจ เจฒเฉฐเจเฉ. เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจ
เจธเฉเจ เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ เจตเจฐเจฃเจจ เจเจฐเจพเจเจเฉ เจเจฟ API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฟเจตเฉเจ เจเจฐเจจเฉ เจนเฉ เจ
เจคเฉ เจเจ เจตเจฟเจนเจพเจฐเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจพเจเจเฉเฅค เจธเจเฉเจฐเจฟเจชเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉเฉฑเจเจชเฉเจเจเฉฐเจ เจธเฉเจเจฟเฉฐเจเจพเจ.
เจฎเฉเจ เจคเฉเจฐเฉฐเจค เจเฉฑเจ เจฐเจฟเจเจผเจฐเจตเฉเจธเจผเจจ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพ เจเจฟ API เจฆเฉ เจตเจฐเจคเฉเจ เจธเจฟเจฐเจซเจผ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฐเจตเจฐ เจฒเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจเจน. เจฎเฉเจจเฉเจเจฎเฉเจเจ เจธเจฐเจตเจฐ เจคเฉเจ เจฌเจฟเจจเจพเจ เจเฉเจเจตเฉ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจเจพ เจ เจเฉ เจตเฉ เจ เจธเฉฐเจญเจต เจนเฉเฅค
เจธเจฟเจงเจพเจเจค เจตเจฟเฉฑเจ เจเจธ API เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจฃ เจเจฐ เจธเจเจฆเจพ เจนเฉ?
- เจธเจฟเจธเจเจฎ เจชเฉเจฐเจธเจผเจพเจธเจ เจเฉ เจฐเฉเจเฉเจจ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจธเจฐเจฒ เจเจพเจ เจธเจตเฉเจเจพเจฒเจค เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจจ;
- เจเจน เจเฉฐเจชเจจเฉเจเจ เจเฉ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ เจจเฉเฉฐ เจนเฉเจฐ เจนเฉฑเจฒเจพเจ (เจตเจฐเจเฉเจ เจฒเจพเจเจเฉเจธเจผเจจ เจธเจฟเจธเจเจฎ, เจเจฟเจเจ เจธเจฟเจธเจเจฎ, เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจฎเฉเจจเฉเจเจฎเฉเจเจ เจธเจฟเจธเจเจฎ, เจเจฆเจฟ) เจจเจพเจฒ เจเฉเฉเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉเจเจ เจนเจจ;
- เจธเจฟเจธเจเจฎ เจเฉฐเจเฉเจเฉเจฐเฉเจเจฐ เจเฉ เจธเฉเจเจฟเฉฐเจเจพเจ เจจเฉเฉฐ เจฎเจฟเจเจฐเฉ เจฌเจฃเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจจ เจเจพเจ เจตเจพเจงเฉ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ-เจธเจฌเฉฐเจงเจค เจเจคเจชเจพเจฆ เจฌเจฃเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจจเฅค
เจเจฎ เจธเจเฉเจฎ
เจเจธ เจฒเจ, เจเจ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจฎ เจธเจเฉเจฎ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเฉเจ:
เจเจฎ เจตเจพเจเจ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจเฉเจเจตเฉ เจนเฉ (SG), เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฐเจตเจฐ (เจเจธเจเจฎเจเจธ) เจ
เจคเฉ เจเจกเจฎเจฟเจจ เจเฉฐเจธเฉเจฒ (เจธเจฎเจพเจฐเจ เจเฉฐเจธเฉเจฒ). เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจเจฎ เจเฉเจเจตเฉ เจธเฉฐเจฐเจเจจเจพ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ:
เจเจน. เจชเจนเจฟเจฒเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจชเฉเจฐเจฌเฉฐเจงเจ เจฆเฉ เจเฉฐเจชเจฟเจเจเจฐ 'เจคเฉ เจเจฒเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ เจธเจฎเจพเจฐเจ เจเฉฐเจธเฉเจฒ, เจเจฟเจธ เจจเจพเจฒ เจ
เจธเฉเจ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฐเจตเจฐ เจจเจพเจฒ เจเฉเฉเจฆเฉ เจนเจพเจ (เจเจธเจเจฎเจเจธ). เจธเฉเจฐเฉฑเจเจฟเจ เจธเฉเจเจฟเฉฐเจเจพเจ SMS 'เจคเฉ เจฌเจฃเจพเจเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ, เจ
เจคเฉ เจเฉเจตเจฒ เจคเจฆ เจนเฉ เจฒเจพเจเฉ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ (เจจเฉเจคเฉ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ) เจเฉเจเจตเฉ เจคเฉฑเจ (SG).
เจตเจฐเจคเจฃ เจตเฉเจฒเฉ เจชเฉเจฐเจฌเฉฐเจงเจจ API, เจ เจธเฉเจ เจ เจธเจฒ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเฉ เจชเฉเจเจเฉฐเจ เจจเฉเฉฐ เจเฉฑเจก เจธเจเจฆเฉ เจนเจพเจ (เจธเจฎเจพเจฐเจ เจเฉฐเจธเฉเจฒ เจฒเจพเจเจ เจเจฐเฉ) เจ เจคเฉ เจตเจฐเจค เจธเจเจฆเฉ เจนเจพเจ API เจเจฎเจพเจเจกเจพเจ เจธเจฟเฉฑเจงเฉ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฐเจตเจฐ (SMS) เจจเฉเฉฐ.
API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจคเจฐเฉเจเฉ
API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจเจฐเจจ เจฆเฉ เจเจพเจฐ เจฎเฉเฉฑเจ เจคเจฐเฉเจเฉ เจนเจจ:
1) mgmt_cli เจเจชเจฏเฉเจเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ
เจเจฆเจพเจนเจฐเจจ - # mgmt_cli เจนเฉเจธเจ เจจเจพเจฎ host1 ip-address 192.168.2.100 เจธเจผเจพเจฎเจฒ เจเจฐเฉ
เจเจน เจเจฎเจพเจเจก เจฎเฉเจจเฉเจเจฎเฉเจเจ เจธเจฐเจตเจฐ (SMS) เจเจฎเจพเจเจก เจฒเจพเจเจจ เจคเฉเจ เจเจฒเจพเจ เจเจพเจเจฆเฉ เจนเฉเฅค เจฎเฉเจจเฉเฉฐ เจฒเจเจฆเจพ เจนเฉ เจเจฟ เจเจฎเจพเจเจก เจฆเจพ เจธเฉฐเจเฉเจเจธ เจธเจชเจธเจผเจ เจนเฉ - host1 เจเจกเจฐเฉเฉฑเจธ 192.168.2.100 เจจเจพเจฒ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉเฅค
2) เจเจฒเจฟเจธเจผ เจฆเฉเจเจฐเจพ API เจเจฎเจพเจเจกเจพเจ เจฆเจฐเจ เจเจฐเฉ (เจฎเจพเจนเจฐ เจฎเฉเจก เจตเจฟเฉฑเจ)
เจ เจธเจฒ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจฌเฉฑเจธ เจเจฎเจพเจเจก เจฒเจพเจเจจ เจตเจฟเฉฑเจ เจฒเจพเจเจเจจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ (mgmt เจฒเจพเจเจเจจ) เจเจพเจคเฉ เจฆเฉ เจ เจงเฉเจจ เจเฉ SmartConsole (เจเจพเจ เจฐเฉเจ เจเจพเจคเฉ) เจฐเจพเจนเฉเจ เจเจจเฉเจเจ เจเจฐเจจ เจตเฉเจฒเฉ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจซเจฟเจฐ เจคเฉเจธเฉเจ เจฆเจพเจเจฒ เจนเฉ เจธเจเจฆเฉ เจนเฉ API เจเจฎเจพเจเจกเจพเจ (เจเจธ เจเฉเจธ เจตเจฟเฉฑเจ เจนเจฐเฉเจ เจเจฎเจพเจเจก เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเจชเจฏเฉเจเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเฉเจ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉ mgmt_cli). เจคเฉเจธเฉเจ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจคเจฟเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเฉ BASH เจธเจเฉเจฐเจฟเจชเจเจพเจ. เจเฉฑเจ เจธเจเฉเจฐเจฟเจชเจ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจเฉ เจนเฉเจธเจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ:
เจฌเฉเจธเจผ เจธเจเฉเจฐเจฟเจชเจ
#!/bin/bash
main() {
clear
#LOGIN (don't ask for username and password, user is already logged in to Management server as 'root' user)
mgmt_cli login --root true > id_add_host.txt
on_error_print_and_exit "Error: Failed to login, check that the server is up and running (run 'api status')"
#READ HOST NAME
printf "Enter host name:n"
read -e host_name
on_empty_input_print_and_exit "$host_name" "Error: The host's name cannot be empty."
#READ IP ADDRESS
printf "nEnter host IP address:n"
read -e ip
on_empty_input_print_and_exit "$ip" "Error: The host's IP address cannot be empty."
#CREATE HOST
printf "Creating new host: $host_name with IP address: $ipn"
new_host_response=$(mgmt_cli add host name $host_name ip-address $ip -s id_add_host.txt 2> /dev/null)
on_error_print_and_exit "Error: Failed to create host object. n$new_host_response"
#PUBLISH THE CHANGES
printf "nPublishing the changesn"
mgmt_cli publish --root true -s id_add_host.txt &> /dev/null
on_error_print_and_exit "Error: Failed to publish the changes."
#LOGOUT
logout
printf "Done.n"
}
logout(){
mgmt_cli logout --root true -s id_add_host.txt &> /dev/null
}
on_error_print_and_exit(){
if [ $? -ne 0 ]; then
handle_error "$1"
fi
}
handle_error(){
printf "n$1n" #print error message
mgmt_cli discard --root true -s id_add_host.txt &> /dev/null
logout
exit 1
}
on_empty_input_print_and_exit(){
if [ -z "$1" ]; then
printf "$2n" #print error message
logout
exit 0
fi
}
# Script starts here. Call function "main".
main
เจเฉ เจคเฉเจธเฉเจ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจตเฉเจกเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ:
3) CLI เจตเจฟเฉฐเจกเฉ เจเฉเจฒเฉเจน เจเฉ SmartConsole เจฐเจพเจนเฉเจ
เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเจฐเจซเจผ เจตเจฟเฉฐเจกเฉ เจจเฉเฉฐ เจเฉเจฒเฉเจนเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ CLI เจธเจฟเฉฑเจงเฉ เจคเฉเจ เจธเจฎเจพเจฐเจ เจเฉฐเจธเฉเจฒ, เจเจฟเจตเฉเจ เจเจฟ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจคเจธเจตเฉเจฐ เจตเจฟเฉฑเจ เจฆเจฟเจเจพเจเจ เจเจฟเจ เจนเฉเฅค
เจเจธ เจตเจฟเฉฐเจกเฉ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจคเฉเจฐเฉฐเจค API เจเจฎเจพเจเจกเจพเจ เจฆเจพเจเจฒ เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
4) เจตเฉเฉฑเจฌ เจธเฉเจตเจพเจตเจพเจเฅค HTTPS เจชเฉเจธเจ เจฌเฉเจจเจคเฉ (REST API) เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ
เจธเจพเจกเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจเจน เจธเจญ เจคเฉเจ เจตเจงเฉเจ เจขเฉฐเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจนเฉ, เจเจฟเจเจเจเจฟ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจชเฉเจฐเฉเจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ "เจฌเจฟเจฒเจก" เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฐเจตเจฐ เจชเฉเจฐเจฌเฉฐเจงเจจ (เจเฉเจเฉเจฒเฉเจเฉ เจฒเจ เจ เจซเจธเฉเจธ เจนเฉ)เฅค เจนเฉเจ เจพเจ เจ เจธเฉเจ เจเจธ เจตเจฟเจงเฉ เจจเฉเฉฐ เจฅเฉเฉเจพ เจนเฉเจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจ เจตเฉเจเจพเจเจเฉ.
เจธเฉฐเจเฉเจช เจเจฐเจจ เจฒเจ:
- API + cli เจธเจฟเจธเจเฉ เจฆเฉ เจเจฆเฉ เจฒเฉเจเจพเจ เจฒเจ เจตเจงเฉเจฐเฉ เจขเฉเจเจตเจพเจ;
- API + เจธเจผเฉเฉฑเจฒ เจธเจเฉเจฐเจฟเจชเจเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจ เจคเฉ เจฐเฉเจเฉเจจ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ;
- REST API เจเจเฉเจฎเฉเจธเจผเจจ เจฒเจ.
API เจจเฉเฉฐ เจธเจฎเจฐเฉฑเจฅ เจเจฐเจจเจพ
เจชเฉเจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจคเฉเจฐ 'เจคเฉ, API 4GB เจคเฉเจ เจตเฉฑเจง RAM เจ เจคเฉ 8GB เจคเฉเจ เจตเฉฑเจง RAM เจฆเฉ เจจเจพเจฒ เจธเจเฉเจเจกเจ เจฒเฉเจจ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจเจพเจ เจตเจพเจฒเฉ เจชเฉเจฐเจฌเฉฐเจงเจจ เจธเจฐเจตเจฐเจพเจ 'เจคเฉ เจธเจฎเจฐเฉฑเจฅ เจนเฉเฅค เจคเฉเจธเฉเจ เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเจฅเจฟเจคเฉ เจฆเฉ เจเจพเจเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ: api เจธเจฅเจฟเจคเฉ
เจเฉ เจเจน เจชเจคเจพ เจเจฒเจฆเจพ เจนเฉ เจเจฟ เจเจชเฉเจเจ เจ เจธเจฎเจฐเฉฑเจฅ เจนเฉ, เจคเจพเจ เจเจธเจจเฉเฉฐ SmartConsole เจฆเฉเจเจฐเจพ เจธเจฎเจฐเฉฑเจฅ เจเจฐเจจเจพ เจเจพเจซเจผเฉ เจเจธเจพเจจ เจนเฉ: เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจเจฐเฉ เจ เจคเฉ เจธเฉเจเจฟเฉฐเจเจพเจ > เจฌเจฒเฉเจก > เจชเฉเจฐเจฌเฉฐเจงเจจ API > เจเฉฑเจจเจค เจธเฉเจเจฟเฉฐเจเจพเจ
เจซเจฟเจฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเฉ (เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเฉ) เจฌเจฆเจฒเฉ เจ
เจคเฉ เจเจฎเจพเจเจก เจเจฒเจพเจ api เจฎเฉเฉ เจเจพเจฒเฉ เจเจฐเฉ.
เจตเฉเฉฑเจฌ เจฌเฉเจจเจคเฉเจเจ + เจชเจพเจเจฅเจจ
API เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ, เจคเฉเจธเฉเจ เจตเฉเฉฑเจฌ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ เจชเจพเจเจฅเจจ เจ เจคเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฌเฉเจจเจคเฉเจเจ, เจเฉเจธเจจ. เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเฉฑเจ เจตเฉเฉฑเจฌ เจฌเฉเจจเจคเฉ เจฆเฉ เจฌเจฃเจคเจฐ เจตเจฟเฉฑเจ เจคเจฟเฉฐเจจ เจญเจพเจ เจนเฉเฉฐเจฆเฉ เจนเจจ:
1) เจชเจคเจพ
(https://<managemenet server>:<port>/web_api/<command>)
2) HTTP เจธเจฟเจฐเจฒเฉเจ
content-Type: application/json
x-chkp-sid: <session ID token as returned by the login command>
3) เจชเฉเจฒเฉเจก เจฆเฉ เจฌเฉเจจเจคเฉ เจเจฐเฉ
JSON เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉเจเจธเจ เจเจฟเจธ เจตเจฟเฉฑเจ เจตเฉฑเจ-เจตเฉฑเจ เจฎเจพเจชเจฆเฉฐเจก เจธเจผเจพเจฎเจฒ เจนเจจ
เจตเฉฑเจ-เจตเฉฑเจ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจ เจฒเจ เจเจฆเจพเจนเจฐเจจ:
def api_call(ip_addr, port, command, json_payload, sid):
url = 'https://' + ip_addr + ':' + str(port) + '/web_api/' + command
if sid == โโ:
request_headers = {'Content-Type' : 'application/json'}
else:
request_headers = {'Content-Type' : 'application/json', 'X-chkp-sid' : sid}
r = requests.post(url,data=json.dumps(json_payload), headers=request_headers,verify=False)
return r.json()
'xxx.xxx.xxx.xxx' -> Ip address GAIA
เจเฉฑเจฅเฉ เจเฉเจ เจเจพเจธ เจเฉฐเจฎ เจนเจจ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจ เจตเฉเจฒเฉ เจ เจเจธเจฐ เจเจเจเจฆเฉ เจนเจจเฅค
1) เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจ เจคเฉ เจฒเฉเจเจเจเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจเจฆเจพเจนเจฐเจจ:
เจธเจเฉเจฐเจฟเจชเจ
payload = {โuserโ: โyour_userโ, โpasswordโ : โyour_passwordโ}
response = api_call('xxx.xxx.xxx.xxx', 443, 'login',payload, '')
return response["sid"]
response = api_call('xxx.xxx.xxx.xxx', 443,'logout', {} ,sid)
return response["message"]
2) เจฌเจฒเฉเจกเจพเจ เจจเฉเฉฐ เจเจพเจฒเฉ เจเจฐเจจเจพ เจ เจคเฉ เจจเฉเฉฑเจเจตเจฐเจ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ:
เจธเจเฉเจฐเจฟเจชเจ
new_gateway_data = {'name':'CPGleb','anti-bot':True,'anti-virus' : True,'application-control':True,'ips':True,'url-filtering':True,'interfaces':
[{'name':"eth0",'topology':'external','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"},
{'name':"eth1",'topology':'internal','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"}]}
new_gateway_result = api_call('xxx.xxx.xxx.xxx', 443,'set-simple-gateway', new_gateway_data ,sid)
print(json.dumps(new_gateway_result))
3) เจซเจพเจเจฐเจตเจพเจฒ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจฌเจฆเจฒเจฃเจพ:
เจธเจเฉเจฐเจฟเจชเจ
new_access_data={'name':'Cleanup rule','layer':'Network','action':'Accept'}
new_access_result = api_call('xxx.xxx.xxx.xxx', 443,'set-access-rule', new_access_data ,sid)
print(json.dumps(new_access_result))
4) เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเฉเจ เจฐ เจจเฉเฉฐ เจเฉเฉเจจเจพ:
เจธเจเฉเจฐเจฟเจชเจ
add_access_layer_application={ 'name' : 'application123',"applications-and-url-filtering" : True,"firewall" : False}
add_access_layer_application_result = api_call('xxx.xxx.xxx.xxx', 443,'add-access-layer', add_access_layer_application ,sid)
print(json.dumps(add_access_layer_application_result))
set_package_layer={"name" : "Standard","access":True,"access-layers" : {"add" : [ { "name" : "application123","position" :2}]} ,"installation-targets" : "CPGleb"}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package', set_package_layer ,sid)
print(json.dumps(set_package_layer_result))
5) เจจเฉเจคเฉ เจจเฉเฉฐ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเฉ เจ เจคเฉ เจธเฉเจ เจเจฐเฉ, เจเจฎเจพเจเจก เจฆเฉ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฆเฉ เจเจพเจเจ เจเจฐเฉ (เจเจพเจธเจ-เจเจเจกเฉ):
เจธเจเฉเจฐเจฟเจชเจ
publish_result = api_call('xxx.xxx.xxx.xxx', 443,"publish", {},sid)
print("publish result: " + json.dumps(publish_result))
new_policy = {'policy-package':'Standard','access':True,'targets':['CPGleb']}
new_policy_result = api_call('xxx.xxx.xxx.xxx', 443,'install-policy', new_policy ,sid)
print(json.dumps(new_policy_result)
task_id=(json.dumps(new_policy_result ["task-id"]))
len_str=len(task_id)
task_id=task_id[1:(len_str-1)]
show_task_id ={'task-id':(task_id)}
show_task=api_call('xxx.xxx.xxx.xxx',443,'show-task',show_task_id,sid)
print(json.dumps(show_task))
6) เจฎเฉเจเจผเจฌเจพเจจ เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
เจธเจเฉเจฐเจฟเจชเจ
new_host_data = {'name':'JohnDoePc', 'ip-address': '192.168.0.10'}
new_host_result = api_call('xxx.xxx.xxx.xxx', 443,'add-host', new_host_data ,sid)
print(json.dumps(new_host_result))
7) เจเฉฑเจ เจงเจฎเจเฉ เจฐเฉเจเจฅเจพเจฎ เจเฉเจคเจฐ เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
เจธเจเฉเจฐเจฟเจชเจ
set_package_layer={'name':'Standard','threat-prevention' :True,'installation-targets':'CPGleb'}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package',set_package_layer,sid)
print(json.dumps(set_package_layer_result))
8) เจธเฉเจธเจผเจจเจพเจ เจฆเฉ เจธเฉเจเฉ เจตเฉเจเฉ
เจธเจเฉเจฐเจฟเจชเจ
new_session_data = {'limit':'50', 'offset':'0','details-level' : 'standard'}
new_session_result = api_call('xxx.xxx.xxx.xxx', 443,'show-sessions', new_session_data ,sid)
print(json.dumps(new_session_result))
9) เจเฉฑเจ เจจเจตเจพเจ เจชเฉเจฐเฉเจซเจพเจเจฒ เจฌเจฃเจพเจ:
เจธเจเฉเจฐเจฟเจชเจ
add_threat_profile={'name':'Apeiron', "active-protections-performance-impact" : "low","active-protections-severity" : "low or above","confidence-level-medium" : "prevent",
"confidence-level-high" : "prevent", "threat-emulation" : True,"anti-virus" : True,"anti-bot" : True,"ips" : True,
"ips-settings" : { "newly-updated-protections" : "staging","exclude-protection-with-performance-impact" : True,"exclude-protection-with-performance-impact-mode" : "High or lower"},
"overrides" : [ {"protection" : "3Com Network Supervisor Directory Traversal","capture-packets" : True,"action" : "Prevent","track" : "Log"},
{"protection" : "7-Zip ARJ Archive Handling Buffer Overflow", "capture-packets" : True,"action" : "Prevent","track" : "Log"} ]}
add_threat_profile_result=api_call('xxx.xxx.xxx.xxx',443,'add-threat-profile',add_threat_profile,sid)
print(json.dumps(add_threat_profile_result))
10) IPS เจฆเจธเจคเจเจค เจฒเจ เจเจพเจฐเจตเจพเจ เจฌเจฆเจฒเฉ:
เจธเจเฉเจฐเจฟเจชเจ
set_threat_protection={
"name" : "3Com Network Supervisor Directory Traversal",
"overrides" : [{ "profile" : "Apeiron","action" : "Detect","track" : "Log","capture-packets" : True},
{ "profile" : "Apeiron", "action" : "Detect", "track" : "Log", "capture-packets" : False} ]}
set_threat_protection_result=api_call('xxx.xxx.xxx.xxx',443,'set-threat-protection',set_threat_protection,sid)
print(json.dumps(set_threat_protection_result))
11) เจเจชเจฃเฉ เจธเฉเจตเจพ เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
เจธเจเฉเจฐเจฟเจชเจ
add_service_udp={ "name" : "Dota2_udp", "port" : '27000-27030',
"keep-connections-open-after-policy-installation" : False,
"session-timeout" : 0, "match-for-any" : True,
"sync-connections-on-cluster" : True,
"aggressive-aging" : {"enable" : True, "timeout" : 360,"use-default-timeout" : False },
"accept-replies" : False}
add_service_udp_results=api_call('xxx.xxx.xxx.xxx',443,"add-service-udp",add_service_udp,sid)
print(json.dumps(add_service_udp_results))
12) เจเฉฑเจ เจธเจผเฉเจฐเฉเจฃเฉ, เจธเจพเจเจ เจเจพเจ เจธเจฎเฉเจน เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
เจธเจเฉเจฐเจฟเจชเจ
add_application_site_category={ "name" : "Valve","description" : "Valve Games"}
add_application_site_category_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-category",add_application_site_category,sid)
print(json.dumps(add_application_site_category_results))
add_application_site={ "name" : "Dota2", "primary-category" : "Valve", "description" : "Dotka",
"url-list" : [ "www.dota2.ru" ], "urls-defined-as-regular-expression" : False}
add_application_site_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site " ,
add_application_site , sid)
print(json.dumps(add_application_site_results))
add_application_site_group={"name" : "Games","members" : [ "Dota2"]}
add_application_site_group_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-group",add_application_site_group,sid)
print(json.dumps(add_application_site_group_results))
เจเจธ เจฆเฉ เจจเจพเจฒ, เจฆเฉ เจฎเจฆเจฆ เจจเจพเจฒ เจตเฉเฉฑเจฌ เจเจชเฉเจเจ เจคเฉเจธเฉเจ เจจเฉเฉฑเจเจตเจฐเจ, เจนเฉเจธเจ, เจชเจนเฉเฉฐเจ เจฐเฉเจฒ เจเจฆเจฟ เจจเฉเฉฐ เจเฉเฉ เจ
เจคเฉ เจนเจเจพ เจธเจเจฆเฉ เจนเฉเฅค เจฌเจฒเฉเจก เจจเฉเฉฐ เจ
เจจเฉเจเฉเจฒเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ เจเจเจเฉเจตเจพเจเจฐเจธ, เจเจเจเฉเจฌเฉเจ, เจเจเจชเฉเจเจธ, เจตเฉเจชเฉเจเจจ. เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจพเจเจธเฉเจเจธ เจธเจฅเจพเจชเจค เจเจฐเจจเจพ เจตเฉ เจธเฉฐเจญเจต เจนเฉ เจฐเจจ-เจธเจเฉเจฐเจฟเจชเจ. เจธเจพเจฐเฉเจเจ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ API เจเจฎเจพเจเจกเจพเจ เจเฉฑเจฅเฉ เจฒเฉฑเจญเฉเจเจ เจเจพ เจธเจเจฆเฉเจเจ เจนเจจ
เจชเฉเจเจเฉฐเจ API + เจชเฉเจธเจเจฎเฉเจจ เจฆเฉ เจเจพเจเจ เจเจฐเฉ
เจตเจฐเจคเจฃ เจฒเจ เจตเฉ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจชเฉเจเจเฉฐเจ เจตเฉเฉฑเจฌ API เจฆเฉ เจเจพเจเจ เจเจฐเฉ เจจเจพเจฒ เจเฉเฉ เจเฉ
เจเจธ เจธเจนเฉเจฒเจค เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจ
เจธเฉเจ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ API เจจเฉเฉฐ เจตเฉเฉฑเจฌ เจฌเฉเจจเจคเฉเจเจ เจคเจฟเจเจฐ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉเจตเจพเจเจเฉเฅค เจธเจพเจฐเฉเจเจ API เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจฏเจพเจฆ เจจเจพ เจฐเฉฑเจเจฃ เจฒเจ, เจ
เจเฉเจคเฉ เจธเฉฐเจเฉเจฐเจนเจฟ (เจเฉเจเจชเจฒเฉเจ) เจจเฉเฉฐ เจเจฏเจพเจค เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจธเจพเจฐเฉเจเจ เจฒเฉเฉเฉเจเจฆเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจนเจจ:
เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจเจน เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจเจจเจ เจนเฉ. เจคเฉเจธเฉเจ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจคเฉเจเจผเฉ เจจเจพเจฒ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจเจพ เจธเจผเฉเจฐเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ + เจเจตเจพเจฌเจฏเฉเจ
เจฎเฉเจ เจเจน เจตเฉ เจจเฉเจ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพ เจเจฟ เจเฉฑเจฅเฉ เจนเฉ Ansimate
เจธเจฟเฉฑเจเจพ
เจเจน เจเจน เจฅเจพเจ เจนเฉ เจเจฟเฉฑเจฅเฉ เจ เจธเฉเจ เจธเฉฐเจญเจต เจคเฉเจฐ 'เจคเฉ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ API เจฆเฉ เจธเจพเจกเฉ เจเฉเจเฉ เจธเจฎเฉเจเจฟเจ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจพเจเจเฉเฅค เจฎเฉเจฐเฉ เจฐเจพเจ เจตเจฟเฉฑเจ, เจเจน เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจฌเจนเฉเจค เจฒเฉฐเจฌเฉ เจธเจฎเฉเจ เจคเฉเจ เจเจกเฉเจเฉ เจเจ เจ เจคเฉ เจเจผเจฐเฉเจฐเฉ เจธเฉ. เจเจชเฉเจเจ เจฆเจพ เจเจญเจพเจฐ เจธเจฟเจธเจเจฎ เจชเฉเจฐเจธเจผเจพเจธเจเจพเจ เจ เจคเฉ เจธเจฟเจธเจเจฎ เจเฉฐเจเฉเจเจฐเฉเจเจฐเจพเจ เจฒเจ เจฌเจนเฉเจค เจตเจฟเจเจชเจ เจฎเฉเจเฉ เจเฉเจฒเฉเจนเจฆเจพ เจนเฉ เจเฉ เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ เจเจคเจชเจพเจฆเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจฆเฉ เจนเจจเฅค เจเจฐเจเฉเจธเจเฉเจฐเฉเจธเจผเจจ, เจเจเฉเจฎเฉเจธเจผเจจ, SIEM เจซเฉเจกเจฌเฉเจ... เจเจน เจธเจญ เจนเฉเจฃ เจธเฉฐเจญเจต เจนเฉเฅค
PS เจฌเจพเจฐเฉ เจนเฉเจฐ เจฒเฉเจ
PSS เจเฉเฉฑเจ เจชเฉเจเจเฉฐเจ เจธเจฅเจพเจชเจค เจเจฐเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจคเจเจจเฉเจเฉ เจธเจตเจพเจฒเจพเจ เจฒเจ, เจคเฉเจธเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ
เจธเจฟเจฐเจซเจผ เจฐเจเจฟเจธเจเจฐเจก เจเจชเจญเฉเจเจคเจพ เจนเฉ เจธเจฐเจตเฉเจเจฃ เจตเจฟเฉฑเจ เจนเจฟเฉฑเจธเจพ เจฒเฉ เจธเจเจฆเฉ เจนเจจเฅค
เจเฉ เจคเฉเจธเฉเจ API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจฏเฉเจเจจเจพ เจฌเจฃเจพ เจฐเจนเฉ เจนเฉ?
-
70,6%เจนเจพเจ12
-
23,5%เจจเฉฐ 4
-
5,9%เจชเจนเจฟเจฒเจพเจ เจนเฉ 1 เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ
17 เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉ เจตเฉเจ เจชเจพเจเฅค 3 เจเจชเจญเฉเจเจคเจพ เจชเจฐเจนเฉเจเจผ เจฐเจนเฉเฅค
เจธเจฐเฉเจค: www.habr.com