Donc j'utilise Ansible au jour le jour pour gérer nos instances AWS et maintenant je teste la gestion de notre infrastructure réseau (je suis un gars du réseau, qui peut faire certaines choses d'administration système) mais ont rencontré un problème que je n'arrive pas à contourner.Impossible d'ouvrir le shell: Ansible v2.3.1.0
J'ai ici un Cisco 3750G sur lequel j'ai activé SSH. Je peux ssh avec l'utilisateur spécifié et exécuter toutes les commandes qui échouent dans mon playbook.
Je suis en mesure d'utiliser le module ping avec succès de Ansible à ce commutateur, mais chaque fois que j'essaie d'utiliser les modules ios_commands
ou ios_configs
il échoue avec l'erreur unable to open shell
. J'utilise Ansible v2.3.1.0 qui a des connexions persistantes comme une nouvelle fonctionnalité. J'ai fait quelques recherches sur Google et j'ai trouvé quelques personnes qui ont eu ce problème et l'ont réparé de différentes façons (qui n'ont pas fonctionné pour moi).
choses que j'ai essayé:
- les variables de Précisés connexion dans un fichier
secrets.yaml
. Puis spécifié leprovider
en utilisant mon nom d'utilisateur, auth_pass, et le mot de passe dans le fichier secrets. - Modification du paramètre
ansible_connection
-local
etssh
(ni travaillé) - host_key_checking désactivé pour l'instant dans mon dossier
ansible.cfg
Après cela ne fonctionnait pas, j'ai essayé: - créer manuellement les variables de connexion du fournisseur dans la Playbook lui-même. - d'occasion 2 modules différents ios_commands
et ios_configs
(il y a une
différence entre les 2 modules, mais pour mon utilisation à la fois doit agir de la même)
https://docs.ansible.com/ansible/network_debug_troubleshooting.html#category-unable-to-open-shell Cette Etats doc que l'erreur que je vois est normalement un problème d'authentification mais cela ne semble pas être le cas ici.
Quelqu'un d'autre est-il confronté à ce problème? J'ai un fichier journal avec la sortie de débogage de mon exécution playbook si quelqu'un veut voir cela. J'ai posté mon exemple de playbook ci-dessous pour examen.
hôtes: commutateur gather_facts: pas de connexion : locales tâches:
- name: GATHER CREDENTIALS
include_vars: secrets.yaml
- name: DEFINE CONNECTION PROVIDER
set_fact:
provider:
username: "{{ creds['username'] }}"
password: " {{ creds['password'] }}"
auth_pass: "{{ creds['auth_pass'] }}"
- name: Show interfaces
ios_config:
provider: "{{ provider }}"
commands:
- show ip int br
register: cisco_int
- debug: var=cisco_int.stdout_lines
Donc, je n'ai toujours pas réussi à faire fonctionner cette version d'Ansible. Je vais essayer d'installer une version plus ancienne (sans la fonction de connexion persistante) et voir si cela fonctionne. –