
ãã®èšäºã§ã¯ãèªå®
ã§EVE-NGããŒãã£ã«ã©ããå±éããŠãã·ã¹ã³ã®å°é家詊éšã«åãããããã¯ãŒã¯ãšã³ãžãã¢ã®çµéšã«ã€ããŠèª¬æããŸãã
ç§ã¯ãã€ã³ã¿ãŒãããäžã®èšäºã«æ£ãã°ã£ãŠããèšå®ã®ãã¹ãŠã®äž»èŠãªãã€ã«ã¹ããŒã³ãåéããããšããå匷ããªãããansible-æ§æç®¡çã·ã¹ãã ã«ããããžãŒã远å ããããšããŸããã çµéšã倱ã£ãŠãã¿ãŸããã§ããã®ã§ãå¥ã®ãã¡ã€ã«ã«ä¿åããããšã«ããŸããã ããã§ããªãã®è£å€æã«æåºããŸãã
ãã®èšäºã«èšèŒãããŠãããã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ãæé©ã§ãããšäž»åŒµããŠããããã§ã¯ãããŸãããã確å®ã«æ©èœããŸãã
EVE-NGã®ã€ã³ã¹ããŒã«
ãã¹ãã®æºå
ãã¹ããšããŠãIntel Xeon X3240ãGentooãå®è¡ãã32Gb RAMã®ã·ã¹ãã ã䜿çšããŸãã Gentooã§KVMãã»ããã¢ããããã®ã¯éåžžã«ç°¡åã§ãå®ãèšããšãå±éæã«ã©ã®ãããªèœãšã穎ã«çŽé¢ãããèŠããŠããŸããã ããã¶ãåã®ããšã§ãã
EVE-NGã©ããã³ãã®ããã©ãŒãã³ã¹ã«å£æ»
çãªåœ±é¿ãäžããäž»ãªãã®ã¯ã ãã¹ããããä»®æ³å ïŒãã¹ããããä»®æ³åïŒã䜿çšããæ©èœãèµ·åããã«ãŒãã«ãã©ã¡ãŒã¿ãŒã§ãã
Intelããã»ããµãŒã®å ŽåïŒ
kvm-intel.nested=1
詳现ã¯ãªã³ã¯ãã芧ãã ãã ã
ãããã¯ãŒã¯ããã€ã¹ã€ã¡ãŒãžã®ããŠã³ã
æ¥ç¶çšã®ãããã¯ãŒã¯ããã€ã¹ã®ã€ã¡ãŒãžã¯ãcisco.comããç¡æã§å
¥æã§ããŸããããŠã³ããŒãããã«ã¯ããšã³ããªãŒã¬ãã«ã®ã¢ã«ãŠã³ããããã°ååã§ãã XRvãšCSRãå¿
èŠã«ãªããŸãã
æå®ããããªã³ã¯ã§ããŠã³ããŒããã how-toã®æšå¥šäºé
ã«åŸã£ãŠãã ãã ã
ã€ã¡ãŒãžã远å ãããšãã«ééããåé¡ã¯ã hda.qcow2ãã¡ã€ã«ã远å ãããã£ã¬ã¯ããªã®ååã®ä»ãæ¹ã§ãã ã 解決çã¯ããã€ãã®ããã«ããªããŒã¹ãšã³ãžãã¢ãªã³ã°ã§ãã EVE-NGã«ãã£ãŠåŠçãããããããŒã®ãªã¹ãã¯ããã¡ã€ã«ã«ä¿åãããŸãã
/opt/unetlab/html/includes/init.php
ããã«æã£ãŠããŸãïŒ
$node_templates = Array( 'a10' => 'A10 vThunder', 'clearpass' => 'Aruba ClearPass', 'timos' => 'Alcatel 7750 SR', 'veos' => 'Arista vEOS', 'barracuda' => 'Barraccuda NGIPS', 'brocadevadx' => 'Brocade vADX', 'cpsg' => 'CheckPoint Security Gateway VE', 'docker' => 'Docker.io', 'acs' => 'Cisco ACS', 'asa' => 'Cisco ASA', 'asav' => 'Cisco ASAv', 'cda' => 'Cisco Context Directory Agent', 'csr1000v' => 'Cisco CSR 1000V', 'csr1000vng' => 'Cisco CSR 1000V (Denali and Everest)', 'cips' => 'Cisco IPS', 'cucm' => 'Cisco CUCM', 'ise' => 'Cisco ISE', 'c1710' => 'Cisco IOS 1710 (Dynamips)', 'c3725' => 'Cisco IOS 3725 (Dynamips)', 'c7200' => 'Cisco IOS 7206VXR (Dynamips)', 'iol' => 'Cisco IOL', 'titanium' => 'Cisco NX-OSv (Titanium)', 'nxosv9k' => 'Cisco NX-OSv 9K', 'firepower' => 'Cisco FirePower', 'firepower6' => 'Cisco FirePower 6', 'ucspe' => 'Cisco UCS-PE', 'vios' => 'Cisco vIOS', 'viosl2' => 'Cisco vIOS L2', 'vnam' => 'Cisco vNAM', 'vwlc' => 'Cisco vWLC', 'vwaas' => 'Cisco vWAAS', 'phoebe' => 'Cisco Email Security Appliance (ESA)', 'coeus' => 'Cisco Web Security Appliance (WSA)', 'xrv' => 'Cisco XRv', 'xrv9k' => 'Cisco XRv 9000', 'nsvpx' => 'Citrix Netscaler', 'sonicwall' => 'Dell SonicWall', 'cumulus' => 'Cumulus VX', 'extremexos' => 'ExtremeXOS', 'bigip' => 'F5 BIG-IP LTM VE', 'fortinet' => 'Fortinet FortiGate', //'radware' => 'Radware Alteon', 'hpvsr' => 'HP VSR1000', 'olive' => 'Juniper Olive', 'vmx' => 'Juniper vMX', 'vmxvcp' => 'Juniper vMX VCP', 'vmxvfp' => 'Juniper vMX VFP', 'vsrx' => 'Juniper vSRX', 'vsrxng' => 'Juniper vSRX NextGen', 'vqfxre' => 'Juniper vQFX RE', 'vqfxpfe' => 'Juniper vQFX PFE', 'linux' => 'Linux', 'mikrotik' => 'MikroTik RouterOS', 'ostinato' => 'Ostinato', 'paloalto' => 'Palo Alto VM-100 Firewall', 'pfsense' => 'pfSense Firewall', 'riverbed' => 'Riverbed', 'sterra' => 'S-Terra', 'vyos' => 'VyOS', 'win' => 'Windows (Legacy template)', 'winstation' => 'Windows Workstation', 'winserver' => 'Windows Server', 'vpcs' => 'Virtual PC (VPCS)' );
ã€ãŸãã以äžã§è¡ãããã«ãLinuxã§ã€ã¡ãŒãžã远å ããå¿
èŠãããå Žåã¯ã / opt / unetlab / addons / qemu / linux-something-there /ãã£ã¬ã¯ããªãäœæãããã®äžã«hda.qcow2ã€ã¡ãŒãžãã¡ã€ã«ãé
眮ããŸãã
ç°å¢èšå®
ç°å¢ãšã¯ãç§ãã¡ã®ç掻ããã䟿å©ã«ãããã®ãã¹ãŠãæå³ããŸãã
ã«ãŒã¿ãŒã³ã³ãœãŒã«ã¢ã¯ã»ã¹
EVE-NGã§ã¯ãéçºè
ãHTML5ã䜿çšããŠWebçµç±ã§ãããã¯ãŒã¯ããã€ã¹ã®ã³ã³ãœãŒã«ã«ã¢ã¯ã»ã¹ããæ©èœãå®è£
ããŠããã«ããããããããµãŒãããŒãã£ã¯ã©ã€ã¢ã³ãããã®ã¢ã¯ã»ã¹ã¯ãã䟿å©ã§äœ¿ãæ
£ããŠããŸãã ç§ã®å ŽåããããæäŸããäž»ãªå©äŸ¿æ§ã¯ãã¯ãªããããŒãã䜿çšã§ããããšã§ãã ã³ããŒ/貌ãä»ãã¯ãWebã³ã³ãœãŒã«ã§ã¯æ©èœããŸããã
ãã®ãããããã»ã¹ã¯æ¬¡ã®ãšããã§ãã
ã¢ã¯ã»ã¹å
ã®ãã·ã³ã«ãããã€ã³ã¹ããŒã«ããŸãã ç§ã¯ubuntuã䜿çšããŠPCã§äœæ¥ããŠããããã
sudo apt-get install putty
ããããããã§ã¯ååã§ã¯ãããŸããããã©ãŠã¶ã«äŒããå¿
èŠããããŸããç§ã®å Žåã¯ã telnetïŒ//ã®ãããªãªã³ã¯ãžã®å¿çæ¹æ³ã¯chromeã§ãã ãããè¡ãã«ã¯ã次ã®å
容ã®ã/ .local / share / applications / telnet.desktopãã¡ã€ã«ãäœæããŸã ã
[Desktop Entry] Version=1.0 Name=Telnet GenericName=Telnet Comment=Telnet Client Exec=/usr/bin/putty %U TryExec=/usr/bin/putty Terminal=false Type=Application Categories=TerminalEmulator;Network;Telnet;Internet;BBS; MimeType=x-scheme/telnet X-KDE-Protocols=telnet Keywords=Terminal;Emulator;Network;Internet;BBS;Telnet;Client;
ãã³ãã©ãŒãç»é²ããŸãã
xdg-mime default telnet.desktop x-scheme-handler/telnet
ãã®åŸãã³ã³ãœãŒã«ã¯ããã§å®å
šã«éããŸãã ã¿ããŸãã¯ãã®ã¢ããã°ã䜿çšããŠgnome-terminalã«åãæ¿ããã¿ã¹ã¯ã¯ãããšã§æ®ãããŸãã
äº€éæ¢ç¥æ©
Wiresharkã¯ããããã¯ãŒã¯ãã¯ãããžãŒãåŠç¿ããéã«äžå¯æ¬ ã§ãã ãã®äœ¿çšã«ã€ããŠå€ãã®ããšãæžãããŠããŸãã ç¹°ãè¿ããŸããã èšå®ã®ããã»ã¹ã説æããŸãã
ã¯ã©ã€ã¢ã³ãã®ã€ã³ã¹ããŒã«ïŒ
sudo apt-get install wireshark
ãã ãããã©ãŠã¶ã¯ãã£ããã£ã®åŠçæ¹æ³ãçè§£ããŠããŸããïŒ//ãªã³ã¯
圌ã¯ããã3段éã§èª¬æããªããã°ãªããŸããïŒ
ã¹ããŒãž1ïŒ
ã³ã³ãœãŒã«ãšåæ§ã«ããã¡ã€ã«ã/ .local / share / applications / wireshark.desktopã¯æ¬¡ã®åœ¢åŒã§ãïŒ
[Desktop Entry] Name=Wireshark Exec=capture_chrom.sh %u MimeType=x-scheme-handler/capture; Type=Application
ãã³ãã©ãŒç»é²ïŒ
xdg-mime default wireshark.desktop x-scheme-handler/capture
ã¹ããŒãž2ïŒ
PATHãªã¹ãã®ä»»æã®ãã£ã¬ã¯ããªã«ããã¯ã©ã€ã¢ã³ããã·ã³äžã®bashã¹ã¯ãªãã圢åŒã®ãã³ãã©ãŒïŒ
ã¹ããŒãž3ïŒ
ã¯ã©ã€ã¢ã³ããã·ã³ãšEVE-NGéã®äž»èŠãªsshã¢ã¯ã»ã¹ã
ã¯ã©ã€ã¢ã³ããã·ã³ã§ïŒip_eveã®ä»£ããã«ãã¢ãã¬ã¹EVE-NGãå
¥åããŸãïŒïŒ
ssh-keygen -t rsa ssh root@_ip_eve_ mkdir -p .ssh cat ~/.ssh/id_eve_ng.pub | ssh root@ip_eve 'cat >> .ssh/authorized_keys2'
ãã®åŸãã¯ã©ã€ã¢ã³ãåŽã§Wiresharkãžã®ãã©ãã£ãã¯ããã£ããã£ããŸãã ãããå¿
èŠãªãã®ã§ãã
æ°åããªããŠãŒã¶ãŒã¯ããã§åæ¢ã§ããŸãããå®ç§ã«å¶éã¯ãããŸããã
ansibleãµãŒããŒã€ã³ã¹ã¿ã³ã¹ã®ã»ããã¢ãã
æ
ã®å§ãã«ä»®æ³ã©ãããããžãå®çŸããå¿
èŠæ§ã¯ãç§ã«ã¯æããã§ã¯ãããŸããã§ããã ããããæéã®çµéãšãšãã«ãå®éšå®€ã®2ããŒã¹ã®æéã§ãéè² è·ã«ãªãããšãªãéå§ããããžãŒã®ããã€ã¹ãžã®ããŒããèªååããã®ã§ã¯ãªããæéãç¯çŽãããšããèããæµ®ãã³äžãããŸããïŒ
ããã§ã¯ã©ãããå§ããŸããïŒ å¶éä»ãã§ïŒ ã¯ãã圌ãã¯æ¬åœã«ã§ãã ããã°ã©ãã³ã°ã«é¢ããŠã¯ããã©ãŒã©ã ã®1ã€ã§ã®ææ¡ã¯ããŸãã«ãæ®é
·ã§ããããšãããããŸãããèªåã§telnetãã³ãã©ãŒã远å ããããšã¯ã§ããŸããã§ããã é¡ã®ãœãªã¥ãŒã·ã§ã³ã«ã¯Telnetãå¿
èŠã§ãã-EVE-NGä»®æ³ãã·ã³ã§ansibleãèšå®ããä»®æ³ã«ãŒã¿ãŒã®ã³ã³ãœãŒã«ããŒãã«Telnetãèšå®ããŸãã ããããããã«ã¯-sshã®ã¿ãæ©èœããŸãã
ããããç§ãã¡ã¯å€ããšã³ãžãã¢ã§ãããéåŽã«æ
£ããŠããŸããïŒ å±±ãã¢ãã¡ããã«è¡ããªãå Žåã¯ãå±±ã«ç§»åããŸããããã«ã¯æ©äŒããããããããããžèªäœã«ububtuã䜿çšããŠå¥ã®ã€ã³ã¹ã¿ã³ã¹ãèšå®ããŸãã
ubuntu.comããããŠã³ããŒãããã€ã¡ãŒãžãKVMã«å±éããæ¹æ³ã¯æããŸããã ãããå¥ã®ãã·ã³ã§è¡ãã調æŽããŠEVE-NGã«ã¢ããããŒãããŸããã ã€ã³ã¹ããŒã«åŸãtelnetãµãŒããŒãå«ãããã±ãŒãžãå¿
èŠã«ãªããéçIPã¢ãã¬ã¹ãæ§æããŸãã
TelnetãµãŒããŒã®ã»ããã¢ãã
EVE-NGã䜿çšããŠãããã€ã¹ãã¯ãªãã¯ããã ãã§æšæºçãªæ¹æ³ã§ãµãŒããŒã³ã³ãœãŒã«ã衚瀺ããããšã¯ã§ããŸããã§ããã æ·±ãæãäžããªãããã«ãç§ã¯ãã¡ãã¡ã«è¡ããŸãã-TelnetãµãŒããŒãã»ããã¢ããããŸãã ãã¡ãããSSH v2ãå©çšå¯èœã§ãããCSRã§åäœããŸãããã€ã³ã¿ã©ã¯ãã£ããªäœæ¥ã«ã¯éåžžã«æéããããã圹ã«ç«ããªã-å®çšŒåã§ã¯ãªããå®éšå®€ã®ã¹ã¿ã³ãããããŸãã
ãã®åŸããµãŒããŒã®å¿
èŠæ§ã¯ãªããªããŸããããããŒãã·ãŒãã®ãšã³ããªã¯æ®ã£ãã®ã§ãç§ããããäžããŸãã
ããã§ã¯å§ããŸãããïŒ
sudo apt-get install xinetd telnetd
ãã¡ããã xinetdãèªåçã«éå§ãããåŸã¯ãã€ã³ã¿ãŒãããã§çŽæããããšãããäœãèµ·ãããŸããã§ããã
次ã®å
容ã®telnetãã¡ã€ã«ã/etc/xinetd.dã«è¿œå ããå¿
èŠããããŸãã
service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd }
xinetdãµãŒããŒãåèµ·åããŸãã
sudo service xinetd restart
telnetãããŒã«ã«ã§ç¢ºèªããŸãã
@ansible-server:~$ telnet 127.0.0.1 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. Ubuntu 16.04.2 LTS ansible-server login:
ããŸãããïŒ
çµæã®ã€ã¡ãŒãžãEVE-NGä»®æ³ãã·ã³ã«ã¢ããããŒãããããããžã®åéã詊ã¿ãŸãã
ããã§ãããããžå
ã®é£æ¥ããtsiskã«ãããµãŒããŒã®ãµããããããã¢ãã¬ã¹ãæ§æããtelnetçµç±ã§ã¢ã¯ã»ã¹ã§ããŸãã SSHã®ããã§ã¯ãªãããã¹ãŠãé«éã«åäœããŸãã
ããããžã³ã¬ã¯ã·ã§ã³
ããã§ã¯ãã¹ãŠãéåžžã«ç°¡åã§ãã ç§ã®ããããžãŒã¯æ¬¡ã®ãšããã§ãã

ansibleãµãã·ã¹ãã ã®å±é
ansibleã§åäœããããã«CSRãæ§æãã
åã«ãŒã¿ãŒã§ã管ççšã«åå¥ã®ããŒããéžæããGi2ããŒããansibleãµãŒããŒãšã®å
±æããã«æ¥ç¶ããŸãã 管ççšã®ãµãããããéžæããŠã¿ãŸãããã192.168.0.0/ 24ã§ãã ãããŠãã«ãŒã¿ãŒã®æ°ã«å¿ããŠããŒãã«IPã¢ãã¬ã¹ãå²ãåœãŠãŸãã
/ etc / hostsãµãŒããŒã«åãæ
å ±ãå
¥åããŸãã
192.168.0.1 R1 192.168.0.2 R2 192.168.0.3 R3 192.168.0.4 R4 192.168.0.5 R5 192.168.0.6 R6 192.168.0.7 R7 192.168.0.8 R8 192.168.0.9 R9 192.168.0.10 R10 192.168.0.11 XR1 192.168.0.12 XR2 192.168.0.20 SW1
åã«ãŒã¿ãŒã§ã ãªã³ã¯ã«åŸã£ãŠSSH v2ãæ§æããŸãã ãã¹ãŠãäºçްãªããšã§ããå¿
èŠãªSSHv2ãå®è¡ããã«ã¯ã768ããã以äžã®ããŒãçæããå¿
èŠããããšããèšããŸããããµã€ãºã¯2048ãéžæããŸããã
ãµãŒããŒããSSHãžã®ã«ãŒã¿ãŒãžã®ã¢ã¯ã»ã¹ã確èªãããšåæã«ãã¹ãã¢å
ã®ããŒãåéããŸãã
æ§æãã«ãŒã¿ãŒã«ä¿åããŸãã
R1
ãããŠãåèµ·åäžã«ããã€ã¹ãåæ§æããªãããã«ãæ§æãEVE-NGã«ãšã¯ã¹ããŒãããŸãã

EVE-NGã®ãã®æ©èœã¯ã以åã®Unetlabã®ããã«ãããŸããŸãªæåãåããŠæ©èœããŸãã ããããæåŸ
ããŸãããã
æåã®ããã¯ãäœæãã
ç§ãã¡ãæãåºãããã«ãansibleæ§é ã¯2ã€ã®äž»èŠéšåã§æ§æãããŠããŸã-ããã€ã¹ã®èª¬æïŒã€ã³ãã³ããªïŒãšãå®éã«ã¯ã·ã¹ãã ã®ããžãã¯ãåããã¯ãŒã¯ããã¯ã§ãã
ãã®å Žåãã€ã³ãã³ããªã¯éåžžã«åå§çã§ãããã€ã³ãã³ããªãå«ããã¡ã€ã«ïŒ / etc / ansible / hosts ïŒã¯æ¬¡ã®åœ¢åŒãåããŸã ã
[ios] R[1:10]
R1ããR10ãŸã§ã®ãã¹ãåã®ãªã¹ãã§æããã«ãªã£ãããšïŒåå解決ã®ããã«/ etc / hostsããã§ã«ç»é²ããŠããããšãæãåºããŠãã ããïŒã
ããããvorbukããããå¿
èŠããããŸãã
æåã®ã¹ãããã¯ãå®éšå®€ã®é¢å¿ã®æ§æãIOSä»®æ³ã«ãŒã¿ãŒã«ã¢ããããŒãããããã«ãIPå¶åŸ¡ãšVTYèšå®ã®ã¿ãå«ãåæãŒãã«ããŒã«ããã¯ããå¿
èŠããããŸãã
ãã®ããã«ã ios_commandã¢ãžã¥ãŒã«ã®äœ¿çšã詊ã¿ãŸãã
iOSããã€ã¹ã®æ§æã®å€æŽã«é¢ãããã¹ãŠã®äœæ¥ã®åºç€ã¯ãã«ãŒã¿ãŒã®ç¹æš©ã¢ãŒãã³ãã³ãã®æ©èœã§ãã
configure replace scp://[PATH] force
ãã£ã¬ã¯ããª/ home / router / default_configs /ã«ããããŒã ã«ãŒã¿ãŒã®äžã®æ°ãããŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªã«ãããµãŒããŒã®ãŒãæ§æãä¿åããŸãã å°æ¥çã«ã¯ããã¡ã€ã«ã¯ã€ã³ãã³ããªå
ãšåãååãæã€ããã«ãªããŸãã ãã®äŸã§ã¯ãR1ãR2ãªã©ã§ãã
次ã®åœ¢åŒã®/ opt / ansibleã« rollback.ymlãã¡ã€ã«ãäœæããŸãã
- name: rollback hosts: ios serial: 1 connection: local gather_facts: false remote_user: cisco tasks: - name: Performing rollback to default configuration. ios_command: commands: configure replace scp://router:cisco@192.168.0.101:~/default_configs/{{ inventory_hostname }} force timeout: 30
ã ãããé çªã«ïŒ
ãã¬ã€ããã¯åïŒ
- name: rollback
äœ¿çšæžã¿åšåº«ã®ååïŒ
hosts: ios
ã€ã³ãã³ããªããåæã«æ§æãããããã€ã¹ã®æ°ã åŸç¶ã®ããã©ãŒãã³ã¹æé©åã®éèŠãªéšåã
serial: 1
ç§ã®çè§£ã§ã¯ãããã¯ããŒã«ã«ãžã§ããã³ãã©ãŒãžã®æ¥ç¶ã瀺ããŠããŸãã ç§ã¯ééã£ãŠããå¯èœæ§ããããŸãã
connection: local
ãã¹ãæ
å ±åéã®ç¡å¹åïŒ
gather_facts: false
ããã€ã¹ã«æ¥ç¶ããããã®ãŠãŒã¶ãŒåïŒ
remote_user: cisco
ã¢ãžã¥ãŒã«åŒã³åºãïŒ
ios_command:
ã€ã³ãã³ããªããããã€ã¹ãžã®ã³ãã³ãã®è»¢éïŒ
commands: configure replace scp://router:cisco@192.168.0.101:~/default_configs/{{ inventory_hostname }} force
ç§åäœã®å¿çã¿ã€ã ã¢ãŠãïŒ
timeout: 30
è€éãããããšã¯ãããŸãããã1ã€ã ããããŸãïŒ
å®è¡ããŠã¿ãŸããã...
ansible-playbook ./rollover.yml -k -vvvv
ãšã©ãŒãçºçããŸãïŒ
"msg": "ios_command does not support running config mode commands. Please use ios_config instead"
ã°ãŒã°ã«ã¯ããã«ã€ããŠããŸãèªããªãã®ã§ãç§ãã¡ã¯ç¬åµæ§ãåããŠã誰ããããèªã£ãã®ããèŠã€ããããšããŸãã ãããŠã䜿çšããŠããã¢ãžã¥ãŒã«ã®ãã¡ã€ã«ãèŠã€ããŸãïŒ /usr/local/lib/python2.7/dist-packages/ansible-2.3.0-py2.7.egg/ansible/modules/network/ios/ios_ios.command.pyãããå«ãã³ãŒãïŒ
if module.check_mode and not item['command'].startswith('show'): warnings.append( 'only show commands are supported when using check mode, not ' 'executing `%s`' % item['command'] ) elif item['command'].startswith('conf'): module.fail_json( msg='ios_command does not support running config mode ' 'commands. Please use ios_config instead' )
æããã«ãéçºè
ã¯è¡ãéããŠããã¹ãŠã®æ§æãã©ã¡ãŒã¿ãŒãæ§æã¢ãŒãã«ããé©åãªè¡ã«è¿œå ããŸãã
elif item['command'].startswith('configure terminal'):
皌ãã ïŒ
root@ansible-server:/opt/ansible
2çªç®ã®ããã¯ãäœæãã
åã®æ®µéã»ã©è©³çްã«èª¬æããã®ã§ã¯ãªããæåãªãã©ã³ãã®å®éšå®€äœæ¥ã®ããŒãã®åææ§æãååã«3æåã§åããã¯ãŒã¯ããã¯ã®äŸãç°¡åã«ç€ºããŸãã
/ etc / ansible /ãã¹ã
[ios] R[1:10] [ios.base.ipv4] R[1:6]
/opt/ansible/base.ipv4.yml
- name: base.ipv4 hosts: ios.base.ipv4 connection: local gather_facts: false remote_user: cisco serial: 1 tasks: - name: base.ipv4 configuration load ios_config: src: ./IOS-XE-initials/base.ipv4/{{ inventory_hostname }}
åææ§æãã¡ã€ã«ã¯ããããã/opt/ansible/IOS-XE-initials/base.ipv4ã«ãããŸãã ãã®ã·ããªãªã®äž»ãªéãã¯ã ios_configã¢ãžã¥ãŒã«ã®æ©èœã®äœ¿çšãšãããã€ã¹ã§å®è¡ããå¿
èŠã®ããã³ãã³ããè§£éããããã®ã¢ãžã¥ãŒã«ãžã®æš©éã®è»¢éã§ãã
ããã ãã§ãããæž
èŽããããšãããããŸããã ãã®èšäºãç¶ç¶ãã䟡å€ãããå Žåãæ¬¡ã®ãããã¯ã¯IOS XRãšansibleã®çžäºäœçšã®ã»ããã¢ããã§ãã