āĻāĻŽāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻ¯ā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯āĻžāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻžāĻ āĻāĻ°ā§āĻā§āĻ¨
āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻāĻāĻŋ "āĻ āĻ˛ā§āĻāĻŋāĻ āĻāĻāĻ¨āĻž" āĻāĻā§āĻā§āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻāĻžāĻāĻ¯āĻŧāĻž R80 āĻ¸ā§āĻ¯ā§āĻ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°, āĻ¯āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸ā§āĻāĻŋāĻāĻ¸, āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨, āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻ¸ā§āĻ¯ā§āĻ āĻāĻ¨ā§āĻŽā§āĻā§āĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻāĻ¨ āĻ¤ā§āĻŽāĻŋ āĻĒāĻžāĻ°:
- āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ;
- āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¯ā§āĻ āĻŦāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž;
- āĻŦā§āĻ˛ā§āĻĄ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ/āĻ āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨;
- āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻ¨;
- āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨;
- āĻāĻŦāĻ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§
āĻ¸āĻ¤ā§āĻ¯āĻŋ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻāĻŋ, āĻāĻ āĻāĻŦāĻ° āĻšāĻžāĻŦāĻ°ā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻā§āĻāĻžāĻŦā§ āĻā§āĻ˛ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻāĻŋ āĻ¨āĻžāĨ¤ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻāĻā§āĻˇā§āĻĒā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŦ āĻāĻŋāĻāĻžāĻŦā§ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦāĨ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸.
āĻāĻŽāĻŋ āĻāĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻ°āĻŋāĻāĻžāĻ°ā§āĻā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¯ā§ API āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻžāĻĄāĻŧāĻž āĻā§āĻāĻāĻ¯āĻŧā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻāĻāĻ¨āĻ āĻ āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§ āĻā§ āĻāĻ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨?
- āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻ¯āĻžāĻ°āĻž āĻ°ā§āĻāĻŋāĻ¨ āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻžāĻāĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻšāĻ āĻŦāĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨;
- āĻ¯ā§āĻ¸āĻŦ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋ āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¯āĻŧ (āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ, āĻāĻŋāĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ);
- āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻāĻ° āĻ¯āĻžāĻ°āĻž āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻŽāĻžāĻ¨āĻ¸āĻŽā§āĻŽāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻŦāĻž āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ-āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒāĻŖā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻāĻŋāĻŽ
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻ¸ā§āĻ¨ āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻāĻŋāĻŽ āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻŋ:
āĻ¯āĻĨāĻžāĻ°ā§āĻ¤āĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻāĻāĻ¯āĻŧā§ āĻāĻā§ (SG), āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° (āĻā§āĻĻā§āĻŦāĻžāĻ°ā§āĻ¤āĻž) āĻāĻŦāĻ āĻ
ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨ āĻāĻ¨āĻ¸ā§āĻ˛ (āĻ¸ā§āĻŽāĻžāĻ°ā§āĻāĻāĻ¨āĻ¸ā§āĻ˛) āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻā§āĻāĻāĻ¯āĻŧā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
āĻ¸ā§āĻā§āĻ˛ā§. āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ
ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ°ā§āĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ°ā§ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻāĻāĻ¨āĻ¸ā§āĻ˛, āĻ¯āĻžāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻŋ (āĻā§āĻĻā§āĻŦāĻžāĻ°ā§āĻ¤āĻž) āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻ¸āĻāĻŽāĻāĻ¸ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¨ā§āĻ¤āĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨) āĻā§āĻāĻāĻ¯āĻŧā§ (SG).
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž API, āĻāĻŽāĻ°āĻž āĻŽā§āĻ˛āĻ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ (āĻ¸ā§āĻŽāĻžāĻ°ā§āĻāĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨) āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ API āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ (āĻāĻ¸āĻāĻŽāĻāĻ¸)āĨ¤
API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧ
API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻžāĻ°āĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§:
1) mgmt_cli āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻĻāĻžāĻšāĻ°āĻŖ - # mgmt_cli āĻšā§āĻ¸ā§āĻā§āĻ° āĻ¨āĻžāĻŽ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ host1 ip-address 192.168.2.100
āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° (SMS) āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻĨā§āĻā§ āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽāĻŋ āĻŽāĻ¨ā§ āĻāĻ°āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° - āĻšā§āĻ¸ā§āĻ 1 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 + āĻļā§āĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻŦāĻ āĻ°ā§āĻāĻŋāĻ¨ āĻāĻžāĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯;
- āĻŦāĻŋāĻļā§āĻ°āĻžāĻŽ āĻāĻĒāĻŋāĻāĻ āĻ āĻā§āĻŽā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
API āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, 4GB-āĻāĻ° āĻŦā§āĻļāĻŋ RAM āĻāĻŦāĻ 8GB-āĻāĻ° āĻŦā§āĻļāĻŋ RAM āĻ¸āĻš āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻš āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻŽā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ¤ā§ API āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§ā§ˇ āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨: āĻāĻĒāĻŋāĻāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸
āĻ¯āĻĻāĻŋ āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§ āĻāĻĒāĻŋāĻāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻāĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸āĻšāĻ: āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻŦāĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ > āĻŦā§āĻ˛ā§āĻĄ > āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž API > āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¸ā§āĻāĻŋāĻāĻ¸
āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻ¨ (āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻž) āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ āĻāĻĒāĻŋāĻāĻ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨.
āĻāĻ¯āĻŧā§āĻŦ āĻ āĻ¨ā§āĻ°ā§āĻ§ + āĻĒāĻžāĻāĻĨāĻ¨
API āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¯āĻŧā§āĻŦ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻŦāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§, JSON. āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ āĻ¨ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ āĻāĻļ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤:
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 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻŋāĻāĻžāĻļ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ
āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ + āĻāĻ¤ā§āĻ¤āĻ°āĻ¯ā§āĻā§āĻ¯
āĻāĻŽāĻŋ āĻ¯ā§ āĻāĻā§ āĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ Ansible
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻāĻžāĻ¨ā§āĻ āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ API āĻāĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§āĻāĻ¨āĻž āĻļā§āĻˇ āĻāĻ°āĻŦāĨ¤ āĻāĻŽāĻžāĻ° āĻŽāĻ¤ā§, āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻāĻŋ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ āĻĒā§āĻ°āĻ¤ā§āĻā§āĻˇāĻŋāĻ¤ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻŋāĻ˛āĨ¤ API-āĻāĻ° āĻāĻ¤ā§āĻĨāĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻāĻ° āĻāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯āĻ āĻā§āĻŦ āĻŦāĻŋāĻ¸ā§āĻ¤ā§āĻ¤ āĻ¸ā§āĻ¯ā§āĻ āĻā§āĻ˛ā§ āĻĻā§āĻ¯āĻŧ āĻ¯āĻžāĻ°āĻž āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒāĻŖā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ āĻ°ā§āĻā§āĻ¸ā§āĻā§āĻ°ā§āĻļāĻ¨, āĻ āĻā§āĻŽā§āĻļāĻ¨, SIEM āĻĢāĻŋāĻĄāĻŦā§āĻ¯āĻžāĻ... āĻ¸āĻŦāĻ āĻāĻāĻ¨ āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻĒāĻŋāĻāĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ°ā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§
PSS āĻā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸ā§āĻ āĻāĻĒ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ°āĻŋāĻĒā§ āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ API āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻā§āĻ¨?
-
70,6%āĻšā§āĻ¯āĻžāĻ 12
-
23,5%No4
-
5,9%āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ 1 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§
17 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĻ¨āĨ¤ 3 āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻŦāĻŋāĻ°āĻ¤ āĻāĻŋāĻ˛ā§āĻ¨āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com