Provided by: chef_11.8.2-2_all
NAME
knife-search - The man page for the knife search subcommand. Search indexes allow queries to be made for any type of data that is indexed by the server, including data bags (and data bag items), environments, nodes, and roles. A defined query syntax is used to support search patterns like exact, wildcard, range, and fuzzy. A search is a full-text query that can be done from several locations, including from within a recipe, by using the search subcommand in Knife, by using the search functionality in the Management Console, or by using the /search or /search/INDEX endpoints in the Chef Server API. The search engine is based on Apache Solr and is run from the server. The knife search subcommand is used run a search query for information that is indexed on a server. Common Options The following options can be run with all Knife sub-commands and plug-ins: -c CONFIG, --config CONFIG The configuration file to use. --color Indicates that colored output will be used. -d, --disable-editing Indicates that $EDITOR will not be opened; data will be accepted as-is. --defaults Indicates that Knife will use the default value, instead of asking a user to provide one. -e EDITOR, --editor EDITOR The $EDITOR that is used for all interactive commands. -E ENVIRONMENT, --environment ENVIRONMENT The name of the environment. When this option is added to a command, the command will run only against the named environment. -f FILE_NAME, --file FILE_NAME Indicates that the private key will be saved to a specified file name. -F FORMAT, --format FORMAT The output format: summary (default), text, json, yaml, and pp. -h, --help Shows help for the command. -k KEY, --key KEY The private key that Knife will use to sign requests made by the API client to the server. --no-color Indicates that color will not be used in the output. -p PASSWORD, --password PASSWORD The user password. --print-after Indicates that data will be shown after a destructive operation. -s URL, --server-url URL The URL for the server. -u USER, --user USER The user name used by Knife to sign requests made by the API client to the server. Authentication will fail if the user name does not match the private key. -v, --version The version of the chef-client. -V, --verbose Set for more verbose outputs. Use -VV for maximum verbosity. -y, --yes Indicates that the response to all confirmation prompts will be "Yes" (and that Knife will not ask for confirmation). Syntax This argument 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-1203 ubuntu-1304-dev ubuntu-1304-orgtest ubuntu-1204-ohai-test ubuntu-1304-ifcfg-test ohai-test win2k8-dev and is the same search as: $ knife node search '*:*" -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.)" Options This sub-command has the following options: -a ATTR, --attribute ATTR The attribute (or attributes) to show. -b ROW, --start ROW The row at which return results will begin. -i, --id-only Indicates that only matching object IDs will be shown. INDEX The name of the index to be queried: client, environment, node, role, or DATA_BAG_NAME. Default index: node. -l, --long Display long output when searching nodes while using the default summary format. -m, --medium Display more, but not all, of a node's data when searching using the default summary format. -o SORT, --sort SORT The order in which search results will be sorted. -q SEARCH_QUERY, --query SEARCH_QUERY Use to 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 Indicates that only the run-list will be shown. -R INT, --rows INT The number of rows to be returned. SEARCH_QUERY The search query used to identify a a list of items on a server. This option uses the same syntax as the search sub-command. Examples To search for the IDs of all nodes running on the Amazon EC2 platform, enter: $ knife search node 'ec2:*' -i to return something like: 4 items found ip-0A7CA19F.ec2.internal ip-0A58CF8E.ec2.internal ip-0A58E134.ec2.internal ip-0A7CFFD5.ec2.internal To search for the instance type (flavor) of all nodes running on the Amazon EC2 platform, enter: $ knife search node 'ec2:*' -a ec2.instance_type to return something like: 4 items found ec2.instance_type: m1.large id: ip-0A7CA19F.ec2.internal ec2.instance_type: m1.large id: ip-0A58CF8E.ec2.internal ec2.instance_type: m1.large id: ip-0A58E134.ec2.internal ec2.instance_type: m1.large id: ip-0A7CFFD5.ec2.internal To search for all nodes running Ubuntu, enter: $ knife search node 'platform:ubuntu' To search for all nodes running CentOS in the production environment, enter: $ knife search node 'chef_environment:production AND platform:centos' To find a nested attribute, use a pattern similar to the following: $ knife search node <query_to_run> -a <main_attribute>.<nested_attribute> To build a search query to use more than one attribute, use an underscore ( _ ) to separate each attribute. For example, the following query will search for all nodes running a specific version of Ruby: $ knife search node "languages_ruby_version:1.9.3" To build a search query that can find a nested attribute: $ knife search node name:<node_name> -a kernel.machine To test a search query that will be used in a knife ssh command: $ knife search node "role:web AND NOT name:web03" where the query in the previous example will search all servers that have the web role, but not on the server named web03.
AUTHOR
Opscode Chef 11.8.0 KNIFE-SEARCH(1)