oliverl_21.ios_config

ansible-role-ios_config

Rola Ansible do Konfiguracji Cisco IOS

Aktualne Zadania:

  • Definicja Serwera Radius
  • Globalne Ustawienia ISE/802.1x
  • Konfiguracja Sensora Urządzenia
  • Konfiguracja Interfejsu 802.1x (częściowo, brakuje logiki wyboru interfejsu)
  • Workflow PnP ZTP

Funkcje:

  • Połączenie przez Bastion/Jumphost w oparciu o Zmienną Inwentarza
  • Przejście z Paramiko na libssh

Do Zrobienia:

Wymagania

Definicja Serwera Radius:

  • Adres IP
  • Nazwa hosta
  • Klucz Radius
  • Interfejs Źródłowy Radius

Definicja Interfejsu

  • VLAN dostępu
  • VLAN zapasowy (opcjonalnie)
  • VLAN głosowy (opcjonalnie)
  • tryb niskiego wpływu (opcjonalnie)

Przejście na LibSSH

Referencja

Użycie modułu libssh (aktualnie tylko dla systemów Linux)

pip3 install ansible-pylibssh

Przejdź na libssh dla tej roli

# roles/ios_config/default.yml
ansible_network_cli_ssh_type: libssh

Dodaj poniższe do ansible.cfg, aby aktywować globalnie

# ansible.cfg
[persistent_connection]
ssh_type = libssh

Połączenie Bastion/Jumphost

Aby użyć Bastion/Jumphost do połączenia z urządzeniami sieciowymi, utwórz:

# inventory/group_vars/all/ansible_ssh.yml
ansible_ssh_proxy_command: >-
  {% if bastion_host is defined and bastion_host != '' %}
  ssh {{ hostvars[bastion_host]['ansible_user'] }}@{{ hostvars[bastion_host]['ansible_host'] }}
  -o Port={{ hostvars[bastion_host]['ansible_ssh_port'] | default(22) }}
  -W %h:%p
  {% endif %}

ansible_ssh_common_args: >-
  {% if bastion_host is defined and bastion_host != '' %}
  -o ProxyCommand="{{ ansible_ssh_proxy_command }}"
  {% endif %}

# Domyślny bastion dla wszystkich hostów
bastion_host: ""

Dodaj bastion_host: "twoj-host" do zmiennych hostu/grupy w inwentarzu, gdzie powinien być użyty Jumphost. Jumphost musi być zdefiniowany w inwentarzu.

Przykład

# inventory/group_vars/ios.yml
---
ansible_user: admin
ansible_network_os: ios
bastion_host: tux01
# inventory/<plik_inwentarza>
[debian]
tux01 ansible_host=tux01.example.org

[debian:vars]
ansibler_user=tux
ansible_become_method=sudo

Zmienne Roli

  • fact_gather_enabled
    • domyślnie true
  • push_config
    • definiuje, czy konfiguracja powinna być przesyłana do urządzenia, czy różnice w konfiguracji powinny być przechowywane lokalnie
  • ios_int_config_enabled
    • włącza konfigurację interfejsu
  • ios_sensor_config_enabled
    • włącza konfigurację Sensora Urządzeń IOS
  • ios_1xglobal_config_enabled
    • włącza globalną konfigurację ISE/802.1x IOS
  • int_global_config_enabled
    • włącza konfigurację interfejsu 802.1x
  • pnp_config_enabled
    • włącza generację konfiguracji PnP, należy używać z fact_gather_enabled: false

Zależności

Role: brak

Kolekcja:

  • cisco.ios
  • ansible.netcommon

Przykładowy Playbook

Do zrobienia

- name: przykład
  hosts: csw02
  gather_facts: false
  connection: network_cli
  roles:
    - { role: ios_config, ios_config_enabled: false, ios_sensor_config_enabled: true, ios_1xglobal_config_enabled: true }

Licencja

GPL-3.0-or-later

Informacje o Autorze

oliverl-21

O projekcie

Cisco IOS Configuration role

Zainstaluj
ansible-galaxy install oliverl_21.ios_config
Licencja
Unknown
Pobrania
103
Właściciel
nothing to tell