Skip to content

Latest commit

 

History

History
337 lines (240 loc) · 15.2 KB

File metadata and controls

337 lines (240 loc) · 15.2 KB

演習 1 - ラボ環境の探索

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

目次

目的

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

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

  • ansible-navigator - Ansible オートメーションコンテンツを実行・開発するためのコマンドラインユーティリティとテキストベースのユーザーインターフェース(TUI)。- ansible-core - Ansible Automation Platform を支えるフレームワーク、言語、機能を提供する基本的な実行ファイルです。また、ansibleansible-playbookansible-doc などのさまざまなクリエートツールも含まれています。Ansible Coreは、無料でオープンソースのAnsibleを提供する上流のコミュニティと、Red Hatが提供する下流のエンタープライズオートメーション製品であるAnsible Automation Platformとの橋渡しの役割を果たします。- 実行環境
  • このワークショップでは特に取り上げません。なぜなら、ビルトインの Ansible 実行環境には、Red Hatがサポートするすべてのコレクションがすでに含まれており、このワークショップで使用するすべてのネットワークコレクションも含まれているからです。実行環境とは、Ansible の実行環境として利用できるコンテナイメージです。- ansible-builder - このワークショップでは特に取り上げませんが、ansible-builder は実行環境の構築プロセスを自動化するためのコマンドラインユーティリティです。

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

チャットでコミュニケーションしましょう

始める前に、slack にご参加ください! ansiblenetwork slack に参加するには、こちらをクリック。これにより、他のネットワーク自動化エンジニアとチャットしたり、ワークショップの終了後にサポートを受けたりすることができます。リンクが古くなっている場合は、Ansible テクニカルマーケティング にメールでご連絡ください。

Red Hat Ansible Automation

ガイド

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

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

    launch page

  • 接続する提供されたパスワードを入力します。

    login vs code

  • Visual Studio Code で network-workshop ディレクトリーを開きます。

    picture of file browser

  • playbook.yml をクリックしてコンテンツを表示します。

    picture of playbook

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

  • Visual Studio Code でターミナルを開きます。

    picture of new terminal

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

[student1@ansible-1 ~]$ cd ~/network-workshop/
[student1@ansible-1 network-workshop]$ pwd
/home/student1/network-workshop
[student1@ansible-1 network-workshop]$
  • ~ - このコンテキストでのチルダは /home/student1 のショートカットです
  • cd - ディレクトリーを変更する Linux コマンド
  • pwd - 作業ディレクトリーを印刷するための Linux コマンド。これにより、現在の作業ディレクトリーへのフルパスが表示されます。

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

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

$ ansible-navigator images

ansible-navigator images

注記

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

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

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/student1/lab_inventory/hosts

  execution-environment:
    image: registry.redhat.io/ansible-automation-platform-20-early-access/ee-supported-rhel8:2.0.0
    enabled: true
    container-engine: podman
    pull-policy: missing
    volume-mounts:
    - src: "/etc/ansible/"
      dest: "/etc/ansible/"

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

  • inventories: 使用されている Ansible インベントリーの場所を示します
  • execution-environment: デフォルトの実行環境が設定されている場所

設定可能なすべての 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=student1 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
  • rtr1 - Ansible が使用する名前。これは DNS に依存できますが、必須では必要ありません
  • ansible_host - ansible が使用する IP アドレス。設定されていない場合は、デフォルトで DNS になります
  • private_ip - この値は ansible によって予約されていないため、デフォルトで ホスト変数 になります。この変数は、Playbook で使用することも、完全に無視することもできます。

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

[cisco:vars]
ansible_user=ec2-user
ansible_network_os=ios
ansible_connection=network_cli
  • ansible_user - ユーザー ansible は、このホストへのログインに使用されます。設定されていない場合は、デフォルトで、プレイブックの実行元のユーザーになります。
  • ansible_network_os - この変数は、後で説明するように、play 定義内で network_cli 接続タイプを使用するときに必要です。
  • ansible_connection - この変数は、このグループの 接続プラグイン を設定します。これは、この特定のネットワークプラットフォームがサポートするものに応じて、netconfhttpapinetwork_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 を完了しました!

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

  • Visual Studio Code を使用してラボ環境に接続する方法
  • ansible-navigator を使用して 実行環境 を調べる方法
  • Ansible Navigator 設定 (ansible-navigator.yml) が保管される場所
  • インベントリーがコマンドライン演習用に保存されている場所
  • ansible-navigator TUI(テキストベースのユーザーインターフェース)の使用方法

次の演習

Click Here to return to the Ansible Network Automation Workshop