Document Ceph spec, container, and single-host options

This patch updates the deployed_ceph and standalone documents to
describe the --skip-container-registry-config, --skip-hosts-config
and --single-host-defaults options to 'openstack overcloud deploy
ceph'. It also documents the 'openstack overcloud ceph spec' command.

Change-Id: I88d224f618b66b5e3f71264ed6b05152eb1ebe42
Releated-Bug: 1958884
Releated-Bug: 1958524
This commit is contained in:
John Fulton 2022-02-11 17:23:01 -05:00
parent 3bdf779de8
commit 8cf632eb1b
2 changed files with 114 additions and 33 deletions

View File

@ -279,33 +279,39 @@ Deploying a Standalone OpenStack node
--standalone \
$HOME/ceph_spec.yaml \
Create an initial Ceph configuration file so that so that Ceph
is configured for a single node and single OSD deployment:
Though Ceph will be configured to run on a single host via the
`--single-host-defaults` option, this deployment only has a
single OSD so it cannot replicate data even on the same host.
Create an initial Ceph configuration to disable replication:
.. code-block:: bash
cat <<EOF > $HOME/initial_ceph.conf
[global]
osd pool default size = 1
osd pool default pg num = 8
osd pool default pgp num = 8
[mon]
mon_warn_on_pool_no_redundancy = false
EOF
Deploy Ceph by passing the IP, Ceph spec and initial Ceph
configuration created above. Use the `--standalone` option.
User creation is skipped because it was handled in the previous
Deploy Ceph by passing the IP, Ceph spec and Ceph conf created
above. Use the options `--standalone`, `--single-host-defaults`,
`--skip-hosts-config` and `--skip-container-registry-config`.
Use `openstack overcloud ceph deploy --help` for details on what
these options do. User creation is skipped via
`--skip-user-create` because it was handled in the previous
step. Specify what the output deployed Ceph file should be
called.
.. code-block:: bash
sudo openstack overcloud ceph deploy \
--standalone \
--mon-ip $CEPH_IP \
--ceph-spec $HOME/ceph_spec.yaml \
--config $HOME/initial_ceph.conf \
--standalone \
--single-host-defaults \
--skip-hosts-config \
--skip-container-registry-config \
--skip-user-create \
--output $HOME/deployed_ceph.yaml

View File

@ -155,6 +155,14 @@ The command line interface supports the following options::
--skip-user-create Do not create the cephadm SSH user. This user is
necessary to deploy but may be created in a separate
step via 'openstack overcloud ceph user enable'.
--skip-hosts-config Do not update /etc/hosts on deployed servers. By
default this is configured so overcloud nodes can
reach each other and the undercloud by name.
--skip-container-registry-config
Do not update /etc/containers/registries.conf on
deployed servers. By default this is configured so
overcloud nodes can pull containers from the
undercloud registry.
--cephadm-ssh-user CEPHADM_SSH_USER
Name of the SSH user used by cephadm. Warning: if this
option is used, it must be used consistently for every
@ -206,6 +214,9 @@ The command line interface supports the following options::
data and <deployed_baremetal.yaml>
--ceph-vip CEPH_SERVICES
Path to an existing Ceph services/network mapping file
--single-host-defaults
Adjust configuration defaults to suit a single-host
Ceph cluster.
--osd-spec OSD_SPEC
Path to an existing OSD spec file. Mutually exclusive
with --ceph-spec. If the Ceph spec file is generated
@ -272,6 +283,11 @@ configuration changes should then be made by the `ceph config
command`_. For more information on the `CephConfigOverrides` and
`ApplyCephConfigOverridesOnUpdate` parameters see :doc:`cephadm`.
It is supported to pass through the `cephadm --single-host-defaults`
option, which configures a Ceph cluster to run on a single host::
openstack overcloud ceph deploy --single-host-defaults
Ceph Spec Options
-----------------
@ -280,29 +296,70 @@ The roles file, described in the next section, and the output of
`openstack overcloud node provision` are passed to the
`ceph_spec_bootstrap`_ Ansible module to create a `Ceph Service
Specification`_. The `openstack overcloud ceph deploy` command does
this automatically so it is not necessary to use the options described
in this section unless desired.
this automatically so that a spec does usually need to be generated
separately. However, it is possible to generate a ceph spec before
deployment with the following command::
It's possible to generate a Ceph Spec on the undercloud before
deployment by using the `ceph_spec_bootstrap`_ Ansible module
directly, for example::
$ openstack overcloud ceph spec --help
usage: openstack overcloud ceph spec [-h] -o <ceph_spec.yaml> [-y]
[--stack STACK]
[--working-dir WORKING_DIR]
[--roles-data ROLES_DATA]
[--mon-ip MON_IP] [--standalone]
[--osd-spec OSD_SPEC | --crush-hierarchy CRUSH_HIERARCHY]
[<deployed_baremetal.yaml>]
ansible localhost -m ceph_spec_bootstrap \
-a deployed_metalsmith=deployed_metal.yaml
positional arguments:
<deployed_baremetal.yaml>
Path to the environment file output from "openstack
overcloud node provision". This argument may be
excluded only if --standalone is used.
By default the above creates the file ``~/ceph_spec.yaml``. For more
information on the ``ceph_spec_bootstrap`` module run `ansible-doc
ceph_spec_bootstrap`. The spec file may then be edited if desired and
passed directly like this::
optional arguments:
-h, --help show this help message and exit
-o <ceph_spec.yaml>, --output <ceph_spec.yaml>
The path to the output cephadm spec file to pass to
the "openstack overcloud ceph deploy --ceph-spec
<ceph_spec.yaml>" command.
-y, --yes Skip yes/no prompt before overwriting an existing
<ceph_spec.yaml> output file (assume yes).
--stack STACK
Name or ID of heat stack (default=Env:
OVERCLOUD_STACK_NAME)
--working-dir WORKING_DIR
The working directory for the deployment where all
input, output, and generated files will be stored.
Defaults to "$HOME/overcloud-deploy/<stack>"
--roles-data ROLES_DATA
Path to an alternative roles_data.yaml. Used to decide
which node gets which Ceph mon, mgr, or osd service
based on the node's role in <deployed_baremetal.yaml>.
--mon-ip MON_IP
IP address of the first Ceph monitor. Only available
with --standalone.
--standalone Create a spec file for a standalone deployment. Used
for single server development or testing environments.
--osd-spec OSD_SPEC
Path to an existing OSD spec file. When the Ceph spec
file is generated its OSD spec defaults to
{data_devices: {all: true}} for all service_type osd.
Use --osd-spec to override the data_devices value
inside the Ceph spec file.
--crush-hierarchy CRUSH_HIERARCHY
Path to an existing crush hierarchy spec file.
$
The spec file may then be edited if desired and passed directly like
this::
openstack overcloud ceph deploy \
deployed_metal.yaml \
-o deployed_ceph.yaml \
--ceph-spec ~/ceph_spec.yaml
All available disks (excluding the disk where the operating system is
installed) are used as OSDs as per the following default inside the
ceph spec::
By default the spec instructs cephadm to use all available disks
(excluding the disk where the operating system is installed) as OSDs.
The syntax it uses to do this is the following::
data_devices:
all: true
@ -328,9 +385,11 @@ and the following command is run::
Then all rotating devices will be data devices and all non-rotating
devices will be used as shared devices (wal, db). This is because when
the dynamic Ceph service specification is built whatever is in the
the dynamic Ceph service specification is built, whatever is in the
file referenced by ``--osd-spec`` will be appended to the section of
the specification if the `service_type` is "osd".
the specification if the `service_type` is "osd". The same
``--osd-spec`` is available to the `openstack overcloud ceph spec`
command.
Ceph VIP Options
----------------
@ -486,11 +545,18 @@ containers and when the overcloud is deployed Nova compute services
will then be set up on the same hosts.
If you wish to generate the ceph spec with the modified placement
described above before the ceph deployment, then the same file may be
passed to a direct call of the ceph_spec_bootstrap ansible module::
described above before the ceph deployment, then the same roles
file may be passed to the 'openstack overcloud ceph spec' command::
ansible localhost -m ceph_spec_bootstrap \
-a "deployed_metalsmith=deployed_metal.yaml tripleo_roles=custom_roles.yaml"
openstack overcloud ceph spec \
--stack overcloud \
--roles-data custom_roles.yaml \
--output ceph_spec.yaml \
deployed_metal.yaml
In the above example the `--stack` is used in order to find the
working directory containing the Ansible inventory which was created
when `openstack overcloud node provision` was run.
Network Options
---------------
@ -706,11 +772,20 @@ Container Options
As described in :doc:`../deployment/container_image_prepare` the
undercloud may be used as a container registry for ceph containers
and there is a supported syntax to download containers from
authenticated registries. By default `openstack overcloud ceph deploy`
will pull the Ceph container in the default
``container_image_prepare_defaults.yaml`` file. The version of the
Ceph used in each OpenStack release changes per release and can be
seen by running a command like this::
authenticated registries.
By default `openstack overcloud ceph deploy` will pull the Ceph
container in the default ``container_image_prepare_defaults.yaml``
file. If a `push_destination` is defined in this file, then the
overcloud will be configured so it can access the local registry in
order to download the Ceph container. This means that `openstack
overcloud ceph deploy` will modify the overcloud's ``/etc/hosts``
and ``/etc/containers/registries.conf`` files; unless the
`--skip-hosts-config` and `--skip-container-registry-config` options
are used or a `push_destination` is not defined.
The version of the Ceph used in each OpenStack release changes per
release and can be seen by running a command like this::
egrep "ceph_namespace|ceph_image|ceph_tag" \
/usr/share/tripleo-common/container-images/container_image_prepare_defaults.yaml