2.2. ネットワーク Ansible Playbook の実行


毎日特定のコマンドを実行する場合は、Playbook に保存し、ansible ではなく ansible-playbook を使用して実行できます。Playbook は、コマンドラインでフラグを使用して指定したパラメーターを多数保存し、コマンドラインで入力するようにできます。これには、Playbook とインベントリーファイルという 2 つのファイルが必要です。

前提条件

ここ から first_playbook.yml をダウンロードします。

Playbook は以下のようになります。

---

- name: Network Getting Started First Playbook
  connection: ansible.netcommon.network_cli
  gather_facts: false					        	
1

  hosts: all
  tasks:

    - name: Get config for VyOS devices
      vyos.vyos.vyos_facts:
        gather_subset: all

    - name: Display the config
      debug:
        msg: "The hostname is {{ ansible_net_hostname }} and the OS is {{ ansible_net_version }}"
Expand
ラベル説明

gather_facts

Playbook はこのネットワークコレクション内のプラットフォーム固有のモジュール (vyos.vyos.vyos_facts) によって提供されるファクトに依存しているため、ここでは Ansible のネイティブファクト収集 (ansible.builtin.setup) が無効になっています。

Playbook は、上記のコマンドラインから 7 つの値のうち 3 つを設定します。

  • グループ (ホスト: すべて)
  • 接続方法 (connection: ansible.netcommon.network_cli) と
  • モジュール (各タスク内)。

Playbook でこれらの値を設定すると、コマンドラインで値を省略できます。この Playbook では、設定出力を表示する 2 番目のタスクも追加します。

vyos.vyos.vyos_factsansible.builtin.setup などのコレクション固有のファクトモジュールを通じてシステムからファクトが収集されると、収集されたデータはコンソールに書き込まれるのではなく、今後のタスクで使用できるようにメモリーに保持されます。

モジュールが Playbook で実行されると、出力はコンソールに書き込まれるのではなく、今後のタスクで使用できるようにメモリーに保持されます。他のほとんどのモジュールでは、モジュールまたはタスクの出力を保存して再利用するには変数を明示的に登録する必要があります。

ファクトの詳細は、Ansiible Playbook リファレンスガイド の [Ansible ファクト] を参照してください。

次のデバッグタスクを使用すると、シェルで結果を確認できます。

手順

  1. 以下のコマンドで Playbook を実行します。

    ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook.yml

    Playbook には 2 つのタスクを含むプレイが 1 つ含まれており、次のような出力を生成します。

    $ ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook.yml
    
    PLAY [Network Getting Started First Playbook]
    ***************************************************************************************************************************
    
    TASK [Get config for VyOS devices]
    ***************************************************************************************************************************
    ok: [vyos.example.net]
    
    TASK [Display the config]
    ***************************************************************************************************************************
    ok: [vyos.example.net] => {
        "msg": "The hostname is vyos and the OS is VyOS 1.1.8"
    }
  2. デバイス設定を取得できるようになったので、Ansible を使用して更新してみることができます。
  3. ここ から first_playbook_ext.yml をダウンロードします。これは、最初の Playbook の拡張バージョンです。

    Playbook は以下のようになります。

    ---
    
    - name: Network Getting Started First Playbook Extended
      connection: ansible.netcommon.network_cli
      gather_facts: false
      hosts: all
      tasks:
    
        - name: Get config for VyOS devices
          vyos.vyos.vyos_facts:
            gather_subset: all
    
        - name: Display the config
          debug:
            msg: "The hostname is {{ ansible_net_hostname }} and the OS is {{ ansible_net_version }}"
    
        - name: Update the hostname
          vyos.vyos.vyos_config:
            backup: yes
            lines:
              - set system host-name vyos-changed
    
        - name: Get changed config for VyOS devices
          vyos.vyos.vyos_facts:
            gather_subset: all
    
        - name: Display the changed config
          debug:
            msg: "The new hostname is {{ ansible_net_hostname }} and the OS is {{ ansible_net_version }}"
  4. 拡張された最初の Playbook には、1 回のプレイに 5 つのタスクがあります。
  5. 以下のコマンドで Playbook を実行します。

    $ ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook_ext.yml
  6. 出力には、Ansible が設定に加えた変更が表示されます。

    $ ansible-playbook -i vyos.example.net, -u ansible -k -e ansible_network_os=vyos.vyos.vyos first_playbook_ext.yml
    
    PLAY [Network Getting Started First Playbook Extended]
    ************************************************************************************************************************************
    
    TASK [Get config for VyOS devices]
    **********************************************************************************************************************************
    ok: [vyos.example.net]
    
    TASK [Display the config]
    *************************************************************************************************************************************
    ok: [vyos.example.net] => {
        "msg": "The hostname is vyos and the OS is VyOS 1.1.8"
    }
    
    TASK [Update the hostname]
    *************************************************************************************************************************************
    changed: [vyos.example.net]
    
    TASK [Get changed config for VyOS devices]
    *************************************************************************************************************************************
    ok: [vyos.example.net]
    
    TASK [Display the changed config]
    *************************************************************************************************************************************
    ok: [vyos.example.net] => {
        "msg": "The new hostname is vyos-changed and the OS is VyOS 1.1.8"
    }
    
    PLAY RECAP
    ************************************************************************************************************************************
    vyos.example.net           : ok=5    changed=1    unreachable=0    failed=0
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る