çããããã«ã¡ã¯ãRed Hat ã½ãªã¥ã¼ã·ã§ã³ã¢ã¼ããã¯ãã®å²¡éã§ãã 2023 å¹´ãæ®ãã¨ãããã¨å°ãã¨ãªãã¾ããããã¦ãä»åã¯ã注ç®ã®æ°æ©è½ããµãã¼ãããä»å¹´GAã¨ãªã£ã Ansible Automation Platform 2.4 ã«ã¤ãã¦ã2023 å¹´ã®ç· ããããã¨ãã¦æ¸ãã¦ããããã¨æãã¾ããããããã®ã試ãæ¹æ³ã«ã¤ãã¦ã¯ãå¹´æããã¾ããã¡ãã® Blog ã§ãç´¹ä»äºå®ã§ãã
Ansible Automatio Platform 2.4 (ä»¥ä¸ AAP2.4) ã®æ°æ©è½ãç´°ããã¨ãããä¸ããã¨ããããããã®ã§ããããªãã¨ãã£ã¦ã注ç®ã¯ã
ã»Event-Driven Ansible
ã»Ansible Lightspeed
ã®2ã¤ã§ããã§ã¯ããã®ããããã«ã¤ãã¦ã説æãã¾ãã
Event-Driven Ansible
AAP 2.4 ã§ã¯ãIT ã®éç¨ã§çºçããæ§ã ãªã¤ãã³ãã«å¯¾ãããªãã¬ã¼ã·ã§ã³ãèªååãããEvent-driven Ansible (ä»¥ä¸ EDA) ãæ°ãã«è¿½å ããã¾ãããAAP 2.3 ã¾ã§ã¯ãGUI ãµã¼ãã¹ãæä¾ããã³ã³ãã¼ãã³ãã¨ãã¦ãAnsible Automation Controllerï¼ä»¥ä¸ AACï¼ã¨ Private Automation Hub (PAH) ãæä¾ããã¦ãã¾ããããAAP 2.4 ã§ã¯ EDA Controller ã GUI ãæä¾ãã 3ã¤ç®ã®ã³ã³ãã¼ãã³ãã¨ãã¦è¿½å ããã¦ãã¾ããå¾æ¥ã® AAP ã§ã¯ãIT ã·ã¹ãã éç¨ã®éã®æ§ã ãªä½æ¥ã Playbook ã¨ãã¦å®ç¾©ããããã«ããããµã¼ãã¹åãããã¨ã§ä½æ¥å·¥æ°ã®å¤§å¹ ãªåæ¸ãå®ç¾ãã¾ããããããã« EDA ã追å ããããã¨ã«ãããIT éç¨ã®ç¾å ´ã§æ¥ã çºçãããæ§ã ãªã¤ãã³ããèªåçã«å¦çãããã®çµæã¨ãã¦ä¾ãã°ãAAC ã¨é£æºãã Playbook ã®å®è¡ãã§ããããã«ãªãã¾ããã¤ã¡ã¼ã¸ã¯ä»¥ä¸ã®éãã§ãã
EDA ã®åä½ã¯ãAAC ã¨ããä¼¼ã¦ãã¾ããAAC ã§ã¯ yaml å½¢å¼ã§æ¸ããã Playbook ãã¸ã§ããã³ãã¬ã¼ãçµç±ã§å®è¡ãã¾ãããEDA ã§ã¯åãã yaml å½¢å¼ã§æ¸ããã Rulebook ãå®è¡ãã¾ããPlaybook ã Rulebook ãåã yaml å½¢å¼ã§ããããPlaybook ã®ä½æã»ç·¨éã«æ £ããæ¹ã§ããã°ã»ã¨ãã©ãã¼ãã«ãªã Rulebook ã®ä½æãã§ããã®ã§ã¯ãªããã¨æãã¾ãã
Rulebook ã«ã¯ä»¥ä¸ã®å 容ãè¨è¼ããã¦ãããããããã EDA Controller ä¸ã§ã¢ã¯ãã£ãã¼ã·ã§ã³ï¼ã¤ãã³ããå¾ ã¡åããç¶æ ï¼ããã¦ãã¾ãã
ã»sourcesï¼ä½ãï¼
ãã¤ãã³ãã®æä¾å
ã«é¢ããæ
å ±
ã»rules
ãconditionï¼ã©ããªã£ããï¼
ããå®è¡æ¡ä»¶ (not equal, equal, and / or, defined ãªã©æè»ã«æå®å¯è½)
ãactionï¼ã©ãããï¼
EDA ã®åä½ã®ããªã¬ã¼ã¨ãªãã½ã¼ã¹ã«é¢ãã¦ã¯ããµã¼ããã¼ãã£è£½ã®ã½ããã¦ã§ã¢ã¨é£æºããå½¢ãã¨ãã¾ããä¾ãã°ãIBM社㮠InstanaãTurbonomicãZabbixãDynatraceãPaloalto ãªã© EDA ããµãã¼ãããã½ããã¦ã§ã¢ããçºç ²ãããã¤ãã³ããã½ã¼ã¹ã¨ãã¦å©ç¨ãããã¨ãã§ãã¾ããEDA ã source ããã¤ãã³ããåãåãã¨ãRulebook ã«è¨è¼ãããå 容ã«åºã¥ããcondition ã«è¨è¼ãããæ¡ä»¶ã¨ä¸è´ãããã©ãããå¤æããä¸è´ããå ´åã¯ãaction ã«è¨è¼ãããå 容ãå®è¡ãã¾ããaction ã«ã¯ããã¹ãã¤ãã³ãã®çºç ²ãªã©å«ãããã¤ãã®ç¨®é¡ãããã¾ãããAAC å ã«ãããããæºåãããã¸ã§ããã³ãã¬ã¼ããã¯ã¼ã¯ããã¼ãã³ãã¬ã¼ããå¼ã³åºã㦠Playbook ãå®è¡ãããã¨ãå¯è½ã§ãã
ä¾ãã°ã以ä¸ã¯ç°¡å㪠Rulebook ã®ä¸ä¾ã§ããããã®ã±ã¼ã¹ã§ã¯ããã¹ã¦ã®ãã¹ãããã® webhook ã5000çªãã¼ãã§å¾ ã¡åããwebhook ã®ã¤ãã³ããåãåã£ããã ãã®ä¸ã®ã¡ãã»ã¼ã¸ã確èªããAnsible is super cool ã¨ããæååã¨ä¸è´ããå ´åã«ã AAC å ã«ãããããä½æããã say-what ã¨ããã¸ã§ããã³ãã¬ã¼ããå®è¡ããã¨ããåä½ã«ãªãã¾ãã
--- - name: Listen for events on a webhook hosts: all sources: - name: Wait for Webhook Message ansible.eda.webhook: host: 0.0.0.0 port: 5000 rules: - name: Say Hello condition: event.payload.message == "Ansible is super cool" action: run_job_template: name: say-what organization: Default
AAC ã¯å®è¡ç°å¢ã§ Playbook ãå®è¡ãã¾ãããEDA Controller ãåãããã«ã決å®ç°å¢ã¨å¼ã°ããã³ã³ããå é¨ã§ Rulebook ãå®è¡ãã¾ãã 決å®ç°å¢ã®ä¸ã«ã¯ ansible.eda ã¨ããã¤ãã³ãã½ã¼ã¹ãã©ã°ã¤ã³ããããããããã±ã¼ã¸åããã¦ãããã¤ã³ã¹ãã¼ã«ç´å¾ããå©ç¨å¯è½ã§ãã
詳細ã«ã¤ãã¦ã¯ä»¥ä¸ãã確èªãã ããã
ansible.eda 以å¤ã®ãã©ã°ã¤ã³ã¯ Red Hat Hybrid Cloud Console ãã Collections ã¨ãã¦æä¾ããã¦ãã¾ãããã®ãããã®å®è£ ã¯ãAAC ã¨åãã§ãã以ä¸ã®ãªã³ã¯ã¯ã Red Hat Hybrid Cloud Console ãæåå eda ã§æ¤ç´¢ããçµæã§ããEDA ã§ã¯ãããã® Collections ãå©ç¨å¯è½ã§ãã
EDA ã®å ·ä½çãªåä½ãã¹ãã®æ¹æ³ã¯å¹´æãã«ããã¡ãã®ããã°ã§ãç´¹ä»ãããã¨æãã¾ãã
Ansible Lightspeed
AAP 2.4 ã®ããä¸ã¤ã®å¤§ããªç®çãAnsible Lightspeed ã«ã¤ãã¦ãç´¹ä»ãã¾ãã
Ansible Lightspeed ã¯ãIBM Cloud ä¸ã§ãµã¼ãã¹æä¾ããã watsonx Code Assistant for Ansible Lightspeed ãå©ç¨ããçæ AI ã«ãã Playbook ä½ææ¯æ´æ©è½ã§ããçæ AI ã¨ãã㨠ChatGPT ãæãæµ®ãã¹ãæ¹ãå¤ãããããã¾ããããAnsible Lightspeed ã§å©ç¨ããã watsonx Code Assistant for Ansible Lightspeed 㯠Ansible Galaxyã³ã³ãã³ãã¨ãã®ä»ã®ãªã¼ãã³ã»ãã¼ã¿ã»ã½ã¼ã¹ããã³ãRed Hatã¨IBMã®èªååã«é¢ããå°éç¥èãæ³¨å ¥ããããAnsibleåºæã®ããã¬ã¼ãã³ã°ããã¼ã¿ã»ã»ããã¨ãªã£ã¦ãããããçæãããã³ã¼ãã®è³ªãé«ããã¾ããçæãããã³ã¼ããã©ãããæ¥ãã®ãããã®ã½ã¼ã¹ã確èªãããã¨ãã§ãããã¨ãããã³ã¼ãã®èå¼±æ§ãä¸æã®ã©ã¤ã»ã³ã¹éåãªã©ãæ°ã«ãããã¨ãªããå®å¿ãã¦å©ç¨ãããã¨ãå¯è½ã§ãã
Ansible Lightspeed 㯠VSCode ã®æ¡å¼µæ©è½ã¨ãã¦å©ç¨ãããã¨ãã§ãã¾ããç¾å¨ãµãã¼ãããã¦ããæ©è½ã¯ä»¥ä¸ã®éãã§ãã
- ã¿ã¹ã¯ã®ä½æ
èªç¶è¨èªããã³ããããã® Ansible Playbook ã¾ã㯠Roles ã®ã¿ã¹ã¯ã®çæ - ãã«ãã¿ã¹ã¯ã®ä½æ
YAML ã³ã¡ã³ã (#) è¡ã§ã¢ã³ããµã³ã (&) ã使ç¨ãã¦é£éããèªç¶è¨èªã¿ã¹ã¯ ããã³ããã®é£ç¶ãã§ã¼ã³ãæä¾ãããã¨ã«ãããAnsible ã¿ã¹ã¯ ãã¡ã¤ã«ã¨ Playbook ã«å¯¾ããè¤æ°ã® Ansible ã¿ã¹ã¯ææ¡ãçæãã - ã³ã³ãã³ãã½ã¼ã¹ãããã³ã°
çæãããåã³ã¼ãã®æ¨å¥¨äºé ããAnsible ã³ã³ãã³ããã³ã³ãã³ãä½æè ãã³ã³ãã³ã ã©ã¤ã»ã³ã¹ãªã©ãæãè¿ãæ½å¨çãªãã¼ã¿ ãã¬ã¼ãã³ã° ã½ã¼ã¹ã®ä¸ä½ 3 ã¤ã¨ç §åãã - ãã¹ãããã»ãã·ã³ã°ã«ã¼ã«
çæãããã³ã¼ãã®æ¨å¥¨äºé ãæ¡å¼µããAnsible ã®ãã¹ããã©ã¯ãã£ã¹ã«ç¢ºå®ã«æºæ ããããã«ãã
詳ããã¯ãã¡ãã®ãã¼ã¿ã·ã¼ããã確èªãã ããã
ä¸ã¤ã®ä¾ã¨ãã¦ãAnsible Lightspeed ã使ã£ã¦ãPlaybook å ã«ä»¥ä¸ãããªã¿ã¹ã¯ãä½æãã¦ã¿ã¾ããã
å
¥åããèªç¶è¨èª
#ææ°ãã¼ã¸ã§ã³ã® httpd ãã¤ã³ã¹ãã¼ã« & httpd ãµã¼ãã¹ã®æå¹åã¨éå§ & 80/443 ãã¼ããFireall ã§æä¹
çã«å³åº§ã«éã
Ansible Lightspeed ã«ãããã«ãã¿ã¹ã¯ä½æçµæ
tasks: # ææ°ãã¼ã¸ã§ã³ã® httpd ãã¤ã³ã¹ãã¼ã« & httpd ãµã¼ãã¹ã®æå¹åã¨éå§ & 80/443 ãã¼ããFireall ã§æä¹ çã«å³åº§ã«éã - name: ææ°ãã¼ã¸ã§ã³ã® httpd ãã¤ã³ã¹ãã¼ã« ansible.builtin.package: name: httpd state: latest - name: Httpd ãµã¼ãã¹ã®æå¹åã¨éå§ ansible.builtin.service: name: httpd state: started enabled: true - name: 80/443 ãã¼ããFireall ã§æä¹ çã«å³åº§ã«éã ansible.posix.firewalld: port: '{{ item }}/tcp' permanent: true state: enabled immediate: true loop: - 80 - 443
ç°¡åãªãã¢åç»ãä½æãã¦ã¿ã¾ããã
ãããã§ããã§ããããï¼æ¬¡åã¯å¹´æããEDAãLightspeed ã®å®éã®ã試ãæ¹æ³ã«ã¤ãã¦ãç´¹ä»ãããã¨æãã¾ãã
ãªããä»åãç´¹ä»ãã EDA 㯠AAP ã®ãµãã¹ã¯ãªãã·ã§ã³ã«å«ã¾ãã¦ããã¾ãããAnsible Lightspeed ã«é¢ãã¦ã¯ãIBM Cloud ã«ãããµã¼ãã¹æä¾ã¨ãªããããå¥é追å è²»ç¨ãå¿ è¦ã¨ãªãã¾ããå ·ä½çãªä¾¡æ ¼ã«é¢ãã¦ã¯å¼ç¤¾æ å½ã¾ã§ãåãåãããã ããã