Ansible Tutorial: Submit REST API PUT request usin URI Module Cisco RESTCONF IOS Configuration-JSON
Summary
TLDRThe video explains how to make a REST API PUT request from Ansible to replace device configurations. It shows an example of changing the hostname of a network device using the YangModels API. The playbook is updated to handle the 204 status code returned. The body format of row vs JSON is also briefly introduced.
Takeaways
- ð REST APIã®PUTãªã¯ãšã¹ãã¯ãååšããªãã¡ã³ããŒãããã°äœæããã³ã¬ã¯ã·ã§ã³ã眮æããã
- ð PUTãªã¯ãšã¹ããšPOSTãªã¯ãšã¹ãã®äœ¿çšæã«ã¯æ éã«ãªãå¿ èŠããããç¹ã«ã«ãŒãã£ã³ã°ããŒãã«ãæŽæ°ããå Žåãæ¢åã®ããŒãã«ãåé€ããŠããŸãå¯èœæ§ãããã
- ð§ ããŒã¿ã®æŽæ°ã«ã¯PATCHã䜿çšããããšãæšå¥šãããã
- ð Yang Suite APIã䜿çšããŠããã€ã¹ã®ãã¹ãåãPUTãªã¯ãšã¹ãã§å€æŽããäŸã玹ä»ã
- â ãã¹ãåãå€æŽåŸã204ã¬ã¹ãã³ã¹ã³ãŒãã§æåããããšã確èªã
- ð Postmanã䜿ã£ãŠåæ§ã®PUTãªã¯ãšã¹ããéãããµãŒããŒã204ã¬ã¹ãã³ã¹ã³ãŒãã§æ£åžžã«åŠçããããšã確èªã
- ð Ansibleã§ã¯ããã©ã«ãã§200ã¬ã¹ãã³ã¹ã³ãŒããæåŸ ããããã¹ããŒã¿ã¹ã³ãŒããã«ã¹ã¿ãã€ãºããŠ204ãåãå ¥ããæ¹æ³ã玹ä»ã
- ð» VS Codeã§PlaybookãäœæããURLãã¡ãœãããã¡ãã»ãŒãžããã£ãã³ã³ãã³ãã¿ã€ããèšå®ã
- ð AnsibleãREST API PUTã³ãŒã«ã®çµæãšããŠããã€ã¹ã«å€æŽããã£ããã©ãããæ£ç¢ºã«å€å®ã§ããªãåé¡ãææã
- ð 次ã®ãã¥ãŒããªã¢ã«ã§ã¯ãããã£ãã©ãŒãããã®rawãšJSONã®éããããã«Jinja2ãã³ãã¬ãŒããå€æ°ããã®èšå®æ¹æ³ãæ¢ãã
Q & A
Ansibleã§REST APIã®PUTãªã¯ãšã¹ããå®è¡ããéã«æ³šæãã¹ãç¹ã¯äœã§ããïŒ
-PUTãªã¯ãšã¹ãã¯æ¢åã®ã³ã¬ã¯ã·ã§ã³ã眮ãæããã¡ã³ããŒãååšããªãå Žåã¯äœæããŸããã«ãŒãã£ã³ã°ããŒãã«ãæŽæ°ããå Žåãæ¢åã®ããŒãã«ãåé€ããŠæ°ããæ å ±ã®ã¿ãæŽæ°ãããããPUTãªã¯ãšã¹ããšPOSTãªã¯ãšã¹ãã®äœ¿çšã«ã¯æ³šæãå¿ èŠã§ããããŒã¿ã®æŽæ°ã«ã¯PATCHã䜿çšãã¹ãã§ãã
ããã€ã¹ã®ãã¹ãåãå€æŽããAPIã®è©³çŽ°ã¯ã©ã®ããã«ããŠç¢ºèªã§ããŸããïŒ
-Yang suit APIã®ãnative modelãã»ã¯ã·ã§ã³ãåç §ãããgenerate API show APIããã¯ãªãã¯ããããšã§ããã¹ãåãèšå®ããããã®API詳现ãšå¿ èŠãªããŒã¿ãã©ãŒãããã確èªã§ããŸãã
REST APIã䜿ã£ãŠãã¹ãåãå€æŽããåŸãæåããããšã瀺ãHTTPã¹ããŒã¿ã¹ã³ãŒãã¯äœã§ããïŒ
-ãã¹ãåãå€æŽããåŸãæåããããšã瀺ãHTTPã¹ããŒã¿ã¹ã³ãŒãã¯204ã§ãã
Ansibleãããã©ã«ãã§æåŸ ããHTTPã¬ã¹ãã³ã¹ã³ãŒãã¯äœã§ããããããŠãããå€æŽããã«ã¯ã©ãããã°è¯ãã§ããïŒ
-Ansibleã¯ããã©ã«ãã§HTTPã¬ã¹ãã³ã¹ã³ãŒã200ãæåŸ ããŠããŸãããããå€æŽããã«ã¯ãPlaybookå ã§'status_code'ãã©ã¡ãŒã¿ãŒã䜿çšããŠæåŸ ããã¹ããŒã¿ã¹ã³ãŒããæå®ããŸããäŸãã°ã204ãæåŸ ããå Žåã¯ã'status_code: 204'ãèšå®ããŸãã
Postmanã䜿çšããŠããã€ã¹ã®ãã¹ãåãå€æŽããéã«å¿ èŠãªèšå®ã¯äœã§ããïŒ
-Postmanã䜿çšããå ŽåãPUTãªã¯ãšã¹ããèšå®ããYang suit APIã§ç¢ºèªããURLã䜿çšãã'Content-Type'ããããŒãè¿œå ããŠãã¡ãã»ãŒãžããã£å ã§ãã¹ãåãå€æŽããå¿ èŠããããŸãã
Ansibleã®Playbookã§URLãã¡ãœãããã¡ãã»ãŒãžããã£ãã³ã³ãã³ãã¿ã€ããã©ã®ããã«èšå®ããŸããïŒ
-Playbookã§ã¯ãURLãAPIãšã³ããã€ã³ãã«èšå®ããã¡ãœãããPUTã«èšå®ããŸããã¡ãã»ãŒãžããã£ã«ã¯å€æŽããããã¹ãåã®ããŒã¿ãå«ãã'Content-Type'ãé©åã«èšå®ããŠãªã¯ãšã¹ããè¡ããŸãã
Ansibleã§å®è¡ããPUTãªã¯ãšã¹ããããã€ã¹ã«å€æŽãå ãããã©ãããAnsibleãã©ã®ããã«å€æãããããŸããã®åé¡ãã©ã®ããã«è§£æ±ºã§ãããïŒ
-ããã©ã«ãã§ã¯ãAnsibleã¯REST APIã®PUTã³ãŒã«ã«ããããã€ã¹ãžã®å€æŽãæ€åºã§ããŸããã'changed'ã®ç¶æ ãé©åã«ç®¡çããã«ã¯ãå®è¡çµæã確èªããæ¡ä»¶ã«åºã¥ããŠ'tasks'å ã§'changed'å±æ§ãæåã§èšå®ããããšãå¿ èŠã§ãã
Ansible Playbookã§HTTPã¬ã¹ãã³ã¹ã³ãŒã204ãæ£åžžãšããŠæ±ãæ¹æ³ã¯ïŒ
-Playbookå ã§'status_code'ãã©ã¡ãŒã¿ã204ã«èšå®ããããšã§ãHTTPã¬ã¹ãã³ã¹ã³ãŒã204ãæ£åžžãšããŠæ±ãããšãã§ããŸããããã«ããã204ã¬ã¹ãã³ã¹ãè¿ãããŠãã¿ã¹ã¯ã倱æãšããŒã¯ãããããšã¯ãããŸããã
ããã€ã¹ã®ãã¹ãåãAnsible Playbookããå€æŽããéã«ããªã'Content-Type'ããããŒãèšå®ããå¿ èŠãããã®ã§ããïŒ
-ããã€ã¹ã®ãã¹ãåãå€æŽãããªã¯ãšã¹ãã«ã¯ããªã¯ãšã¹ãã®ããã£ãæ£ãã解éãããããã«'Content-Type'ããããŒãèšå®ããå¿ èŠããããŸããããã¯ãéä¿¡ããããŒã¿ã®åœ¢åŒãæå®ããããã§ãã
Ansible Playbookã§ããŒã¿ãJSON圢åŒã§ã¯ãªãçã®åœ¢åŒã§éä¿¡ããå Žåãã©ã®ãããªèæ ®ãå¿ èŠã§ããïŒ
-çã®ããŒã¿åœ¢åŒã§éä¿¡ããå ŽåãPlaybookå ã§ããŒã¿ãé©åã«ãã©ãŒãããããæååãšããŠæ£ç¢ºã«æå®ããå¿ èŠããããŸããããã«ãããAnsibleããªã¯ãšã¹ãããã£ãé©åã«åŠçããæåŸ ããã圢åŒã§ããŒã¿ãéä¿¡ã§ããããã«ãªããŸãã
Outlines

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowKeywords

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts

This section is available to paid users only. Please upgrade to access this part.
Upgrade NowBrowse More Related Video

Building and Deploying a Basic REST API with Azure App Service, Azure Portal, and Visual Studio

REST API Tutorial #1 - What is a REST API?

What is a REST API?

Express JS #6 - PUT Requests

Assigning IP Addresses - CompTIA A+ 220-1101 - 2.5

API GATEWAY and Microservices Architecture | How API Gateway act as a Single Entry Point?
5.0 / 5 (0 votes)