Ansible Tower リリース 3.1 で Tower 検索が導入されました。Tower 検索は、複数の機能全体に対応する検索およびフィルター機能を提供します。
使用できる検索条件が拡張可能な「cheat-sheet (虎の巻)」で提供されています。cheet-sheet (虎の巻) は キー ボタンを押してアクセスできます。
すべてをクリア を使用して検索条件をクリアします。
これらの検索ヒントは、ホストの検索を対象としていません。このセクションの大半はホストにも適用されますが、相違点が少しあります。通常の検索構文には、フィールド (左側) と値 (右側) が含まれます。コロンは、検索するフィールドと値を区別するために使用します。検索にコロンが含まれない場合には (例 3 参照)、?search=foobar
を送信する単純な文字列検索として処理されます。検索に使用する構文例を以下に示します。
name:localhost
: この例では、コロンの前の文字列は、検索するフィールドを表します。その文字列が フィールド または 関連フィールド のアイテムと一致しない場合には、例 3 (文字列検索) と同じ方法で処理されます。コロンの後ろの文字列は、名前属性内で検索する文字列です。
organization.name:Default
: この例は、関連フィールドの検索です。今回の例では、左側のピリオドは、フィールドとモデルを分割します。検索の複雑性や検索層の深さにより、左側の部分にピリオドを複数使用される場合もあります。
foobar
: icontains
検索を使用して、名前や説明フィールドの中から対象の用語をすべて検索するための単純な文字列 (キーワード)。用語と用語の間にスペースが使用されている場合には (例: foo bar)、両方の用語が含まれる結果がすべて返されます。用語が引用句で括られている場合には (例: "foo bar")、Tower はキーワード両方が含まれる文字列全体を探し出します。固有名の検索は、API 名に対して検索します。たとえば、ユーザーインターフェースの Management job
は、API の system_job
です。
organization:Default
: この例は、組織で使用できるフィールドを指定しないで、関連フィールドを検索する例です。これは、API によりサポートされ、単純な文字列検索に似ていますが、組織に対して検索がかけられます (名前と説明両方に対して icontains
の検索がかけられます)。
特定のフィールドの値を検索するには、拡張オプションと有効な値の API エンドポイントを参照してください。たとえば、/api/v2/jobs
-> type
フィールドを検索する場合は、/api/v2/jobs
に OPTIONS 要求を実行して値を検索し、API のエントリーに "type"
がないかを特定します。さらに、各画面の下までスクロールして関連の検索を確認できます。/api/v2/jobs
の例では、関連検索は以下を返します。
"related_search_fields": [
"modified_by__search",
"project__search",
"project_update__search",
"credentials__search",
"unified_job_template__search",
"created_by__search",
"inventory__search",
"labels__search",
"schedule__search",
"webhook_credential__search",
"job_template__search",
"job_events__search",
"dependent_jobs__search",
"launch_config__search",
"unifiedjob_ptr__search",
"notifications__search",
"unified_job_node__search",
"instance_group__search",
"hosts__search",
"job_host_summaries__search"
フィールドの値は、GET 要求のキーから取得します。url
、related
および summary_fields
は使用しません。関連フィールドの値は、異なる属性の OPTIONS 応答から取得します。関連フィールドには、related_search_fields
からのすべての値を取得してデータが投入され、末尾の __search
を取り除きます。
フィールドからの値または関連フィールドからの値が文頭にこない検索は、一般的な文字列検索として処理されます。localhost
などの検索は、API エンドポイントに、クエリーパラメーターとして ?search=localhost
を送信する UI が結果として返されます。これは、名前および説明フィールドに対する icontains
検索のショートカットです。
以下は、Tower での検索に関して注意すべき事項です。
検索により (AND パラメーターを使用した検索の場合のように) タグの共通部分である結果のサブセットが返されます。現在のところ、 (OR パラメーターを使用した検索のような) 複数パラメーターの結果を返す検索はサポートされていません。
スペースを含む文字列検索に対応するには、検索パラメーターの左側の部分を引用句で括ることができます。
現在、フィールドの値は直接属性で、GET 要求で返されるはずです。値のいずれかに対して検索を行う場合は必ず、Tower は __icontains
検索を行います。たとえば name:localhost
は ?name__icontains=localhost
を返します。Tower は現在、すべてのフィールドの値に対する検索を行います。この検索には id
も含まれるので、理想的ではありません。