+++ title = "knife search" draft = false
gh_repo = "chef-workstation"
aliases = ["/knife_search.html", "/knife_search/"]
[menu] [menu.workstation] title = "knife search" identifier = "chef_workstation/chef_workstation_tools/knife/knife_search.md knife search" parent = "chef_workstation/chef_workstation_tools/knife" +++
{{< readfile file="content/reusable/md/search.md" >}}
{{< readfile file="content/workstation/reusable/md/knife_search_summary.md" >}}
This subcommand has the following syntax:
knife search INDEX SEARCH_QUERY
where INDEX
is one of client
, environment
, node
, role
, or the
name of a data bag and SEARCH_QUERY
is the search query syntax for the
query that will be executed.
INDEX
is implied if omitted, and will default to node
. For example:
knife search '*:*' -i
will return something similar to:
8 items found
centos-62-dev
opensuse-15
ubuntu-1804-orgtest
ubuntu-1804-ohai-test
ubuntu-1804-ifcfg-test
ohai-test
win2k19-dev
and is the same search as:
knife search node '*:*' -i
If the SEARCH_QUERY
does not contain a colon character (:
), then the
default query pattern is
tags:*#{@query}* OR roles:*#{@query}* OR fqdn:*#{@query}* OR addresses:*#{@query}*
,
which means the following two search queries are effectively the same:
knife search ubuntu
or:
knife search node "tags:*ubuntu* OR roles:*ubuntu* OR fqdn:*ubuntu* (etc.)"
{{< readfile file="content/reusable/md/search_query_syntax.md" >}}
{{< readfile file="content/reusable/md/search_key.md" >}}
To search for the available fields for a particular object, use the
show
argument with any of the following knife subcommands:
knife client
, knife data bag
, knife environment
, knife node
, or
knife role
. For example: knife data bag show
.
{{< readfile file="content/reusable/md/search_key_nested.md" >}}
{{< readfile file="content/reusable/md/search_key_name.md" >}}
{{< readfile file="content/reusable/md/search_key_wildcard_question_mark.md" >}}
{{< readfile file="content/reusable/md/search_key_wildcard_asterisk.md" >}}
{{< readfile file="content/reusable/md/search_key_nested_starting_with.md" >}}
{{< readfile file="content/reusable/md/search_key_nested_range.md" >}}
{{< readfile file="content/reusable/md/search_pattern.md" >}}
{{< readfile file="content/reusable/md/search_pattern_exact.md" >}}
{{< readfile file="content/reusable/md/search_pattern_exact_key_and_item.md" >}}
{{< readfile file="content/reusable/md/search_pattern_exact_key_and_item_string.md" >}}
{{< readfile file="content/reusable/md/search_pattern_wildcard.md" >}}
{{< readfile file="content/reusable/md/search_pattern_wildcard_any_node.md" >}}
{{< readfile file="content/reusable/md/search_pattern_wildcard_node_contains.md" >}}
{{< readfile file="content/reusable/md/search_pattern_range.md" >}}
{{< readfile file="content/reusable/md/search_pattern_range_in_between.md" >}}
{{< readfile file="content/reusable/md/search_pattern_range_exclusive.md" >}}
{{< readfile file="content/reusable/md/search_pattern_fuzzy.md" >}}
{{< readfile file="content/reusable/md/search_pattern_fuzzy_summary.md" >}}
{{< readfile file="content/reusable/md/search_boolean_operators.md" >}}
{{< readfile file="content/reusable/md/search_boolean_operators_andnot.md" >}}
{{< readfile file="content/reusable/md/search_boolean_and.md" >}}
{{< readfile file="content/reusable/md/search_boolean_not.md" >}}
{{< readfile file="content/reusable/md/search_boolean_or.md" >}}
{{< readfile file="content/reusable/md/search_special_characters.md" >}}
{{< note >}}
{{< readfile file="content/workstation/reusable/md/knife_common_see_common_options_link.md" >}}
{{< /note >}}
This subcommand has the following options:
-a ATTR
, --attribute ATTR
: The attribute (or attributes) to show.
-b ROW
, --start ROW
: The row at which return results begin.
-f FILTER
, --filter-result FILTER
: Use to filter the search output based on the pattern that matc the specified FILTER
. Only attributes in the FILTER
will returned. For example: \"ServerName=name, Kernel=kernel.version\
.
-i
, --id-only
: Show only matching object IDs.
INDEX
: The name of the index to be queried: client
, environment
, node
, role
, or DATA_BAG_NAME
. Default index: node
.
-l
, --long
: Display all attributes in the output and show the output as JSON.
-m
, --medium
: Display normal attributes in the output and to show the output as JSON.
-q SEARCH_QUERY
, --query SEARCH_QUERY
: Protect search queries that start with a hyphen (-). A -q
query may be specified as an argument or an option, but not both.
-r
, --run-list
: Show only the run-list.
-R INT
, --rows INT
: The number of rows to be returned.
SEARCH_QUERY
: The search query used to identify a list of items on a Chef Infra Server. This option uses the same syntax as the search
subcommand.
The following examples show how to use this knife subcommand:
Search by platform ID
{{< readfile file="content/workstation/reusable/md/knife_search_by_platform_ids.md" >}}
Search by instance type
{{< readfile file="content/workstation/reusable/md/knife_search_by_platform_instance_type.md" >}}
Search by recipe
{{< readfile file="content/workstation/reusable/md/knife_search_by_recipe.md" >}}
Search by cookbook, then recipe
{{< readfile file="content/workstation/reusable/md/knife_search_by_cookbook.md" >}}
Search by node
{{< readfile file="content/workstation/reusable/md/knife_search_by_node.md" >}}
Search by node and environment
{{< readfile file="content/workstation/reusable/md/knife_search_by_node_and_environment.md" >}}
Search for nested attributes
{{< readfile file="content/workstation/reusable/md/knife_search_by_nested_attribute.md" >}}
Search for multiple attributes
{{< readfile file="content/workstation/reusable/md/knife_search_by_query_for_many_attributes.md" >}}
Search for nested attributes using a search query
{{< readfile file="content/workstation/reusable/md/knife_search_by_query_for_nested_attribute.md" >}}
Use a test query
{{< readfile file="content/workstation/reusable/md/knife_search_test_query_for_ssh.md" >}}