Skip to content

Latest commit

 

History

History
182 lines (132 loc) · 8.72 KB

File metadata and controls

182 lines (132 loc) · 8.72 KB

ワークショップ演習 - Ansible の基本

他の言語でもお読みいただけます:
uk Englishjapan日本語brazil Portugues do Brasilfrance FrançaiseEspañol Español

目次

目的

この演習では、最新の Ansible コマンドラインユーティリティーansible-navigator を使用して、インベントリーファイルの操作方法や、サポートが必要な場合のモジュールの一覧表示について学びます。その目的はansible-navigator がどのように機能するか、また、Ansible の経験を豊かにするためにどのように使用できるかを理解することです。

この演習の内容

  • インベントリーファイルの使用
  • ini 形式のインベントリーファイルの場所の確認と理解
  • モジュールの一覧表示と、モジュール使用の際のヘルプの利用

ガイド

ステップ 1 - インベントリーの操作

インベントリーファイルとは、コントロールマシンが管理するノードを特定するためのテキストファイルです。管理対象となるノードには、そのノードのホスト名や IP アドレスのリストを含めることができます。インベントリーファイルでは、大かっこ([])の中にホストグループ名を宣言することで、ノードをグループにまとめることができます。

ホストの管理に ansible-navigator コマンドを使用するには、インベントリーファイルを指定する必要があります。このファイルは、コントロールノードから管理されるホストの一覧を定義します。このラボでは、インベントリーはインストラクターから渡されます。このインベントリーファイルは ini 形式のファイルです。このファイルでは、グループで並び替えられたホストの一覧があります。また、変数いくつか指定しています。

[web]
node1 ansible_host=<X.X.X.X>
node2 ansible_host=<Y.Y.Y.Y>
node3 ansible_host=<Z.Z.Z.Z>

[control]
ansible-1 ansible_host=44.55.66.77

Ansible はすでに、お使いの環境に固有のインベントリーを使用するように設定されています。これを行うための次の手順を説明します。今のところは、簡単なコマンドをいくつか実行して、インベントリーの操作を行います。

すべてのインベントリホストを参照するには、ansible-navigator コマンドにパターンを指定します。 ansible-navigator inventory には --list オプションがあり、インベントリファイルに含まれるすべてのホストを、それらが関連付けられているグループも含めて表示するのに便利です。

[student@ansible-1 rhel_workshop]$ cd /home/student
[student@ansible-1 ~]$ ansible-navigator inventory --list -m stdout
{
    "_meta": {
        "hostvars": {
            "ansible-1": {
                "ansible_host": "3.236.186.92"
            },
            "node1": {
                "ansible_host": "3.239.234.187"
            },
            "node2": {
                "ansible_host": "75.101.228.151"
            },
            "node3": {
                "ansible_host": "100.27.38.142"
            }
        }
    },
    "all": {
        "children": [
            "control",
            "ungrouped",
            "web"
        ]
    },
    "control": {
        "hosts": [
            "ansible-1"
        ]
    },
    "web": {
        "hosts": [
            "node1",
            "node2",
            "node3"
        ]
    }
}

注記: -m--mode の略で、テキストベースのユーザーインターフェース (TUI) を使用する代わりに、モードを標準出力に切り替えることができます。

--list が冗長すぎる場合は、--graph のオプションを使用して、より補正されたバージョンの --list を提供することができます。

[student@ansible-1 ~]$ ansible-navigator inventory --graph -m stdout
@all:
  |--@control:
  |  |--ansible-1
  |--@ungrouped:
  |--@web:
  |  |--node1
  |  |--node2
  |  |--node3

ノード node1node2node3web グループの一部であることを明確に確認することができます。ansible-1control グループの一部であることが分かります。

インベントリーファイルにはより多くの情報が含まれます。また、このファイルは、グループでホストを整理したり、変数を定義したりできます。この例では、現在のインベントリーにグループ webcontrol がります。Ansible をこれらのホストパターンで実行し、出力を確認します。

ansible-navigator inventory コマンドを使用して、1つのホストまたはグループに情報を提供するコマンドを実行することもできます。たとえば、以下のコマンドを実行すると出力が表示されます。

[student@ansible-1 ~]$ ansible-navigator inventory --graph web -m stdout
[student@ansible-1 ~]$ ansible-navigator inventory --graph control -m stdout
[student@ansible-1 ~]$ ansible-navigator inventory --host node1 -m stdout

ヒント

このイベントリーには、その他のデータを含めることができます。たとえば、標準以外の SSH ポートで実行するホストがある場合は、コロン付きのホスト名の後にポート番号を指定できます。あるいは、Ansible 固有の名前を定義して、真の IP またはホスト名に参照するようにできます。

ステップ 2 - モジュールの一覧表示とヘルプの利用

Ansible Automation Platform には、サポートされる複数の実行環境 (EE) が同梱されています。これらの EE には、モジュールを含む、サポートされているコンテンツが含まれるバンドルされたサポート対象のコレクションが同梱されています。利用可能なモジュールを参照するには、最初にインタラクティブモードに入ります。

$ ansible-navigator

picture of ansible-navigator

ヒント

終了するには、ansible-navigatorESC ボタンを押します。

まず、:collections と入力してコレクションを参照します

$ :collections

picture of ansible-navigator

特定のコレクションのコンテンツを参照するには、対応する番号を入力します。たとえば、上記のスクリーンショットの例では、数字 0amazon.aws コレクションに対応します。コレクションタイプにズームインするには、番号 0 を入力します。

$ 0

picture of ansible-navigator

さらにズームすることで、使用など特定のモジュールに関するヘルプを利用します。たとえば、モジュール ec2_tag24 に対応します。

$ :24

矢印キーまたはページアップとページダウンを使用してスクロールダウンすると、ドキュメントと例が表示されます。

picture of ansible-navigator

:doc namespace.collection.module-name を入力して、特定のモジュールに直接ジャンプすることもできます。たとえば、:doc amazon.aws.ec2_tag を入力すると、上記の最後のページに直接ジャンプします。

ヒント

実行環境によって、アクセスできるコレクションおよびそのコレクションのバージョンが異なります。組み込みのドキュメントを使用して、コレクションのその特定のバージョンに対して正確であることが分かります。


Navigation {% if page.url contains 'ansible_rhel_90' %} Previous Exercise - Next Exercise {% else %} Previous Exercise - Next Exercise {% endif %}


Click here to return to the Ansible for Red Hat Enterprise Linux Workshop