私はAWSインスタンスを管理するために日常的にアウェアネスを使用しています。今は私たちのネットワークインフラストラクチャの管理をテストしています。いくつかのシステム管理のもの)が、私は周りを回っているように見えないという問題に遭遇しました。シェルを開くことができません:Ansible v2.3.1.0
ここでは、Cisco 3750GをSSHを有効にしています。私は指定されたユーザーと一緒にsshをして、私のプレイブックで失敗しているすべてのコマンドを実行することができます。
私はこのスイッチにAnsibleから正常にpingモジュールを使用できますが、ios_commands
またはios_configs
モジュールを使用しようとすると、エラーunable to open shell
で失敗します。
私は新しい機能として永続的な接続を持つAnsible v2.3.1.0を使用しています。いくつかのグーグル・グーグルを終了し、この問題を抱えていて、それをさまざまな方法で修正した少数の人々を見つけました(どちらも私のために働いていませんでした)。私が試した
もの:
- は
secrets.yaml
ファイルの接続変数を指定しました。 次に、私のユーザー名、auth_pass、およびパスワード を秘密ファイルに使用してprovider
を指定しました。 - 私が試したことのdidntの仕事の後、私の
ansible.cfg
ファイル
で(どちらも が働いていない)local
とssh
今の
ansible_connection
設定を変更する: - 手動でプロバイダ接続変数を作成しますプレイブック - 使用される2つの異なるモジュールios_commands
とios_configs
https://docs.ansible.com/ansible/network_debug_troubleshooting.html#category-unable-to-open-shell このドキュメントの状態を私は見ているエラーは、通常、認証の問題であること(2つのモジュール間が、両方が同じ行動しなければならない私の使用のためのいくつかの
違いがあります)しかし、それはここではそうではないようです。
誰かがこれにぶつかり、洞察力を持っていますか? 誰かが見たい場合は、私のプレイブックからのデバッグ出力を持つログファイルがあります。 私は以下のサンプルのプレイブックをレビューのために投稿しました。
ホスト:スイッチ gather_facts:いいえ 接続:ローカル タスク:私は最終的にここに起こっていたことを考え出し
- 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
それで、私はまだこのバージョンのAnsibleを使ってこれを動作させることができませんでした。私は古いバージョンをインストールしてみましょう(永続的な接続機能はありません)。 –