cli_command によるネットワークデバイスの自動化
スイッチやルーターに設定を適用します。
「cli_command によるネットワークデバイスの自動化」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
対象はサーバーだけではない
Ansible は Linux ホストだけでなく、ルーターやスイッチも管理できます。ネットワーク自動化では、SSH または API を通じてデバイスに設定を適用します。🌐
ネットワークデバイスが異なる理由
スイッチには通常 Python がないため、Ansible はモジュールをコピーできません。network_cli 接続を使うと、デバイスの CLI を通じてリモートでコマンドを実行できます。
vars:
ansible_connection: ansible.netcommon.network_cli
ansible_network_os: cisco.ios.ioscli_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/1SSH で認証する
ネットワークデバイスも 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チューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「cli_command によるネットワークデバイスの自動化」で何を学びますか?
スイッチやルーターに設定を適用します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「cli_command によるネットワークデバイスの自動化」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- cli_command によるネットワークデバイスの自動化
- オーケストレーションのための delegate_to と run_once
- Web・App・DB 層を連携させる
- Load Balancer からの切り離しと再有効化