ToB企服应用市场:ToB评测及商务社交产业平台
标题:
【网工Ansible】第 7 节: Ansible Quick Start: Playbooks and Cisco IOS
[打印本页]
作者:
徐锦洪
时间:
2024-9-21 13:59
标题:
【网工Ansible】第 7 节: Ansible Quick Start: Playbooks and Cisco IOS
一、预设置与课外知识
1.拓扑装备于设置导入
注意事项:记得使用给出的装备设置文件进行粘贴时,要复制到“wr”下后一空行处,否则“wr”下令将保持输入而未能执行
2.课外知识:cisco中 logging synchronous是干什么用的?
开启日记同步,如果不敲这条下令,主动弹出日记的时候如果你在设置装备,你就会发现日记信息会把你敲入的下令分隔开,影响输入。敲上这条下令之后日记信息不会分隔你敲到一半的下令行。
二、源代码(可参考修改以自用)
由于按照教程示例拓扑的摆设,好像因互换机的spanning tree收敛而导致CPU hog,终极造成装备不可ping通而下发失败,因此未遵照后续案例跟做。能够参考其代码进行本身的下令编写与下发即可,其源代码如下:
---
- name: Cisco Wired Campus Design - Access
hosts: gns3-access
gather_facts: false
connection: network_cli
tasks:
- name: Global config settings
ios_config:
lines:
- vtp mode transparent
- spanning-tree mode rapid-pvst
- udld enable
- errdisable recovery cause all
- port-channel load-balance src-dst-ip
- ip name-server 8.8.8.8
- no ip http server
- ip http secure-server
- snmp-server community python1 RO
- snmp-server community python2 RW
- ntp server 87.81.181.2
- ntp update-calendar
- clock timezone PST -8
- clock summer-time PDT recurring
- service timestamps debug datetime msec localtime
- service timestamps log datetime msec localtime
- "vlan 1,10,20,30,40,50"
- ip default-gateway 192.168.122.1
- "ip dhcp snooping vlan 100,101"
- no ip dhcp snooping information option
- ip dhcp snooping
- "ip arp inspection vlan 100,101"
- spanning-tree portfast bpduguard default
register: print_output
- debug: var=print_output
- name: Interface settings
ios_config:
parents: "interface {{ item.interface }}"
lines:
- "switchport access vlan {{ item.vlan }}"
- "switchport voice vlan {{ item.voice_vlan }}"
- switchport host
- switchport port-security maximum 2
- switchport port-security
- switchport port-security aging time 2
- switchport port-security aging type inactivity
- switchport port-security violation restrict
- ip arp inspection limit rate 100
- ip dhcp snooping limit rate 100
- ip verify source
after:
- no shutdown
with_items:
- { interface : GigabitEthernet1/0, vlan : 100, voice_vlan : 101 }
- { interface : GigabitEthernet1/1, vlan : 10, voice_vlan : 101 }
- { interface : GigabitEthernet1/2, vlan : 20, voice_vlan : 101 }
- { interface : GigabitEthernet1/3, vlan : 30, voice_vlan : 101 }
register: print_output
- debug: var=print_output
- name: Cisco Wired Campus Design - Core
hosts: gns3-core
gather_facts: false
connection: network_cli
tasks:
- name: Global config settings
ios_config:
lines:
- vtp mode transparent
- spanning-tree mode rapid-pvst
- udld enable
- errdisable recovery cause all
- port-channel load-balance src-dst-ip
- ip name-server 8.8.8.8
- no ip http server
- ip http secure-server
- snmp-server community python1 RO
- snmp-server community python2 RW
- ntp server 87.81.181.2
- ntp update-calendar
- clock timezone PST -8
- clock summer-time PDT recurring
- service timestamps debug datetime msec localtime
- service timestamps log datetime msec localtime
- "vlan 1,10,20,30,40,50"
- ip default-gateway 192.168.122.1
- "ip dhcp snooping vlan 100,101"
- no ip dhcp snooping information option
- ip dhcp snooping
- "ip arp inspection vlan 100,101"
- spanning-tree portfast bpduguard default
register: print_output
- debug: var=print_output
复制代码
三、照例实施记录
1.验证
1)sh run检索输出
最后一行下令并未出现在“资源”所给出的设置中,看环境决定后面是否再手动添加
2)sh spanning-tree输出
2.问题与处理
1)遇到问题
2)探索实验
1-实验添加( 参考:讲座问题)
[persistent_connection]
connect_timeout = 60
2-实验添加( 参考:讲座问答)
最后一行下令:interpreter_python = auto_legacy_silent
(此步后,三个互换机中的一个实施乐成!然后其他互换机上出现了【The error was: ansible.module_utils.connection.ConnectionError: timeout value 30 seconds reached while trying to send command:】)
3-实验添加( 参考:思科社区)
[persistent_connection]
command_timeout = 240
复制代码
(三个都显示乐成!!!但有两个互换机却存在下令丢失的问题)
3)终极解决(附代码及问题原因)
1-设置
如此设置
2-问题原因
下令丢失的原因找到:(讲座问答)
1.确保您的网络主动化节点能够以低延长 ping 到您的互换机,而且您的 GNS3vm CPU 使用率不是 100%。我发现 IOSvL2 15.2.4055 映像偶然会导致此问题(GNS3vm CPU 使用率高),我更喜欢使用此版本,vios_l2-adventerprisek9-m.03.2017.qcow2。干杯。
2.任何可以触发多个互换机之间的天生树重新收敛的剧本都可能导致毗连丢失,我喜欢如许。解决方法是使用 L3 OOB 管理网络,而不是 L2 OOB 管理网络。那,或者大大增加超时值来思量db或stp重新收敛。
(为进行以上解决方案的实验,在继承跟着教程检察被控主机设置时,发现下发的下令好像都完备地存在于互换机上,奇怪)
四、Ansible剧本相关知识
一个yml文件一个playbook,包罗多个任务(task),
Ansible 允许您在应用某些设置之前和应用某些设置之后执行一些操作。(见下例“after”)
关于设置内容与实施:
“这只是一个例子。您可能不想在装备上应用全部这些设置。”
“Ansible 使用多处理,因此您不会看到对多个装备进行设置会存在处理时间的巨大差异。”
“如果编写精确,多次运行剧本不会产生任何负面影响。”
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4