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:
- Zaufany Interfejs Snooping DHCP
- Może konfiguracja ISE (ND, NDG)
- Integracja z:
- Udoskonalenie Workflow PnP ZTP
- I więcej ogólnych zadań
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
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
Zainstaluj
ansible-galaxy install oliverl_21.ios_config
Licencja
Unknown
Pobrania
103
Właściciel
nothing to tell