演習 1 - ラボ環境の探索

他の言語でもお読みいただけます: uk Englishjapan 日本語, Español Español

目次

目的

ラボ環境を調べて理解します。

この最初のいくつかのラボ演は、Ansible Automation Platform のコマンドラインユーティリティーを使用します。これには、以下が含まれます。

Ansible Automation Platformの新しいコンポーネントに関する情報が必要な場合は、このランディングページをブックマークしてください https://red.ht/AAP-20

Join our community forum!

Before you get started, please join us on https://forum.ansible.com/. This will allow you to get Ansible help after the workshops concludes.

Red Hat Ansible
Automation

ガイド

ステップ 1 - VS Code を使用した接続

ワークショップの演習には、Visual Studio Codeの使用が強く推奨されます。Visual Studio Codeは以下を提供します。
  • ファイルブラウザ
  • 構文強調表示の機能付きテキストエディタ
  • ブラウザ内ターミナル
バックアップとして、あるいはVisual Studio Codeでは不十分な場合には、SSHによる直接アクセスが可能です。さらなる説明が必要な場合は、短い YouTube ビデオが用意されています。 Ansible Workshops - ワークベンチ環境へのアクセス

ステップ 2 - ターミナルの使用

Ansible コントロールノードターミナルで network-workshop ディレクトリーに移動します。

[student@ansible-1 ~]$ cd ~/network-workshop/
[student@ansible-1 network-workshop]$ pwd
/home/student/network-workshop
[student@ansible-1 network-workshop]$

ステップ 3 - 実行環境の検証

ansible-navigator 引数を指定して images コマンドを実行し、コントロールノードに設定された実行環境を確認します。

$ ansible-navigator images

ansible-navigator images

注記

表示される出力は、上記の出力とは異なる場合があります

このコマンドは、現在インストールされているすべての実行環境(略してEE)に関する情報を提供します。対応する番号を押すことで、EE を調べることができます。例えば、上記の例で 0 を押すと、network-ee の実行環境が表示されます。

ee メインメニュー

2Ansible version and collections を選択すると、その特定の EE にインストールされたすべての Ansible Collections と、ansible-core のバージョンが表示されます。

ee info

ステップ 4 - ansible-navigator 設定の検証

Visual Studio Code を使用して ansible-navigator.yml ファイルを開くか、cat コマンドを使用してファイルの内容を表示します。このファイルはホームディレクトリーにあります。

$ cat ~/.ansible-navigator.yml
---
ansible-navigator:
  ansible:
    inventories:
    - /home/student/lab_inventory/hosts

  execution-environment:
    image: quay.io/acme_corp/network-ee:latest
    enabled: true
    container-engine: podman
    pull-policy: missing
    volume-mounts:
    - src: "/etc/ansible/"
      dest: "/etc/ansible/"

ansible-navigator.yml ファイル内の次のパラメータに注意してください。

設定可能なすべての knob の詳細な一覧については、ドキュメント を参照してください。

ステップ 5 - インベントリーの検証

playbook 内の play の範囲は、Ansible inventory 内で宣言されたホストのグループに制限されます。Ansible は複数の インベントリー タイプに対応しています。インベントリーは、その中で定義されたホストのコレクションが含まれるシンプルなファイルや、Playbook を実行するデバイスのリストを生成する動的スクリプト (CMDBバックエンドのクエリーを行うものなど) が考えられます。

このラボでは、ini 形式で記述されたファイルベースのインベントリーを操作します。Visual Studio Code を使用して ~/lab_inventory/hosts ファイルを開くか、cat コマンドを使用してファイルの内容を表示します。

$ cat ~/lab_inventory/hosts
[all:vars]
ansible_ssh_private_key_file=~/.ssh/aws-private.pem

[routers:children]
cisco
juniper
arista

[cisco]
rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86
[arista]
rtr2 ansible_host=18.188.194.126 private_ip=172.17.158.197
rtr4 ansible_host=18.221.5.35 private_ip=172.17.8.111
[juniper]
rtr3 ansible_host=3.14.132.20 private_ip=172.16.73.175

[cisco:vars]
ansible_user=ec2-user
ansible_network_os=ios
ansible_connection=network_cli

[juniper:vars]
ansible_user=ec2-user
ansible_network_os=junos
ansible_connection=netconf

[arista:vars]
ansible_user=ec2-user
ansible_network_os=eos
ansible_connection=network_cli
ansible_become=true
ansible_become_method=enable

[dc1]
rtr1
rtr3

[dc2]
rtr2
rtr4

[control]
ansible ansible_host=13.58.149.157 ansible_user=student private_ip=172.16.240.184

ステップ 6 - インベントリーについて

上記の出力では、すべての [ ] がグループを定義しています。たとえば、[dc1] は、ホスト rtr1rtr3 を含むグループです。グループは ネスト することもできます。グループ [routers] はグループ [cisco] の親グループです

親グループは、children ディレクティブを使用して宣言されます。ネストされたグループがあると、より具体的な値を変数に柔軟に割り当てることができます。

グループとホストには、変数を関連付けることができます。

注記:

** all ** というグループは常に存在し、インベントリ内で定義されたすべてのグループとホストが含まれます。

ホスト変数は、ホスト自体と同じ行で定義できます。たとえば、ホスト rtr1 の場合:

rtr1 ansible_host=18.222.121.247 private_ip=172.16.129.86

グループ変数グループは、vars ディレクティブを使用して宣言されます。グループを持つことで、共通の変数を複数のホストに柔軟に割り当てることができます。[group_name:vars] セクションで複数のグループ変数を定義できます。たとえば、グループ cisco を見てください。

[cisco:vars]
ansible_user=ec2-user
ansible_network_os=ios
ansible_connection=network_cli

ステップ 7 - ansible-navigator を使用したインベントリーの探索

ansible-navigator TUI を使用してインベントリーを調べることもできます。

ansible-navigator inventory コマンドを実行して、TUI にインベントリーを取り込みます。

ansible-navigator tui

キーボードで 0 または 1 を押すと、それぞれグループまたはホストが開きます。

ansible-navigator groups

Esc キーを押して、上のレベルに移動することができます。または、個々のホストにズームできます。

ansible-navigator host

ステップ 8 - ネットワークデバイスへの接続

ラボ環境には、rtr1、rtr2、rtr3、rtr4 という名前の 4 つのルーターがあります。ネットワークの図は、ネットワーク自動化ワークショップの目次 でいつでも利用できます。SSH 設定ファイル (~/.ssh/config) はすでにコントロールノードにセットアップされています。したがって、コントロールノードから任意のルーターにログインせずに SSH で接続できます。

たとえば、Ansible コントロールノードから rtr1 に接続するには、次のように入力します。

$ ssh rtr1

例:

$ ssh rtr1
Warning: Permanently added 'rtr1,35.175.115.246' (RSA) to the list of known hosts.



rtr1#show ver
Cisco IOS XE Software, Version 16.09.02

完了

ラボ演習 1 を完了しました!

以下の内容について理解できるようになりました。


次の演習

Ansible Network Automation ワークショップに戻る