summaryrefslogtreecommitdiff
path: root/doc/rtd/topics/cli.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rtd/topics/cli.rst')
-rw-r--r--doc/rtd/topics/cli.rst405
1 files changed, 0 insertions, 405 deletions
diff --git a/doc/rtd/topics/cli.rst b/doc/rtd/topics/cli.rst
deleted file mode 100644
index 463ac38c..00000000
--- a/doc/rtd/topics/cli.rst
+++ /dev/null
@@ -1,405 +0,0 @@
-.. _cli:
-
-CLI Interface
-*************
-
-For the latest list of subcommands and arguments use cloud-init's ``--help``
-option. This can be used against cloud-init itself or any of its subcommands.
-
-.. code-block:: shell-session
-
- $ cloud-init --help
-
-Example output:
-
-.. code-block::
-
- usage: cloud-init [-h] [--version] [--file FILES] [--debug] [--force]
- {init,modules,single,query,dhclient-hook,features,analyze,devel,collect-logs,clean,status,schema} ...
-
- options:
- -h, --help show this help message and exit
- --version, -v Show program's version number and exit.
- --file FILES, -f FILES
- Use additional yaml configuration files.
- --debug, -d Show additional pre-action logging (default: False).
- --force Force running even if no datasource is found (use at your own risk).
-
- Subcommands:
- {init,modules,single,query,dhclient-hook,features,analyze,devel,collect-logs,clean,status,schema}
- init Initialize cloud-init and perform initial modules.
- modules Activate modules using a given configuration key.
- single Run a single module.
- query Query standardized instance metadata from the command line.
- dhclient-hook Run the dhclient hook to record network info.
- features List defined features.
- analyze Devel tool: Analyze cloud-init logs and data.
- devel Run development tools.
- collect-logs Collect and tar all cloud-init debug info.
- clean Remove logs and artifacts so cloud-init can re-run.
- status Report cloud-init status or wait on completion.
- schema Validate cloud-config files using jsonschema.
-
-
-The rest of this document will give an overview of each of the subcommands.
-
-
-.. _cli_analyze:
-
-analyze
-=======
-
-Get detailed reports of where cloud-init spends its time during the boot
-process. For more complete reference see :ref:`analyze`.
-
-Possible subcommands include:
-
-* *blame*: report ordered by most costly operations
-* *dump*: machine-readable JSON dump of all cloud-init tracked events
-* *show*: show time-ordered report of the cost of operations during each
- boot stage
-* *boot*: show timestamps from kernel initialization, kernel finish
- initialization, and cloud-init start
-
-
-.. _cli_clean:
-
-clean
-=====
-
-Remove cloud-init artifacts from ``/var/lib/cloud`` to simulate a clean
-instance. On reboot, cloud-init will re-run all stages as it did on first boot.
-
-* ``--logs``: optionally remove all cloud-init log files in ``/var/log/``
-* ``--reboot``: reboot the system after removing artifacts
-* ``--machine-id``: Remove ``/etc/machine-id`` on this image. Best practice
- when cloning a golden image to ensure that the next boot of that image
- auto-generates an unique machine ID. `More details on machine-id`_.
-
-
-.. _cli_collect_logs:
-
-collect-logs
-============
-
-Collect and tar cloud-init generated logs, data files, and system
-information for triage. This subcommand is integrated with apport.
-
-Logs collected include:
-
- * ``/var/log/cloud-init.log``
- * ``/var/log/cloud-init-output.log``
- * ``/run/cloud-init``
- * ``/var/lib/cloud/instance/user-data.txt``
- * cloud-init package version
- * ``dmesg`` output
- * journalctl output
-
-.. note::
-
- Ubuntu users can file bugs with ``ubuntu-bug cloud-init`` to
- automatically attach these logs to a bug report
-
-
-.. _cli_devel:
-
-devel
-=====
-
-Collection of development tools under active development. These tools will
-likely be promoted to top-level subcommands when stable.
-
-Do **NOT** rely on the output of these commands as they can and will change.
-
-Current subcommands:
-
- * ``net-convert``: manually use cloud-init's network format conversion, useful
- for testing configuration or testing changes to the network conversion logic
- itself.
- * ``render``: use cloud-init's jinja template render to
- process **#cloud-config** or **custom-scripts**, injecting any variables
- from ``/run/cloud-init/instance-data.json``. It accepts a user-data file
- containing the jinja template header ``## template: jinja`` and renders
- that content with any instance-data.json variables present.
- * ``hotplug-hook``: respond to newly added system devices by retrieving
- updated system metadata and bringing up/down the corresponding device.
- This command is intended to be called via a systemd service and is
- not considered user-accessible except for debugging purposes.
-
-
-.. _cli_features:
-
-features
-========
-
-Print out each feature supported. If cloud-init does not have the
-features subcommand, it also does not support any features described in
-this document.
-
-.. code-block:: shell-session
-
- $ cloud-init features
-
-Example output:
-
-.. code-block::
-
- NETWORK_CONFIG_V1
- NETWORK_CONFIG_V2
-
-
-.. _cli_init:
-
-init
-====
-
-Generally run by OS init systems to execute cloud-init's stages
-*init* and *init-local*. See :ref:`boot_stages` for more info.
-Can be run on the commandline, but is generally gated to run only once
-due to semaphores in ``/var/lib/cloud/instance/sem/`` and
-``/var/lib/cloud/sem``.
-
-* ``--local``: run *init-local* stage instead of *init*
-
-
-.. _cli_modules:
-
-modules
-=======
-
-Generally run by OS init systems to execute *modules:config* and
-*modules:final* boot stages. This executes cloud config :ref:`modules`
-configured to run in the init, config and final stages. The modules are
-declared to run in various boot stages in the file
-``/etc/cloud/cloud.cfg`` under keys:
-
-* *cloud_init_modules*
-* *cloud_config_modules*
-* *cloud_final_modules*
-
-Can be run on the command line, but each module is gated to run only once due
-to semaphores in ``/var/lib/cloud/``.
-
-* ``--mode [init|config|final]``: run ``modules:init``, ``modules:config`` or
- `modules:final` cloud-init stages. See :ref:`boot_stages` for more info.
-
-
-.. _cli_query:
-
-query
-=====
-
-Query standardized cloud instance metadata crawled by cloud-init and stored
-in ``/run/cloud-init/instance-data.json``. This is a convenience command-line
-interface to reference any cached configuration metadata that cloud-init
-crawls when booting the instance. See :ref:`instance_metadata` for more info.
-
-* ``--all``: dump all available instance data as json which can be queried
-* ``--instance-data``: optional path to a different instance-data.json file
- to source for queries
-* ``--list-keys``: list available query keys from cached instance data
-* ``--format``: a string that will use jinja-template syntax to render a
- string replacing
-* ``<varname>``: a dot-delimited variable path into the instance-data.json
- object
-
-Below demonstrates how to list all top-level query keys that are standardized
-aliases:
-
-.. code-block:: shell-session
-
- $ cloud-init query --list-keys
-
-Example output:
-
-.. code-block::
-
- _beta_keys
- availability_zone
- base64_encoded_keys
- cloud_name
- ds
- instance_id
- local_hostname
- platform
- public_ssh_keys
- region
- sensitive_keys
- subplatform
- userdata
- v1
- vendordata
-
-Here are a few examples of how to query standardized metadata from clouds:
-
-.. code-block:: shell-session
-
- $ cloud-init query v1.cloud_name
-
-Example output:
-
-.. code-block::
-
- aws # or openstack, azure, gce etc.
-
-Any standardized instance-data under a <v#> key is aliased as a top-level key
-for convenience:
-
-.. code-block:: shell-session
-
- $ cloud-init query cloud_name
-
-Example output:
-
-.. code-block::
-
- aws # or openstack, azure, gce etc.
-
-One can also query datasource-specific metadata on EC2, e.g.:
-
-.. code-block:: shell-session
-
- $ cloud-init query ds.meta_data.public_ipv4
-
-
-.. note::
-
- The standardized instance data keys under **v#** are guaranteed not to change
- behavior or format. If using top-level convenience aliases for any
- standardized instance data keys, the most value (highest **v#**) of that key
- name is what is reported as the top-level value. So these aliases act as a
- 'latest'.
-
-This data can then be formatted to generate custom strings or data. For
-example, we can generate a custom hostname fqdn based on instance-id, cloud and
-region:
-
-.. code-block:: shell-session
-
- $ cloud-init query --format 'custom-{{instance_id}}.{{region}}.{{v1.cloud_name}}.com'
-
-.. code-block::
-
- custom-i-0e91f69987f37ec74.us-east-2.aws.com
-
-
-.. _cli_schema:
-
-schema
-======
-
-Validate cloud-config files using jsonschema.
-
-* ``-h, --help``: show this help message and exit
-* ``-c CONFIG_FILE, --config-file CONFIG_FILE``: Path of the cloud-config yaml
- file to validate
-* ``--system``: Validate the system cloud-config userdata
-* ``-d DOCS [DOCS ...], --docs DOCS [DOCS ...]``: Print schema module docs.
- Choices: all or space-delimited cc_names.
-* ``--annotate``: Annotate existing cloud-config file with errors
-
-The following example checks a config file and annotates the config file with
-errors on stdout.
-
-.. code-block:: shell-session
-
- $ cloud-init schema -c ./config.yml --annotate
-
-
-.. _cli_single:
-
-single
-======
-
-Attempt to run a single named cloud config module.
-
-* ``--name``: the cloud-config module name to run
-* ``--frequency``: module frequency for this run.
- One of (always|once-per-instance|once)
-* ``--report``: enable reporting
-
-The following example re-runs the cc_set_hostname module ignoring the module
-default frequency of once-per-instance:
-
-.. code-block:: shell-session
-
- $ cloud-init single --name set_hostname --frequency always
-
-.. note::
-
- Mileage may vary trying to re-run each cloud-config module, as
- some are not idempotent.
-
-
-.. _cli_status:
-
-status
-======
-
-Report whether cloud-init is running, done, disabled or errored. Exits
-non-zero if an error is detected in cloud-init.
-
-* ``--long``: detailed status information
-* ``--wait``: block until cloud-init completes
-* ``--format [yaml|json|tabular]``: machine-readable JSON or YAML detailed
- output
-
-The ``status`` command can be used simply as follows:
-
-.. code-block:: shell-session
-
- $ cloud-init status
-
-Which shows whether cloud-init is currently running, done, disabled, or in
-error, as in this example output:
-
-.. code-block::
-
- status: running
-
-The ``--long`` option, shown below, provides a more verbose output.
-
-.. code-block:: shell-session
-
- $ cloud-init status --long
-
-Example output when cloud-init is running:
-
-.. code-block::
-
- status: running
- time: Fri, 26 Jan 2018 21:39:43 +0000
- detail:
- Running in stage: init-local
-
-Example output when cloud-init is done:
-
-.. code-block::
-
- status: done
- boot_status_code: enabled-by-generator
- last_update: Tue, 16 Aug 2022 19:12:58 +0000
- detail:
- DataSourceNoCloud [seed=/var/lib/cloud/seed/nocloud-net][dsmode=net]
-
-The detailed output can be shown in machine-readable JSON or YAML with the
-``format`` option, for example:
-
-.. code-block:: shell-session
-
- $ cloud-init status --format=json
-
-Which would produce the following example output:
-
-.. code-block::
-
- {
- "boot_status_code": "enabled-by-generator",
- "datasource": "nocloud",
- "detail": "DataSourceNoCloud [seed=/var/lib/cloud/seed/nocloud-net][dsmode=net]",
- "errors": [],
- "last_update": "Tue, 16 Aug 2022 19:12:58 +0000",
- "status": "done"
- }
-
-.. _More details on machine-id: https://www.freedesktop.org/software/systemd/man/machine-id.html