大量のデータを処理するには、Ansibleなどのソフトウェアが必要です。 これらのタイプのアプリケーションが提供するはずのファシリテーションを見ると、それらのデータ処理機能は一流でなければなりません。
Ansibleでデータを処理、フォーマット、または操作する必要がある場合は常に、フィルターを使用します。 Ansibleでは2セットのフィルターを使用できます。 1つのセットはjinja2テンプレートフィルターで、もう1つのセットはユーザーが作成したカスタムビルドのフィルターです。
ただし、バックグラウンドでは、すべてのフィルターはjinja2テンプレートから派生します。これは、フィルターに入力されたデータが最初にテンプレート式に変換され、フィルターを適用できるように機能します。
注意すべきもう1つの重要な点は、すべてのフィルターがローカルに適用されることです。つまり、リモートホストを使用してフィルタリングを実行することはできません。 したがって、すべての操作と処理はAnsibleコントロールマシンで行われます。
Ansibleで使用可能なフィルターとその使用方法について知りたい場合は、これらのフィルターがどのように機能するか、およびAnsibleプレイブックを作成してデータを希望どおりに処理する方法について説明するため、適切な記事を見つけました。システムに。
フィルタはどのように機能しますか?
データフィルターの背後での作業は簡単です。 事前に開発されたフィルターに、入力としていくつかのデータまたは情報を提供します。 フィルタは、プレイブックに記載されているコマンドと設定した条件に従ってデータを分析します。 データが分析された後、あなたはあなたが持っていたデータからあなたが望むカスタマイズされた出力を受け取ります。
さまざまな種類のフィルターが、データに対してさまざまな種類のフィルター処理を実行します。 前述のように、それらはすべてjinja2テンプレートに基づいて機能し、使用可能なすべてのフィルターのリストがあります。 これをクリックすると、そのリストが表示されます リンク。
フィルタを使用すると、Ansibleの機能が大幅に強化されるため、多くの利点があります。 場合によっては、デバッグにフィルターを使用することもできます。
Ansibleでフィルターを実装する方法は?
Ansibleフィルターの基本的な構文は次のとおりです。
注意すべきもう1つの重要な点は、バックグラウンドでのデータ変換がPythonを使用して行われることです。 特定のタイプのテンプレートがPythonで使用できない場合、フィルターは正しい出力を提供しない可能性があります。 したがって、いくつかのフィルターを使用するときは注意する必要があります。
これまで、Ansibleフィルターの基本を学びました。 さらにクエリを明確にするために、フィルタリングの例とさまざまなタイプのフィルターを見てみましょう。
例
-名前:複数の任意のホスト名を生成します
ansible.builtin.debug:
msg: “{{ [‘abc’, ‘xyz’] | 製品([‘com’])| map(’join’、’。’)| 加入(’、’) }}”
また、ここで、プレイブックを実行するには、Linuxターミナルを使用して次のコマンドを実行する必要があることに注意してください。
ansible-playbook testbook.yml
この例では、「製品」フィルターを使用しました。 積フィルターは、デカルト乗算を実装するために使用されます。 「製品」フィルターは、従来のプログラミング言語でforループを使用するのと多少似ています。 このようなコードを実行することで受け取る出力は、次のようになります。
{“msg”: “abc.com、xyz.com”}
2つの数値のセットの組み合わせを取得する方法は次のとおりです。
-名前:2つのセットの組み合わせを教えてください
ansible.builtin.debug:
msg: “{{ [10,20,30,40,50] | ansible.builtin.combinations(2)| リスト}}”
「組み合わせ」フィルターを使用して、特定のセットから2つの数値の組み合わせを取得しました。 括弧内に指定された2は、2の組み合わせを作成するように指示し、「list」キーワードはリストの形式で出力を提供します。
-名前:最大の順列(順序が重要)
ansible.builtin.debug:
msg: “{{ [0,2,4,6,8] | ansible.builtin.permutations | リスト}}”
-名前:3つのセットの順列
ansible.builtin.debug:
msg: “{{ [1,3,5,7,9] | ansible.builtin.permutations(3)| リスト}}”
「順列」フィルターも用意されています。 このフィルターは、与えられた変数またはデータのセットの順列を提供します。 上記の例では、偶数のセットから最大の順列を受け取り、奇数のセットから3つのセットの順列を受け取ります。
“{{ [‘a’,’b’,’c’] | ランダム}}」
この例では、「ランダム」フィルターを使用して、特定のデータセットから乱数を生成します。
{{51 | random(step = 10)}}
この例では、「ランダム」フィルターを使用して0〜50の乱数を生成しました。また、ステップサイズが10であるという条件を指定したため、得られる出力は10の倍数になります。
{{ [‘a’,’b’,’c’,’d’,’e’] | シャッフル}}
「シャッフル」フィルターを使用してデータセットをシャッフルし、指定されたものがシャッフルされて表示される出力を生成できます。
{{ [{‘val’: 1}, {‘val’: 2},{‘val’:3},{‘val’:4}] | min(attribute = “val”)}}
最後に、「最小」フィルターを使用して、入力として指定した2つの入力数値を比較し、出力として最小の数値を取得します。
{{ [{‘val’: 1}, {‘val’: 2}] | max(attribute = “val”)}}
同様に、ここでは「max」フィルターを使用して、特定のデータセットから最大数を取得します。
したがって、これらはAnsibleで使用可能ないくつかのフィルターの例です。 データの処理とフォーマットに使用できるフィルターは他にもたくさんあります。
結論
この記事では、Ansibleフィルターについて説明しました。 データ分析でフィルターが必要な理由を特定し、プラグインによって提供されるいくつかのフィルターを調べました。 フィルタが重要である理由を理解するのに役立つことを願っています。さらに重要なことは、フィルタをどのように使用して利益を得ることができるかを理解できるようになったことです。 コメントセクションに質問をドロップしてください。
The post Ansibleフィルターはどのように機能しますか? appeared first on Gamingsym Japan.