Да, в Ansible можно использовать разные виды управления сетевыми устройствами, включая коммутаторы Zyxel, такие как XGS2210. Поскольку они поддерживают SSH для управления, вы можете использовать Ansible для управления конфигурацией этих устройств. Однако, как вы заметили, могут возникнуть проблемы с аутентификацией, особенно если ваше устройство поддерживает только старые алгоритмы SSH, такие как `ssh-rsa`.
Вот некоторые шаги и советы, которые могут помочь вам устранить проблемы с подключением к коммутаторам Zyxel через Ansible:
1. **Использование дополнительных параметров SSH**: Вы можете передать дополнительные параметры SSH, такие как `PubkeyAcceptedAlgorithms` и `HostkeyAlgorithms`, через переменные Ansible. Попробуйте добавить следующий блок в ваш файл `inventory` или в `ansible.cfg`:
```ini
[defaults]
host_key_checking = False
[ssh_connection]
ssh_args = -o PubkeyAcceptedAlgorithms=+ssh-rsa -o HostkeyAlgorithms=+ssh-rsa
```
2. **Настройка `ansible_ssh_common_args`**: Вы также можете установить переменную `ansible_ssh_common_args` в вашем инвентаре или в `playbook`, чтобы передать параметры SSH напрямую. Например:
```yaml
- hosts: zyxel_switches
vars:
ansible_ssh_common_args: '-o PubkeyAcceptedAlgorithms=+ssh-rsa -o HostkeyAlgorithms=+ssh-rsa'
tasks:
- name: Test connectivity
ping:
```
Таким образом, переданные параметры SSH будут использоваться при подключении к устройствам.
3. **Обработка ошибок**: Следите за выводом ошибок Ansible. Например, для команды, которая выдает ошибку "Broken pipe", это может означать, что устройство закрыло соединение. Убедитесь, что конфигурация вашего коммутатора не ограничивает количество одновременных подключений или другую сетевую активность.
4. **Проверка конфигурации коммутаторов**: Иногда устройства могут иметь ограниченные настройки, такие как максимальное количество одновременных SSH-соединений или ограничения по времени ожидания. Проверьте документацию устройства и убедитесь, что эти параметры настроены должным образом.
5. **Модули Ansible для сетевых устройств**: Возможно, есть специфические модули для Zyxel или общие сетевые модули (`ios_config`, `net_cli` и т. д.), которые могут быть использованы. Если ваш коммутатор совместим с каким-либо из них, это может облегчить задачу.
6. **Логи и отладка**: Используйте отладку в Ansible, чтобы получить больше информации о том, что пошло не так. Запустите `ansible-playbook` с флагом `-vvv`, чтобы увидеть более детальные логи.
Если эти шаги не решают проблему, вы можете поискать обновления прошивки для вашего оборудования, которые могли бы устранить некоторые из ограничений или ошибок, с которыми вы сталкиваетесь.