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?

Creating REST API using Spring Boot in Hindi | A Step-by-Step Tutorial

What is a REST API?

Express JS #6 - PUT Requests

Assigning IP Addresses - CompTIA A+ 220-1101 - 2.5
5.0 / 5 (0 votes)