0Pricing
Ansible Academy · レッスン

cli_command によるネットワークデバイスの自動化

スイッチやルーターに設定を適用します。

「cli_command によるネットワークデバイスの自動化」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。

対象はサーバーだけではない

Ansible は Linux ホストだけでなく、ルーターやスイッチも管理できます。ネットワーク自動化では、SSH または API を通じてデバイスに設定を適用します。🌐

ネットワークデバイスが異なる理由

スイッチには通常 Python がないため、Ansible はモジュールをコピーできません。network_cli 接続を使うと、デバイスの CLI を通じてリモートでコマンドを実行できます。

vars:
  ansible_connection: ansible.netcommon.network_cli
  ansible_network_os: cisco.ios.ios

cli_command を知る

cli_command モジュールは、デバイスのプロンプトで自分が入力する場合と同じように、ネットワークデバイスへ生のコマンドを送り、その出力を返します。

- name: Show version
  ansible.netcommon.cli_command:
    command: show version

出力を取得する

register を使うと、デバイスから返された内容を保存できます。結果は stdout に格納され、後で確認や解析ができます。

- name: Read running config
  ansible.netcommon.cli_command:
    command: show running-config
  register: cfg

設定コマンドを送信する

設定を変更するには、デバイスを config モードにする必要があります。cli_config が、そのモードへの移行と終了を安全に処理します。

- name: Set hostname
  ansible.netcommon.cli_config:
    config: hostname core-sw01

対話型プロンプトに応答する

確認を求めるコマンドもあります。cli_command では prompt と answer のペアを使って自動的に応答できるため、プレイが停止しません。

- ansible.netcommon.cli_command:
    command: reload
    prompt:
      - Proceed with reload
    answer:
      - 'y'

設計上ベンダーに依存しない

同じ cli_command タスクを Cisco、Juniper、Arista で利用できます。変更するのは ansible_network_os だけなので、書き方は一貫したままです。

可能な場合はプラットフォームモジュールを使う

構造化された冪等な変更には、cisco.ios.ios_config のようなモジュールを優先します。適切な専用モジュールがない場合に cli_command を使います。

- cisco.ios.ios_config:
    lines:
      - description uplink to core
    parents: interface GigabitEthernet0/1

SSH で認証する

ネットワークデバイスも SSH で認証します。ansible_user と、vault で管理したパスワードまたはキーを設定すると、プレイからスムーズにログインできます。

vars:
  ansible_user: netadmin
  ansible_password: "{{ vault_net_pass }}"

実行中の設定を保存する

変更は保存するまで running config に存在します。write コマンドを実行して、デバイスを再起動しても設定が維持されるようにします。💾

- ansible.netcommon.cli_command:
    command: write memory

これらのモジュールの提供元

cli_command は ansible.netcommon コレクションに含まれています。ネットワークのプレイブックで使う前に、Galaxy からインストールしてください。

ansible-galaxy collection install ansible.netcommon

確認問題

スイッチとの通信方法を確認しましょう。

振り返り

cli_command モジュールを network_cli 接続経由で使うと、Ansible から SSH でスイッチやルーター上のコマンドを実行し、結果を保存できます。✅

よくある質問

「cli_command によるネットワークデバイスの自動化」レッスンは無料ですか?

はい。「cli_command によるネットワークデバイスの自動化」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。

「cli_command によるネットワークデバイスの自動化」で何を学びますか?

スイッチやルーターに設定を適用します。 ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ansible Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAnsible Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「cli_command によるネットワークデバイスの自動化」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAnsible Academyレッスンでコードを書いて実行できますか?

はい。すべてのAnsible Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. cli_command によるネットワークデバイスの自動化
  2. オーケストレーションのための delegate_to と run_once
  3. Web・App・DB 層を連携させる
  4. Load Balancer からの切り離しと再有効化
← Ansible Academyに戻る