Operación y mantenimiento Junior Series-ansible y cisco (1)
Jóvenes de Operación y Mantenimiento de Sao Nian
ansible y cisco
1. Serie de artículos
2. Requisito previo
3. Introducción a ansible
4. Instalar ansible
5. Usar ansible para administrar un solo conmutador
1) Diagrama de topología
2) Configuración
3) Comandos ad hoc
6. Usar ansible para administrar varios conmutadores
1. Descripción de la serie de artículos
Esta serie de artículos habla principalmente sobre cómo usar ansible para administrar y configurar los enrutadores de conmutadores cisco en lotes. Por supuesto, esta serie de artículos también se dividirá en 2-3 artículos, que van desde un solo dispositivo hasta varios dispositivos, desde ningún libro de jugadas hasta un libro de jugadas.
2. Requisitos previos
- Conocimiento CCNA
- Entendiendo YAML
- Comprender el uso de Linux
Tres, introducción ansible
Ansible es una herramienta de operación y mantenimiento automatizada basada en Python. Los principales módulos de Python utilizados son paramiko, del que hablamos antes, y jinja2, del que no hemos hablado. Ansible proporciona una forma más sencilla de administrar grandes cantidades de equipos. Si los lectores necesitan explicaciones más específicas, por favor, Baidu usted mismo.
Cuarto, instale ansible
Centos usa yum para instalar ansible
1[root@yunwei ~]# yum install ansible -y
2Dependencies Resolved
3
4=============================================================================================================================================================================================
5 Package Arch Version Repository Size
6=============================================================================================================================================================================================
7Installing:
8 ansible noarch 2.4.2.0-2.el7 extras 7.6 M
9Installing for dependencies:
10 PyYAML x86_64 3.10-11.el7 base 153 k
11 libyaml x86_64 0.1.4-11.el7_0 base 55 k
12 python-babel noarch 0.9.6-8.el7 base 1.4 M
13 python-cffi x86_64 1.6.0-5.el7 base 218 k
14 python-enum34 noarch 1.0.4-1.el7 base 52 k
15 python-httplib2 noarch 0.9.2-1.el7 extras 115 k
16 python-idna noarch 2.4-1.el7 base 94 k
17 python-jinja2 noarch 2.7.2-3.el7_6 updates 518 k
18 python-paramiko noarch 2.1.1-9.el7 updates 269 k
19 python-passlib noarch 1.6.5-2.el7 extras 488 k
20 python-ply noarch 3.4-11.el7 base 123 k
21 python-pycparser noarch 2.14-1.el7 base 104 k
22 python-six noarch 1.9.0-2.el7 base 29 k
23 python2-cryptography x86_64 1.7.2-2.el7 base 502 k
24 python2-jmespath noarch 0.9.0-3.el7 extras 39 k
25 python2-pyasn1 noarch 0.1.9-7.el7 base 100 k
26 sshpass x86_64 1.06-2.el7 extras 21 k
27
28Transaction Summary
29=============================================================================================================================================================================================
30Install 1 Package (+17 Dependent packages)
Puede ver que hay muchos módulos de Python instalados, como paramiko y jinja2
- Una vez completada la instalación, el directorio / etc / ansible / se generará automáticamente
1[root@yunwei ~]# ls /etc/ansible/
2ansible.cfg hosts roles
3[root@yunwei ~]#
-
ansible.cfg
ansible.cfg es el archivo de configuración de ansible.La configuración predeterminada de ansible está en él y se puede modificar.
- El
archivo de hosts es el nombre de host / archivo IP, este archivo especifica el alcance de ansible.
Cinco, use ansible para administrar un solo interruptor
1) Diagrama topológico
2) Configuración
- Modificar el archivo de configuración ansible
Modificar el archivo de configuración ansible, eliminar la siguiente línea comentario, esta línea significa que al iniciar sesión en ssh, es para verificar si hay una clave para la IP en el archivo known_hosts. El valor predeterminado es verificar. Si no existe, el inicio de sesión falla. En este momento, puede ssh manualmente una vez, y ssh agregará automáticamente la clave al archivo known_hosts, o descomentará para evitar que verifique el archivo.
1host_key_checking = False
- Limpiar y configurar el archivo de hosts
Solo el host existe en el archivo de hosts, podemos operar en este host.
1[root@yunwei ansible]# echo > hosts
2[root@yunwei ansible]# cat hosts
3[cisco] # 组名
4192.168.108.251 # 组成员
5192.168.108.252
6192.168.108.253
7[centos]
8192.168.100.225
9[root@yunwei ansible]#
- Use el comando ansible para verificar si el host es accesible (nota: el IOS en mi GNS no es compatible con el módulo de ping)
1[root@yunwei ansible]# ansible 192.168.100.225 -m ping -u root -k
2SSH password:
3192.168.100.225 | SUCCESS => {
4 "changed": false,
5 "ping": "pong"
6}
- Explicación de parámetros
- m: especifique el módulo que se utilizará, todos los módulos de red se pueden ver aquí
- u: especifique el nombre de usuario de inicio de sesión
- k: introduzca la contraseña de forma interactiva
3) comando ad hoc
El comando ad hoc generalmente solo ejecuta un comando y tiene una única función.
- Utilice ansible para consultar la información vlan del conmutador
1[root@yunwei ansible]# ansible 192.168.108.251 -m raw -a "show vlan" -u cisco -k
2SSH password:
3192.168.108.251 | SUCCESS | rc=0 >>
4
5
6VLAN Name Status Ports
7---- -------------------------------- --------- -------------------------------
81 default active Et0/0, Et0/2, Et0/3, Et1/0
9 Et1/1, Et1/2, Et1/3, Et2/0
10 Et2/1, Et2/2, Et2/3, Et3/0
11 Et3/1, Et3/2, Et3/3
1210 V10 active
1320 V20 active
1430 V30 active
1540 V40 active
1650 V50 active
1760 V60 active
1870 V70 active
1980 V80 active
2090 V90 active
21100 V100 active
221002 fddi-default act/unsup
231003 token-ring-default act/unsup
241004 fddinet-default act/unsup
251005 trnet-default act/unsup
26
27VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2
28---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------
291 enet 100001 1500 - - - - - 0 0
3010 enet 100010 1500 - - - - - 0 0
3120 enet 100020 1500 - - - - - 0 0
3230 enet 100030 1500 - - - - - 0 0
3340 enet 100040 1500 - - - - - 0 0
3450 enet 100050 1500 - - - - - 0 0
3560 enet 100060 1500 - - - - - 0 0
3670 enet 100070 1500 - - - - - 0 0
3780 enet 100080 1500 - - - - - 0 0
3890 enet 100090 1500 - - - - - 0 0
39100 enet 100100 1500 - - - - - 0 0
401002 fddi 101002 1500 - - - - - 0 0
411003 tr 101003 1500 - - - - - 0 0
421004 fdnet 101004 1500 - - - ieee - 0 0
431005 trnet 101005 1500 - - - ibm - 0 0
44
45Remote SPAN VLANs
46------------------------------------------------------------------------------
47
48
49Primary Secondary Type Ports
50------- --------- ----------------- ------------------------------------------
51Shared connection to 192.168.108.251 closed.
52
53
54[root@yunwei ansible]#
GIF
- Explicación de parámetros:
- m: Especifique los parámetros, la explicación oficial en bruto es la siguiente: Otra es hablar con cualquier dispositivo como enrutadores que no tengan ningún Python instalado. En cualquier otro caso, usar el módulo de comandos o shell es mucho más apropiado. Un dispositivo con Python instalado para comunicarse.
- a: Ingrese el comando
Seis, use ansible para administrar varios conmutadores
¿Recuerda nuestro archivo de hosts? Escribimos las IP que necesitamos en él y las dividimos en grupos, de hecho, podemos operar directamente en los grupos.
- archivo hosts
1[root@yunwei ansible]# cat hosts
2[cisco-1]
3192.168.108.251
4[cisco-2]
5192.168.108.252
6192.168.108.253
7[centos]
8192.168.100.225
- Operar
en el grupo Para operar en el grupo, simplemente agregue el nombre del grupo después de ansible.
1[root@yunwei ansible]# ansible cisco-2 -m raw -a 'show clock' -u cisco -k
2SSH password:
3192.168.108.252 | SUCCESS | rc=0 >>
4
5*05:45:41.908 UTC Wed Jun 12 2019Shared connection to 192.168.108.252 closed.
6
7
8192.168.108.253 | SUCCESS | rc=0 >>
9
10*05:45:42.139 UTC Wed Jun 12 2019Warning: Permanently added '192.168.108.253' (RSA) to the list of known hosts.
11Shared connection to 192.168.108.253 closed.
12
13[root@yunwei ansible]#
Se puede ver que las dos direcciones IP bajo el grupo cisco-2 del destacamento funcionaron y el resto no ejecutó comandos.