Junos OS プラットフォームのオプション¶
Juniper Junos OS は、複数の接続に対応します。このページには、各接続が Ansible でどのように機能するか、およびその使用方法に関する詳細が記載されています。
トピック
利用可能な接続¶
レガシー Playbook の場合、Ansible はすべての JUNOS モジュールで ansible_connection=local
に対応します。できるだけ早期に ansible_connection=netconf
または ansible_connection=network_cli
を使用するモダナイゼーションが推奨されます。
Ansible での CLI の使用¶
CLI インベントリーの例 [junos:vars]
¶
[junos:vars]
ansible_connection=network_cli
ansible_network_os=junos
ansible_user=myuser
ansible_password=!vault...
ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
- SSH キー (ssh-agent を含む) を使用している場合は、
ansible_password
設定を削除できます。 - (bastion/ジャンプホスト を経由せず) ホストに直接アクセスしている場合は、
ansible_ssh_common_args
設定を削除できます。 - bastion/ジャンプホスト 経由でホストにアクセスしている場合は、SSH パスワードを
ProxyCommand
ディレクティブに含めることができません。(ps
出力などで) シークレットの漏えいを防ぐために、SSH は環境変数によるパスワードの提供に対応していません。
Ansible での NETCONF の使用¶
NETCONF の有効化¶
NETCONF を使用してスイッチに接続する前に、以下を行う必要があります。
pip install ncclient
を使用して、コントロールノードに python パッケージncclient
をインストールします。- Junos OS デバイスの netconf の有効化
Ansible 経由で新規スイッチで NETCONF を有効にするには、CLI 接続で junos_netconf
モジュールを使用します。上記の CLI の例と同様にプラットフォームレベルの変数を設定し、以下のような Playbook のタスクを実行します。
- name:Enable NETCONF
connection: network_cli
junos_netconf:
when: ansible_network_os == 'junos'
NETCONF を有効にしたら、変数を変更して NETCONF 接続を使用します。
NETCONF インベントリーの例 [junos:vars]
¶
[junos:vars]
ansible_connection=netconf
ansible_network_os=junos
ansible_user=myuser
ansible_password=!vault |
ansible_ssh_common_args='-o ProxyCommand="ssh -W %h:%p -q bastion01"'
NETCONF タスクの例¶
- name:Backup current switch config (junos)
junos_config:
backup: yes
register: backup_junos_location
when: ansible_network_os == 'junos'
Warning
Never store passwords in plain text. We recommend using SSH keys to authenticate SSH connections. Ansible supports ssh-agent to manage your SSH keys. If you must use passwords to authenticate SSH connections, we recommend encrypting them with Ansible Vault.