SDN: Puppet en Cisco IOS

Puppet es una herramienta de gestión de la configuración de código abierto. Pertenece a a la empresa Puppet Labs y está escrito en Ruby y fue liberado bajo la Licencia Pública General de GNU (GPL) hasta la versión 2.7.0 y después bajo la licencia Apache 2.0. Puppet Labs y Puppet fueron fundados por Luke Kanies en el 2005.

Puppet Automate IT
Puppet Automate IT

Puppet es una herramienta de configuración distribuida de sistemas. Está diseñada para administrar la configuración de sistemas similares a Unix y a Microsoft Windows de forma declarativa. El usuario describe los recursos del sistema y sus estados utilizando el lenguaje declarativo que proporciona Puppet. Esta información es almacenada en archivos denominados manifiestos Puppet. Puppet descubre la información del sistema a través de una utilidad llamada Facter, y compila los manifiestos en un catálogo específico del sistema que contiene los recursos y la dependencia de dichos recursos, estos catálogos son ejecutados en los sistemas de destino.

Puppet se compone de un lenguaje declarativo para describir la configuración del sistema, que puede ser aplicado directamente en el sistema, o compilado en un catálogo y distribuido al sistema de destino a través de paradigma cliente-servidor (usando un Interfaz de programación de aplicaciones de Transferencia de Estado Representacional REST API), y el agente utiliza proveedores específicos del sistema para aplicar el recurso especificado en los “manifiests”. La capa de abstracción de recursos permite a los administradores describir la configuración en términos de alto nivel, tales como usuarios, servicios y paquetes sin necesidad de especificar los comandos específicos del sistema operativo (como rpm, yum, apt).

Puppet, además de estar construido para ser multiplataforma Linux (incluyendo RHEL, CentOS, Fedora, Debian, Mandriva, Ubuntu y SUSE) soporta IOS de Cisco, JunOS de Juniper y puede ser integrado en la suite BIG-IP de F5.

CISCO IOS

A partir de la versión de puppet 2.7.0 se incluye una nueva aplicación llamada puppet device. Esta aplicación ha de correr en un nodo puppet que actúa como proxy entre el master de puppet y el dispositivo Cisco:

Con esta arquitectura se pueden gestionar dispositivos Cisco IOS a través del lenguaje declarativo de puppet. En primer lugar, es necesario declarar los dispositivos a que tiene acceso el master (/etc/puppet/device.conf en el nodo en correo puppet device):

[device1 certname]

type cisco url ssh://puppet:letmein@device.domain.com/

[device2 certname]

type cisco url telnet://puppet:letmein@router.domain.com/?enable=enablepassword

La configuración de los dispositivos se coloca en el catálogo de funciones del master de puppet, y tiene una apariencia similar a:

node “c2950.domain.com” {

Interface {

duplex => auto,     speed => auto

}

interface {

“FastEthernet 0/1”:       description => “–> to end-user workstation”,       mode => access,       native_vlan => 1000

}

interface {

# abbreviated interface name are supported     “Fa0/17”:       description => “–> to web server (channel 1)”,       mode => access,       etherchannel => 1

}

interface {

“FastEthernet0/18”:       description => “–> to web server (channel 1)”,       mode => access,       etherchannel => 1

}

interface {

“GigabitEthernet0/1”:       description => “–> to upstream router”,       mode => trunk,      allowed_trunk_vlans => “99, 1000”

}

}

 

Fuente: https://puppetlabs.com/blog/puppet-network-device-management

 

Seguiremos con otros dispositivos de red…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *