From c2c255cc56354a31bebc7565348c0c9016fec921 Mon Sep 17 00:00:00 2001 From: Benjamin Michael Cooper Date: Fri, 25 Aug 2017 14:11:28 +0100 Subject: [PATCH] Add deployment information Provide information on deploying nodes using bareon. Change-Id: I1b14f6a7ab80253d2f63e55f03c0581e6251d16b --- doc/source/deployment.rst | 1289 +++++++++++++++++ .../diagrams/deploy_config_full_lvm.gliffy | 1 + .../diagrams/deploy_config_full_lvm.png | Bin 0 -> 18209 bytes .../diagrams/deploy_config_full_lvm.svg | 1 + .../diagrams/deploy_config_no_lvm.gliffy | 1 + doc/source/diagrams/deploy_config_no_lvm.png | Bin 0 -> 7147 bytes doc/source/diagrams/deploy_config_no_lvm.svg | 1 + .../diagrams/deploy_config_partial_lvm.gliffy | 1 + .../diagrams/deploy_config_partial_lvm.png | Bin 0 -> 13843 bytes .../diagrams/deploy_config_partial_lvm.svg | 1 + 10 files changed, 1295 insertions(+) create mode 100644 doc/source/deployment.rst create mode 100644 doc/source/diagrams/deploy_config_full_lvm.gliffy create mode 100644 doc/source/diagrams/deploy_config_full_lvm.png create mode 100644 doc/source/diagrams/deploy_config_full_lvm.svg create mode 100644 doc/source/diagrams/deploy_config_no_lvm.gliffy create mode 100644 doc/source/diagrams/deploy_config_no_lvm.png create mode 100644 doc/source/diagrams/deploy_config_no_lvm.svg create mode 100644 doc/source/diagrams/deploy_config_partial_lvm.gliffy create mode 100644 doc/source/diagrams/deploy_config_partial_lvm.png create mode 100644 doc/source/diagrams/deploy_config_partial_lvm.svg diff --git a/doc/source/deployment.rst b/doc/source/deployment.rst new file mode 100644 index 0000000..3644c8d --- /dev/null +++ b/doc/source/deployment.rst @@ -0,0 +1,1289 @@ +Deployment +++++++++++ + +Conceptual Overview +=================== + +The following is a conceptual overview of the bareon deployment process +and how it can be customised. + +User example: As a sys admin, I am managing a cluster of diskful nodes +and I want to provision all of these nodes with my custom +operating system. + +Deployment: + +* With the required images referenced, deployment is invoked using nova boot \ + (see `Invoking Deployment`_) +* Disks local to each node are partitioned according to a user provided schema \ + (see `Deploy Configuration`_) +* The OS image or images (see `Multiboot`_) \ + are transferred using rsync or swift (see `Image Transfer`_) +* Arbitrary actions, as defined in a user supplied schema are executed \ + (optional, see `Driver Actions`_) +* If an error occurred during deployment an on_fail_script can be configured to run \ + (optional, see `on_fail_script`_) +* Deployment is complete and the node reboots from its local storage. + +Post deployment (optional): + +* Additional driver actions can be performed \ + (see `Driver Actions`_) +* Nodes can be rebuilt (see `Rebuilding Nodes`_) \ + or verified without modifying existing content \ + (see `Redeploying Without Modifying Content`_) + + +Invoking Deployment +=================== + + +Required Images +--------------- + +The following images are required for successful deployment using the bareon agent +(for storage options see `Url Resolution`_ below): + ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| Image | | Example | Description | Referenced by: | ++========================+==============+==============================+====================================================================================+=========================================+ +| Bareon RAM disk | Required | bareon/initramfs.1 | Used by bareon to deploy nodes [1] | ironic node | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| Bareon kernel | Required | bareon/kernel.1 | Used by bareon to deploy nodes [1] | ironic node | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| OS image | Required | centos-7.1.1503.raw | OS and filesystem | nova boot | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| Default deploy schema | Required | cloud_default_deploy_config | Bareon deployment configuration | /etc/ironic/ironic.conf | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| Optional deploy schema | Recommended | deploy_config | Appends default schema, overrides on conflict | nova boot | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| Driver actions | Optional | actions_list | List of arbitrary actions to be ran during/post deployment | nova boot | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| on_fail_script | Optional | on_fail_script | Bash script to be ran on deployment failure | deploy schema | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ +| SSH private key | Optional | id_rsa | Required to run driver actions post deployment or switch between multiboot images | nova boot | ++------------------------+--------------+------------------------------+------------------------------------------------------------------------------------+-----------------------------------------+ + +[1] The bareon RAM disk and kernel images are built using ``bareon/tests_functional/image_build/centos_minimal.sh`` and can be found at ``/tmp/rft_image_build``. + +URL Resolution +^^^^^^^^^^^^^^ + +References given to the bareon driver (e.g. via nova boot) +as well as references from the deploy_config (e.g. on_fail_script) are URLs. +Currently 4 types of URL sources are supported and can be specified by using the +following call structures: + ++-------------+----------------------------------------------------+------------------+ +| URL Source | Call structure | Tenant isolation | ++=============+====================================================+==================+ +| glance | glance: | Yes | ++-------------+----------------------------------------------------+------------------+ +| swift | swift:container_name/object_name | Yes [1] | ++-------------+----------------------------------------------------+------------------+ +| http | http://site/path_to_resource | No | ++-------------+----------------------------------------------------+------------------+ +| rsync | rsync:SERVER_IP::rsync_module/path_to_resource | No | ++-------------+----------------------------------------------------+------------------+ + +[1] Due to an ironic API limitation, to use a swift resource during deployment +(e.g. ``–meta deploy_config=swift:*``), the user should have an ‘admin’ role in his tenant. + +The ``default_resource_storage_prefix`` in ``/etc/ironic/ironic.conf`` +option can be used to shorten the URL for the most frequently used URL type. + +.. note:: + + The default "default_resource_storage_prefix" is "glance:" and so glance images + can be referenced by simply using: + +If set, the prefix can still be overridden if the full URL is passed. +For example, if the option is set to ``http://my-config-site/raw/``, +you can still use another http site if you specify a full URL like: +``http://my-other-config-site/raw/resource_id``. If another storage +type is needed, use the full URL to specify that source. + +Creating glance images +^^^^^^^^^^^^^^^^^^^^^^ + +To use default resource storage (glance), glance images can be created using a +JSON file as follows: + +.. code-block:: console + + glance image-create --is-public True --disk-format raw \ + --container-format bare --name deploy_config_example --file deploy_config_example + +See `Url Resolution`_ for information on how to use alternate storage sources. + +.. warning:: + + For JSON files: an error in the JSON file will prevent the deploy from + succeeding, you should validate the JSON syntax, for example by + executing: + + .. code-block:: console + + glance image-download deploy_config_example | python -m json.tool + + +Image Transfer +^^^^^^^^^^^^^^ + +By default bareon uses rsync to transfer images onto the node. +The settings for rsync are detailed in the deployment configuration schema +(see image_deploy_flags_). For more information on rsync +see https://rsync.samba.org/documentation.html. + +Swift may also be used to transfer files, however it is currently unsupported. + +Deployment Using Nova +--------------------- + +Nodes can be deployed using nova boot by explicitly referencing the required images: + +.. code-block:: console + + nova boot deploy-instance --image centos-7.1.1503.raw \ + --flavor ironic_flavor --meta deploy_config=deploy_config_example \ + --key-name=default + +Invoking Driver Actions +----------------------- + +User example: As a sys admin I want to perform a BIOS update as part of +deployment. I can use driver actions to do this. + +In order to execute actions during deployment, the nova metadata must include +a reference to the desired action list JSON, in this +example ``driver_actions=actions_list_example``. This may be specified as +part of the nova boot command: + +.. code-block:: console + + nova boot deploy-instance --image centos-7.1.1503.raw \ + --flavor ironic_flavor --meta deploy_config=deploy_config_example \ + --key-name=default --meta driver_actions=actions_list_example + +For invoking driver actions on an already deployed node +see `Driver Actions Post Deployment`_. + + +Multiboot +--------- + +User example: In addition to the main operating system I want to boot a second operating +system for running system diagnostics. These should be on separate partitions which can +be individually booted. + +Multiple images can be deployed to a disk or volume and a multiboot node +can be configured by mounting multiple images at root on separate partitions +(see images_). + +Switching between images on a multiboot node is possible following +`Switching Boot Image in a Multiboot Node`_. + +Modifying the Kernel Command Line +--------------------------------- + +You may optionally configure the contents of the command line passed to the kernel at boot +by modifying ``pxe_append_params`` in ``/etc/ironic/ironic.conf``. + + +Deploy Configuration +==================== + + +Deploy Schemas +-------------- + +The bareon driver is controlled by a mandatory JSON file ``cloud_default_deploy_config`` +and an optional (but recommended) JSON file ``deploy_config``, which appends the default and overwrites on conflict. + +Bareon will automatically refer to ``cloud_default_deploy_config`` for all deployments as specified +in ``/etc/ironic/ironic.conf`` whereas ``deploy_config`` is referenced on a node by node basis using +nova boot. Thus it is highly recommended to put any node-specific or +image-specific details into the ``deploy_config`` rather than ``cloud_default_deploy_config``. + +Both files have the same structure consisting of a number of attributes that control +various deployment stages. These attributes and their effect are described in +the `Deploy Configuration JSON Structure`_. + +Currently supported attributes are: + +.. code-block:: json + + { + "image_deploy_flags": "..." + "partitions_policy": "..." + "partitions": "..." + } + +User example: As a sys admin I am doing a clean install of several nodes +each with a different partition schema, I put ``image_deploy_flags`` and +``partitions_policy`` in ``cloud_default_deploy_config`` and +``partitions`` in ``deploy_config`` (see below). If multiple nodes had the +same schema I would include that in ``cloud_default_deploy_config`` overriding +specific nodes with ``deploy_config`` as necessary. + + +Cloud Default Example +--------------------- + +.. code-block:: json + + { + "image_deploy_flags": { + "rsync_flags": "-a -A -X --timeout 300" + }, + "partitions_policy": "clean" + } + + +Deploy Config Examples +---------------------- + +No LVM +^^^^^^ + +.. image:: diagrams/deploy_config_no_lvm.svg + +.. code-block:: json + + { + "partitions": [ + { + "id": { + "type": "name", + "value": "vda" + }, + "type": "disk", + "size": "15000 MB", + "volumes": [ + { + "file_system": "ext4", + "mount": "/", + "size": "7000 MB", + "type": "partition" + }, + { + "file_system": "ext4", + "mount": "/var", + "size": "4000 MB", + "type": "partition" + } + ] + } + ] + } + +Partial LVM +^^^^^^^^^^^ + +.. warning:: Not currently supported. + +.. image:: diagrams/deploy_config_partial_lvm.svg + +.. code-block:: json + + { + "partitions": [ + { + "id": { + "type": "name", + "value": "vda" + }, + "type": "disk", + "size": "15000 MB", + "volumes": [ + { + "file_system": "ext4", + "mount": "/", + "size": "10000 MB", + "type": "partition" + }, + { + "size": "remaining", + "type": "pv", + "vg": "volume_group" + } + ] + }, + { + "id": "volume_group", + "type": "vg", + "volumes": [ + { + "file_system": "ext3", + "mount": "/home", + "name": "home", + "size": "4000 MB", + "type": "lv" + }, + { + "file_system": "ext3", + "mount": "/var", + "name": "var", + "size": "remaining", + "type": "lv" + } + + ] + } + ] + } + +Full LVM +^^^^^^^^ + +.. warning:: Not currently supported. + +.. image:: diagrams/deploy_config_full_lvm.svg + +.. code-block:: json + + { + "partitions": [ + { + "id": { + "type": "name", + "value": "vda" + }, + "type": "disk", + "size": "15000 MB", + "volumes": [ + { + "file_system": "ext4", + "mount": "/boot", + "size": "100 MB", + "type": "partition" + }, + { + "size": "remaining", + "type": "pv", + "vg": "volume_group" + } + ] + }, + { + "id": "volume_group", + "type": "vg", + "volumes": [ + { + "file_system": "ext3", + "mount": "/", + "name": "root", + "size": "10000 MB", + "type": "lv" + }, + { + "file_system": "ext3", + "mount": "/home", + "name": "home", + "size": "4000 MB", + "type": "lv" + }, + { + "file_system": "ext3", + "mount": "/var", + "name": "var", + "size": "remaining", + "type": "lv" + } + ] + } + ] + } + + +Deploy Configuration JSON Structure +----------------------------------- + + +image_deploy_flags +^^^^^^^^^^^^^^^^^^ + +The attribute ``image_deploy_flags`` is composed in JSON, and is used to set flags +in the deployment tool. + +.. note:: Currently used only by rsync. + +The general structure is: + +.. code-block:: console + + "image_deploy_flags": {"rsync_flags": "-a -A -X --timeout 300"} + + +partitions_policy +^^^^^^^^^^^^^^^^^ + +Defines the partitioning behavior of the driver. Optional, default is "verify". +General structure is: + +.. code-block:: console + + "partitions_policy": "verify" + + +The partitions policy can take one of the following values: + +**verify** - Applied in two steps: + +1. Do verification. Compare partitions schema with existing partitions on the + disk(s). If the schema matches the on-disk partition layout + (including registered fstab mount points) then deployment succeeds. + If the schema does not match the on-disk layout, deployment fails and the + node is returned to the pool. No modification to the on-disk content is + made in this case. Any disks present on the target node that are not + mentioned in the schema are ignored. + + .. note:: + + File */etc/fstab* must be present on the node, and written + using partition UUIDs. + + .. note:: + + LVM verification is not supported currently. PVs/VGs/LVs are not being + read from the node. + +2. Clean data on filesystems marked as ``"keep_data": false``. See partitions + sections below. + +**clean** - Applied in a single step: + +1. Ignore existing partitions on the disk(s). Clean the disk and create + partitions according to the schema. Any disks present on the target node + that are not mentioned in the schema are ignored. + + +partitions +^^^^^^^^^^ + + +disk +"""" + +- type - "disk". Required. +- size - Size of disk, required, see `Specifying Size`_. +- id - Used to find a device. Required. For example: + + .. code-block:: console + + "id":{"type": "scsi", "value": "6:1:0:0"} + + "id":{"type": "path", + "value" : "disk/by-path/pci-0000:00:07.0-virtio-pci-virtio3"} + + "id":{"type": "path", + "value" : "disk/by-id/ata-SomeSerialNumber"} + + "id":{"type": "name", "value": "vda"} + + .. note:: + + A good description of the various paths which may be used to specify + a block device in a persistent way is given + `here `_. + However, it is important to note that depending on the ramdisk and kernel + these may change. For example, it has been observed that the disk/by-id/wwn + field is permuted from, for example *wwn-0x5bea7a3ac5005000* to + *wwn-0x5000c5007a3a5bea* when booting different reference images. + +- volumes - Array of partitions / physical volumes. See below. Required. + + +partition +""""""""" + +- type - "partition". Required. +- size - Size of partition, required, see `Specifying Size`_. +- mount - Mount point, e.g. "/", "/usr". Optional (not mounted by default). +- file_system - File system type. Passed down to mkfs call. + Optional (xfs by default). +- disk_label - Filesystem label. Optional (empty by default). +- partition_guid - GUID that will be assigned to partition. Optional. +- fstab_enabled - boolean value that specifies whether the partition will be + included in /etc/fstab and mounted. Optional (true by default). +- fstab_options - string to specify fstab mount options. + Optional ('defaults' by default). +- keep_data - Boolean flag specifying whether or not to preserve data on this + partition. Applied when ``verify`` partitions_policy is used. Optional (true + by default). + +.. warning:: + + If you are using the bareon swift deployment driver (swift_*), + care must be taken when declaring mount points in your deployment + configuration file that may conflict with those that exist in the tenant + image. Doing this will cause the mount points defined in the deployment + configuration to mask the corresponding directories in the tenant image + when the deployment completes. For example, if your deployment + configuration file contains a definition for '/etc/', the deployment will + create an empty filesystem on disk and mount it on /etc in the tenant image. + This will hide the contents of '/etc' from the original tenant image with + the on-disk filesystem which was created during deployment. + + +physical volume +""""""""""""""" + +- type - "pv". Required. +- size - Size of the physical volume, required, see `Specifying Size`_. +- vg - id of the volume group this physical volume should belong to. Required. +- lvm_meta_size - a size that given to lvm to store metadata. + Optional (64 MiB by default). Minimum allowable value: 10 MiB. +- images - A list of strings, specifying the images to be used during deployment. + Images are referred to by the name specified in the “name” attribute of the image (see see `Images`_). + Optional. + + +volume group +"""""""""""" + +- type - "vg". Required. +- id - Volume group name. Should be referred at least once from pv. Required. +- volumes - Array of logical volumes. See below. Required. + + +logical volume +"""""""""""""" + +- type - "lv". Required. +- name - Name of the logical volume. Required. +- size - Size of the logical volume, required, see `Specifying Size`_. +- mount - Mount point, e.g. "/", "/usr". Optional. +- file_system - File system type. Passed down to mkfs call. + Optional (xfs by default). +- disk_label - Filesystem label. Optional (empty by default). +- images - A list of strings, specifying the images to be used during deployment. + Images are referred to by the name specified in the “name” attribute of the image (see see `Images`_). + Optional. + +.. warning:: + + If you are using the bareon swift deployment driver (swift_*), + care must be taken when declaring mount points in your deployment + configuration file that may conflict with those that exist in the tenant + image. Doing this will cause the mount points defined in the deployment + configuration to mask the corresponding directories in the tenant image + when the deployment completes. For example, if your deployment + configuration file contains a definition for '/etc/', the deployment will + create an empty filesystem on disk and mount it on /etc in the tenant image. + This will hide the contents of '/etc' from the original tenant image with + the on-disk filesystem which was created during deployment. + +.. note:: + + Putting a "/" partition on LVM requires a standalone "/boot" partition + defined in the schema and the node should be managed by the rsync ironic + driver. + + +images +^^^^^^ + +Contains a list of image specifications to be used during deployment. +If no list of images is supplied, the list will default to one image: +the one passed via the ``-–image`` arg of ``nova boot`` command. + +Each partition has an image to which it belongs, this partition is mounted into the filesystem +tree before the image is deployed, and then included into the fstab file of that +filesystem. By default the partition belongs to the first image in the list of images. + +Other images can be specified which will be appended to this list and can be used to +create a multiboot node. + +An example of the ``deploy_config`` for two-image deployment: + +.. code-block:: json + + { + "images": [ + { + "name": "centos", + "url": "centos-7.1.1503.raw", + "target": "/" + }, + { + "name": "ubuntu", + "url": "ubuntu-14.04.raw", + "target": "/" + } + ], + "partitions": [ + { + "id": { + "type": "name", + "value": "vda" + }, + "type": "disk", + "size": "15000 MB", + "volumes": [ + { + "file_system": "ext4", + "mount": "/", + "size": "5000 MB", + "type": "partition", + "images": ["centos"] + }, + { + "file_system": "ext4", + "mount": "/", + "size": "5000 MB", + "type": "partition", + "images": ["ubuntu"] + } + ] + } + ], + "partitions_policy": "clean" + } + + +During the multi-image deployment, the initial boot image is specified via the +``nova boot --image `` attribute. For example with the config shown +above, if you need the node to start from ubuntu, pass ``--image ubuntu-14.04.raw`` +to ``nova boot``. + +.. note:: + + If one of the images used in a multi-image deployment has grub1 installed, + it is not guaranteed that it will appear in a resulting grub.cfg and a list + of available images. + +The process of switching the active image is described in `Switching Boot Image in a Multiboot Node`_ +section. + +Images JSON attributes and their effect are described below. + + +name +"""" + +An alias name of the image. Referenced by the ``images`` attribute of the +partition or logical volume (see `physical volume`_, `logical volume`_). +Required. + + +url +""" + +A URL pointing to the image. See `Url Resolution`_ for available storage sources. Required. + + +target +"""""" + +A point in the filesystem tree where the image should be deployed. Required. + +For standard cloud images this will be a ``/``. Utility images can have +a different value, like ``/usr/share/utils``. + +User example: As a sys admin, I want a utilities image to be deployed to its own partition, +which is to be included in the fstab file of both of the two other images (Centos and Ubuntu): + +.. code-block:: json + + { + "images":[ + { + "name":"centos", + "url":"centos-7.1.1503.raw", + "target":"/" + }, + { + "name":"ubuntu", + "url":"ubuntu-14.04.raw", + "target":"/" + }, + { + "name":"utils", + "url":"utils-ver1.0", + "target":"/usr/share/utils" + } + ], + "partitions":[ + { + "id":{ + "type":"name", + "value":"vda" + }, + "type":"disk", + "size": "15000 MB", + "volumes":[ + { + "file_system":"ext4", + "mount":"/", + "size":"5000 MB", + "type":"partition", + "images":[ + "centos" + ] + }, + { + "file_system":"ext4", + "mount":"/", + "size":"5000 MB", + "type":"partition", + "images":[ + "ubuntu" + ] + } + ] + }, + { + "mount":"/usr/share/utils", + "images":[ + "centos", + "ubuntu", + "utils" + ], + "type":"partition", + "file_system":"ext4", + "size":"2000" + } + ], + "partitions_policy":"clean" + } + +.. note:: + + The partition "images" list also includes "utils" image as well. + The utils partition virtually belongs to the "utils" image, and is mounted + to the fs tree before the "utils" image deployment (fake root in this case). + + +on_fail_script +^^^^^^^^^^^^^^ + +Carries a URL reference to a shell script (bash) executed inside ramdisk in case +of non-zero return code from bareon-agent. Optional (default is empty shell). + +General structure is: + +.. code-block:: console + + "on_fail_script": "my_on_fail_script.sh" + +Once the script is executed, the output is printed to the ironic-conductor log +(``ir-cond.log``). + + +Specifying Size +--------------- + +The 'size' value of a partition, physical or logical volume can be +specified as follows: + + +**Size String** + +.. code-block:: console + + "size": "15000 MB" + +Available measurement units are: 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB', +'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'. + +**Percentage** + +.. code-block:: console + + "size": "50%" + +Percentages are calculated after taking into account any overhead as discussed +in `Implicitly taken space in partitions schema`_. + + +**Remainder** + +.. code-block:: console + + "size": "remaining" + +The keyword "remaining" uses all available space after taking into account +any overhead as discussed in `Implicitly taken space in partitions schema`_. +It can be used once per device. When specifying the size of +partitions on a disk, only one partition may specify a size of "remaining". + + +Implicitly taken space in partitions schema +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The bareon driver implicitly creates a number of partitions/spaces: + +- For every disk in the schema the bareon driver creates a 24 MiB partition + at the beginning. This is to allow correct installation of Grub Stage 1.5 + data. It is implicitly created for every disk in schema even if the disk + does not have /boot partition. Thus if 10000 MiB disk size is declared by + schema, 9976 MiB is available for partitions/pvs. 24 MiB value is not + configurable. + +- Every physical volume has 64 MiB less space than in takes on disk. If you + declare a physical volume of size 5000 MiB, the volume group will get 4936 + MiB available. If there are two physical volumes of 5000 MiB, the resulting + volume group will have 9872 MiB (10000 - 2*64) available. This extra space + is left for LVM metadata. 64 MiB value can be overridden by lvm_meta_size + attribute of the pv, see `physical volume`_. + +- In case of multi-image deployment (see `Images`_) an additional + 100 MiB partition is created on the boot disk (the 1st disk referred from + ``deploy_config``). This partition is used to install the Grub boot loader. + +It is not necessary to precisely calculate how much space is left. You may +leave for example 100 MiB free on each disk, and about 100-200 MiB in each +volume group, depending on how many physical volumes are in the group. +Alternatively you can use the "remaining" keyword or percentages to let the +bareon driver calculate this for you, see `disk`_. + + +Editing an existing bareon deployment configuration +--------------------------------------------------- + +The following steps can be taken in order to change an existing bareon deployment +configuration: + +#. Download the existing bareon cloud deploy configuration: + + .. code-block:: console + + glance image-download deploy_config_example \ + --file /tmp/deploy_config_example + +#. Edit the configuration as needed with an editor or, + e.g. (in this example a bandwidth limit is being added): + + .. code-block:: console + + sed -i.bak \ + -e 's/"-a -A -X --timeout 300"/"-a -A -X --timeout 300 --bwlimit 12500"/g' \ + /tmp/deploy_config_example + +#. Validate the json structure (this command shouldn't print anything if the + file contains valid json): + + .. code-block:: console + + python -m json.tool /tmp/deploy_config_example > /dev/null + +#. Delete the old cloud deploy configuration image: + + .. code-block:: console + + glance image-delete deploy_config_example + +#. Upload the new cloud deploy configuration image: + + .. code-block:: console + + glance image-create \ + --name deploy_config_example \ + --container-format bare \ + --disk-format raw \ + --is-public True \ + --file /tmp/deploy_config_example + +#. Download the cloud deploy configuration image in order to check that the + changes have been applied: + + .. code-block:: console + + glance image-download deploy_config_example + { + "image_deploy_flags": { + "rsync_flags": "-a -A -X --timeout 300 --bwlimit 12500" + } + } + + +Driver Actions +============== + +The ironic bareon driver can execute arbitrary user actions provided in a JSON +file describing the actions to be performed. This file has a number of +sections to control the execution of these actions. +To use the ironic bareon driver actions execution you must create an action list in +the resource storage to reference. + + +Actions List JSON Structure +--------------------------- + + +actions +^^^^^^^ +An attribute called ``actions`` holds a list of actions being applied +to the node. Actions are executed in the order in which they appear in the list. + +General structure is: + +.. code-block:: json + + { + "actions": + [ + { + "cmd": "cat", + "name": "print_config_file", + "terminate_on_fail": true, + "args": "/tmp/conf", + "sudo": true, + "resources": + [ + { + "name": "resource_1", + "url": "my-resource-url-1", + "mode": "push", + "target": "/tmp/conf" + }, + { + "name": "resource_2", + "url": "my-resource-url-2", + "mode": "push", + "target": "/tmp/other-file" + }, + { + "...more resources" + } + ] + }, + { + "...more actions" + } + ] + } + +- cmd - shell command to execute. Required. +- args - arguments for cmd. Required. +- name - alpha-numeric name of the action. Required. +- terminate_on_fail - flag to specify if actions execution should be terminated + in case of action failure. Required. +- sudo - flag to specify if execution should be executed with sudo. Required. +- resources - array of resources. See resource. Required. May be an empty list. + +resource +"""""""" + +Defines the resource required to execute an action. General structure is: + +.. code-block:: json + + { + "name": "resource_1", + "url": "resource-url", + "mode": "push", + "target": "/tmp/conf" + } + +- name - alpha-numeric name of the resource. Required. +- url - a URL pointing to resource. See `Url Resolution`_ for available + storage sources. +- mode - resource mode. See below. Required. +- target - target file name on the node. Required. + +Resource **mode** can take one of the following: + +- **push**. A resource of this type is cached by the ironic conductor and + uploaded to the node at target path. + +- **pull**. A resource of this type is cached by the ironic conductor and the + reference to the resource is passed to the node (the reference is written + to the file specified by the 'target' attribute) so that it can be pulled + as part of the action. The reference is an rsync path that allows the node + to pull the resource from the conductor. A typical way to pull the + resource is: + +.. code-block:: console + + root@baremetal-node # rsync $(cat /ref/file/path) . + + +- **pull-mount**. Like resources in pull mode, the resource is cached and the + reference is passed to the target node. However, pull-mount resources are + assumed to be file system images and are mounted in loopback mode by the + ironic conductor. This allows the referencing action to pull from the + filesystem tree as is done during rsync-based deployments. The following + example will pull the contents of the image to the /root/path: + +.. code-block:: console + + root@baremetal-node # rsync -avz $(cat /ref/file/path) /root/path + + +- **pull-swift-tempurl**. For resources of this type, ironic obtains a swift + tempurl reference to the object and writes this tempurl to the file + specified by the resource 'target' attribute. The tempurl duration is + controlled by the ``/etc/ironic/ironic.conf``: + + * for ``glance:`` URLs an option ``swift_temp_url_duration`` from [glance] + section is used; + * for ``swift:`` URLs an option ``swift_native_temp_url_duration`` + from [swift] section is used. + +.. note:: + + To use 'pull-swift-tempurl' resource with glance store glance must be + set to have swift as a backend. + +.. note:: + + Although all the glance images are stored in the same swift container, + tempurls obtained from glance are considered tenant-isolated because the + tenant is checked by glance as part of the generation of the temporary URL. + +Resources of all modes can be mixed in a single action. + + +Post Deployment +=============== + + +Switching Boot Image in a Multiboot Node +---------------------------------------- + +If a node has more than one image deployed (see `Images`_), the user can +switch the boot image in two ways. Both of them require ironic conductor to SSH to +the node, thus SSH user/key needs to be provided using the ``sb_user`` and ``sb_key`` meta +attributes. These stand for 'switch boot user' and 'switch boot key'. They are the username +and a URL pointing to a SSH private key that can be used to SSH to the node (ie the node has a +corresponding public key installed). Only sources with tenant isolation can be used for this URL. +See `Url Resolution`_ for available storage sources. + +Switching via nova rebuild +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To list images available to boot: + +.. code-block:: console + + nova show $VM_NAME + +In the output from this command the ``metadata`` attribute will show a list of available images, like: + +.. code-block:: console + + "available_images": ['centos-7.1.1503.raw', 'ubuntu-14.04.raw'] + +The currently booted image is shown by ``image`` attribute of the VM. Let's say the +current image is ``centos-7.1.1503.raw``. To switch to ``ubuntu-14.04.raw`` do: + +.. code-block:: console + + nova rebuild $VM_NAME 'ubuntu-14.04.raw' \ + --meta sb_key=$URL --meta sb_user=centos + +Switching boot device through ``nova rebuild`` will also trigger an ironic node reboot. +The nova instance will be in the ``rebuild_spawning`` state during the switching process. Once +it is active the node will start booting the specified image. If the switch did not +complete properly, issue another ``nova show`` and check for ``switch_boot_error`` +attribute in VM metadata. + +.. Note:: + + For single-boot nodes, a rebuild command will trigger a standard rebuild flow, + for multiboot nodes it is still possible to trigger a standard rebuild flow using + "force_rebuild" meta flag: ``nova rebuild VM_NAME 'ubuntu-14.04.raw' --meta force_rebuild=True`` + +Switching via ironic node vendor-passthru +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To list images available to boot: + +.. code-block:: console + + ironic node-show $NODE_NAME + +The output will contain the ``instance_info/multiboot_info/elements`` attribute, +which will include a list of available images. Example CLI output: + +.. code-block:: console + + ... + | | u'multiboot_info': {u'elements': [{u'grub_id': 0, u'image_name': | + | | u'centos-7.1.1503.raw', u'os_id': u'centos', u'image_uuid': | + | | u'f9ae2956-cb66-47f9-a358-bb546580c499', u'boot_name': u'CentOS Linux | + | | release 7.2.1511 (Core) (on /dev/vda3)', u'root_uuid': u'3a5e1bd7-de0f- | + | | 40a4-81ef-a6c1ee6fc8b2'}, {u'grub_id': 2, u'image_name': u'ubuntu- | + | | 14.04.raw', u'os_id': u'ubuntu', u'image_uuid': | + | | u'e27b81cd-a005-4ee5-acd5-b1e69a229dcf', u'boot_name': u'Ubuntu Linux | + | | release 14.04 LTS (Core) (on /dev/vda4)', u'root_uuid': u'dcbf7a9b- | + | | b18a-4026-9e20-e7bb520d219a'}], u'current_element': 1, | + ... + +Every element has a ``grub_id`` +attribute, which shows its ID in the grub menu. An ``instance_info/multiboot_info/current_element`` +shows the ID of the currently selected image. To switch to another image do: + +.. code-block:: console + + ironic node-vendor-passthru $NODE_NAME switch_boot \ + image= ssh_key=$URL ssh_user=centos + +The API is synchronous, it will block until the switch is done. + +Note that switching boot device through ``ironic node-vendor-passthru`` will not +trigger an ironic node reboot. It only updates the grub.cfg. The node needs to be +rebooted separately, after the vendor API returns: + +.. code-block:: console + + ironic node-set-power-state $NODE_NAME reboot + +Once it is done the node will start booting the specified image. + +.. note:: + + If ironic CLI is used to switch the boot device, nova VM 'image', as well as ironic + 'instance_info/image_source' are not updated to point to the currently booted image. + + +Driver Actions Post Deployment +------------------------------ + +Actions can also be executed on a working node. To do so the following +parameters must be added to the action configuration file in `Driver Actions`_: + + +action_key +^^^^^^^^^^ + +An attribute called ``action_key`` holds a resource storage URL pointing to a SSH +private key contents being used to establish SSH connection to the node. + +Only sources with tenant isolation can be used for this URL. See +`Url Resolution`_ for available storage sources. + +.. code-block:: console + + "action_key": "ssh_key_url" + + +action_user +^^^^^^^^^^^ + +An attribute called action_user holds a name of the user used to establish +an SSH connection to the node with the key provided in action_key. + +.. code-block:: console + + "action_user": "centos" + +Example +^^^^^^^ + +.. code-block:: console + + cat actions_list_example + +.. code-block:: json + + { + "action_key": "ssh-key-url", + "action_user": "centos", + "actions": + [ + "..." + ] + } + +Invoking Driver Actions +^^^^^^^^^^^^^^^^^^^^^^^ + +In order to execute actions whilst the node is running, +you should specify ``exec_actions`` node-vendor-passthru method, +``driver_actions=actions_list_example`` property and node uuid. +For example: + +.. code-block:: console + + ironic node-vendor-passthru --http-method POST \ + node_uuid exec_actions driver_actions=actions_list_example + + +Rebuilding Nodes +---------------- + +The ``nova rebuild`` command may be used to force the redeployment of a node. + +.. code-block:: console + + nova rebuild deploy-instance centos-7.1.1503.raw + +To make the redeployment use a deployment configuration different to that +previously configured use the ``--meta`` option: + +.. code-block:: console + + nova rebuild deploy-instance centos-7.1.1503.raw --meta deploy_config=new_deploy_config + +Similarly, alternative driver_actions may also be passed using ``--meta``: + +.. code-block:: console + + nova rebuild deploy-instance centos-7.1.1503.raw --meta driver_actions=actions_list_example + +Both driver_actions and deploy_configs may be passed by specifying multiple +``--meta`` arguments: + +.. code-block:: console + + nova rebuild deploy-instance centos-7.1.1503.raw \ + --meta deploy_config=new_deploy_config \ + --meta driver_actions=actions_list_example + + +Redeploying Without Modifying Content +------------------------------------- + +There are circumstances where you may want to carry out a deployment to a node +without modifying the contents of the disk in the node. + +There are some prerequisites for this process: + +* The node must be currently enrolled in ironic and must be using the bareon + rsync driver for deployment +* The bareon partition schema associated with the node must: + + * match the partition table on the node + * specify disks by ID when more than one disk is listed in the schema +* All disks listed in the bareon partition schema associated with the node must: + + * have previously been deployed using bareon + * not use LVM + +If these conditions are satisfied then you may deploy to the node using your +normal process, however the bareon deploy configuration used must have: + +* ``partition_policy`` set to ``verify`` instead of ``clean`` (see + `partitions_policy`_) +* The ``keep_data`` flag must be set to ``True`` (which is the default) on all + partitions to be retained (see `partition`_) +* The ``image_deploy_flags`` must contain an ``rsync_flags`` entry with the + ``--dry-run`` option. You should also include the default ``rsync_flags`` + entries as described in `image_deploy_flags`_. + +A partial example of a suitable bareon deploy configuration, omitting the +partition schema: + +.. code-block:: json + + { + "image_deploy_flags": { + "rsync_flags": "-a -A -X --timeout 300 --dry-run" + }, + "partitions_policy": "verify", + "partitions": [ + ] + } + +.. note:: + + More fine-grained control over file retention is possible using the + capabilities provided by rsync: refer to the rsync documentation for further + details. + + For example, to redeploy the disk leaving the contents of ``/etc`` and + ``/home`` unmodified you could use ``--exclude /etc/* --exclude /home/*`` in + place of ``--dry-run`` in ``rsync_flags``. diff --git a/doc/source/diagrams/deploy_config_full_lvm.gliffy b/doc/source/diagrams/deploy_config_full_lvm.gliffy new file mode 100644 index 0000000..d4cfecd --- /dev/null +++ b/doc/source/diagrams/deploy_config_full_lvm.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":632,"height":299,"nodeIndex":32,"autoFit":true,"exportBorder":false,"gridOn":true,"snapToGrid":true,"drawingGuidesOn":true,"pageBreaksOn":false,"printGridOn":false,"printPaper":null,"printShrinkToFit":false,"printPortrait":false,"maxWidth":5000,"maxHeight":5000,"themeData":null,"imageCache":{},"viewportType":"default","fitBB":{"min":{"x":19.999999999999986,"y":20.5},"max":{"x":631.1475752708898,"y":298.5}},"printModel":{"pageSize":"a4","portrait":false,"fitToOnePage":false,"displayPageBreaks":false},"objects":[{"x":125.34053902355498,"y":60.5,"rotation":0.0,"id":30,"width":380.0,"height":200.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#999999","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":26.147575270889746,"y":22.0,"rotation":0.0,"id":29,"width":98.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":4,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mount

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":145.14757527088972,"y":80.5,"rotation":0.0,"id":27,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":6,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":28,"width":96.0,"height":14.0,"uid":null,"order":9,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

root

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"v1qK2f6xvd7q"}],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":145.14757527088972,"y":120.5,"rotation":0.0,"id":25,"width":340.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":11,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":6.799999999999995,"y":0.0,"rotation":0.0,"id":26,"width":326.4,"height":14.0,"uid":null,"order":14,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

volume_group

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"v1qK2f6xvd7q"}],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":145.34053902355498,"y":178.5,"rotation":0.0,"id":23,"width":340.0,"height":19.999999999999996,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":16,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":6.799999999999997,"y":0.0,"rotation":0.0,"id":24,"width":326.4000000000001,"height":14.0,"uid":null,"order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

pv

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"v1qK2f6xvd7q"}],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":525.1475752708898,"y":178.5,"rotation":0.0,"id":21,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":21,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":22,"width":96.0,"height":14.0,"uid":null,"order":24,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

partition [1]

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"v1qK2f6xvd7q"}],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":-206.85242472911028,"y":210.09999084472656,"rotation":0.0,"id":20,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":26,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":27,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[402.0,-129.59999084472656],[402.0,-169.59999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":181.95461151822445,"y":218.59999084472656,"rotation":0.0,"id":19,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":28,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":21,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[393.1929637526653,-40.09999084472656],[393.1929637526653,-178.09999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":111.50705084398484,"y":46.09999084472656,"rotation":0.0,"id":18,"width":419.0867367676637,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":30,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-87.00705084398486,-5.59999084472679],[513.9774033743798,-5.5999908447265625]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":26.147575270889746,"y":181.5,"rotation":0.0,"id":17,"width":98.0,"height":17.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":32,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

disk

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":143.8856161686455,"y":166.09999084472656,"rotation":0.0,"id":16,"width":503.8535437216023,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":34,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"4.0,4.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-117.87565445712187,-5.5999908447265625],[480.59634562137524,-5.599990844726221]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":635.9777051708526,"y":104.09999084472656,"rotation":0.0,"id":15,"width":503.8535437216023,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":36,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"4.0,4.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-609.9677434593286,117.40000915527344],[-11.989053427938416,117.40000915527366]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":125.34053902355498,"y":230.5,"rotation":0.0,"id":14,"width":380.0,"height":30.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":38,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

LVM

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":145.14757527088972,"y":20.5,"rotation":0.0,"id":13,"width":100.0,"height":17.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":40,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":525.1475752708898,"y":20.5,"rotation":0.0,"id":12,"width":100.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":42,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/boot

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":265.1475752708897,"y":80.5,"rotation":0.0,"id":10,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":44,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":11,"width":96.0,"height":14.0,"uid":null,"order":47,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

home

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"v1qK2f6xvd7q"}],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":143.14757527088972,"y":200.09999084472656,"rotation":0.0,"id":9,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":49,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":10,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[172.0,-119.59999084472656],[172.0,-159.59999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":265.1475752708897,"y":20.0,"rotation":0.0,"id":8,"width":100.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":51,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/home

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":26.147575270889746,"y":120.5,"rotation":0.0,"id":7,"width":98.0,"height":20.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":53,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

vg

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":26.147575270889746,"y":80.5,"rotation":0.0,"id":6,"width":98.0,"height":20.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":55,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

lv

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":385.340539023555,"y":80.5,"rotation":0.0,"id":4,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":57,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":5,"width":96.0,"height":14.0,"uid":null,"order":60,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

var

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"v1qK2f6xvd7q"}],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":153.14757527088972,"y":210.09999084472656,"rotation":0.0,"id":3,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":62,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":4,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[282.19296375266526,-129.59999084472656],[282.19296375266526,-169.59999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":385.340539023555,"y":20.0,"rotation":0.0,"id":2,"width":100.0,"height":15.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":64,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/var

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"},{"x":26.147575270889746,"y":284.5,"rotation":0.0,"id":1,"width":221.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":66,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

[1] Required if root ("/") is located on LVM

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"v1qK2f6xvd7q"}],"layers":[{"guid":"v1qK2f6xvd7q","order":0,"name":"Layer 0","active":true,"locked":false,"visible":true,"nodeIndex":67}],"shapeStyles":{},"lineStyles":{},"textStyles":{}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.images"],"lastSerialized":1480956222075,"analyticsProduct":"Confluence"},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/doc/source/diagrams/deploy_config_full_lvm.png b/doc/source/diagrams/deploy_config_full_lvm.png new file mode 100644 index 0000000000000000000000000000000000000000..95ac86062e72ffaf9c98af1687544113fb7f400b GIT binary patch literal 18209 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 [1]diskLVM//boothome/homevglvvar/var[1]Requiredifroot ("/")islocatedonLVM \ No newline at end of file diff --git a/doc/source/diagrams/deploy_config_no_lvm.gliffy b/doc/source/diagrams/deploy_config_no_lvm.gliffy new file mode 100644 index 0000000..7c62f80 --- /dev/null +++ b/doc/source/diagrams/deploy_config_no_lvm.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":374,"height":225,"nodeIndex":16,"autoFit":true,"exportBorder":false,"gridOn":true,"snapToGrid":true,"drawingGuidesOn":true,"pageBreaksOn":false,"printGridOn":false,"printPaper":null,"printShrinkToFit":false,"printPortrait":false,"maxWidth":5000,"maxHeight":5000,"themeData":null,"imageCache":{},"viewportType":"default","fitBB":{"min":{"x":19.999999999999986,"y":19.5},"max":{"x":373.2422578584874,"y":224.42847245662153}},"printModel":{"pageSize":"a4","portrait":false,"fitToOnePage":false,"displayPageBreaks":false},"objects":[{"x":27.74225785848742,"y":20.928472456621535,"rotation":0.0,"id":13,"width":98.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mount

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":145.24225785848742,"y":178.0,"rotation":0.0,"id":11,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":4,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":12,"width":96.0,"height":14.0,"uid":null,"order":7,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

partition

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"UKAIlALvl7T6"}],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":-197.95070589417784,"y":218.09999084472656,"rotation":0.0,"id":10,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":9,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":11,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[393.19296375266526,-40.09999084472656],[393.19296375266526,-178.09999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":74.19773599532245,"y":45.0284633013481,"rotation":0.0,"id":9,"width":239.3790135510661,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":11,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-49.69773599532246,-5.599990844726747],[291.0538818215025,-6.0999908447265625]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":27.74225785848742,"y":180.42847245662153,"rotation":0.0,"id":8,"width":98.0,"height":17.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":13,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

disk

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":92.25374666383769,"y":165.0284633013481,"rotation":0.0,"id":7,"width":285.98522594281894,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":15,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"4.0,4.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-66.90574293490343,-5.5999908447265625],[270.81346488844804,-5.5999908447265625]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":371.56321865542304,"y":103.0284633013481,"rotation":0.0,"id":6,"width":285.98522594281894,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":17,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"4.0,4.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-346.21521492648867,117.40000915527344],[-8.4960071031372,117.40000915527344]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":145.24225785848742,"y":20.0,"rotation":0.0,"id":5,"width":100.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":267.2422578584874,"y":178.42847245662153,"rotation":0.0,"id":3,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":21,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":4,"width":96.0,"height":14.0,"uid":null,"order":24,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

partition

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"UKAIlALvl7T6"}],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":-75.95070589417784,"y":218.5284633013481,"rotation":0.0,"id":2,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":26,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":3,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[393.19296375266526,-40.09999084472656],[393.19296375266526,-179.0284633013481]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"},{"x":267.2422578584874,"y":20.0,"rotation":0.0,"id":1,"width":100.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":28,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/var

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"UKAIlALvl7T6"}],"layers":[{"guid":"UKAIlALvl7T6","order":0,"name":"Layer 0","active":true,"locked":false,"visible":true,"nodeIndex":29}],"shapeStyles":{},"lineStyles":{},"textStyles":{}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.images"],"lastSerialized":1480956585733,"analyticsProduct":"Confluence"},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/doc/source/diagrams/deploy_config_no_lvm.png b/doc/source/diagrams/deploy_config_no_lvm.png new file mode 100644 index 0000000000000000000000000000000000000000..351f260971597bfd3ee49c964219cbb9ebf02aa3 GIT binary patch literal 7147 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 UcjizRT;f4ciWmountpartitiondisk/partition/var \ No newline at end of file diff --git a/doc/source/diagrams/deploy_config_partial_lvm.gliffy b/doc/source/diagrams/deploy_config_partial_lvm.gliffy new file mode 100644 index 0000000..1c54d94 --- /dev/null +++ b/doc/source/diagrams/deploy_config_partial_lvm.gliffy @@ -0,0 +1 @@ +{"contentType":"application/gliffy+json","version":"1.3","stage":{"background":"#FFFFFF","width":509,"height":268,"nodeIndex":27,"autoFit":true,"exportBorder":false,"gridOn":true,"snapToGrid":true,"drawingGuidesOn":true,"pageBreaksOn":false,"printGridOn":false,"printPaper":null,"printShrinkToFit":false,"printPortrait":false,"maxWidth":5000,"maxHeight":5000,"themeData":null,"imageCache":{},"viewportType":"default","fitBB":{"min":{"x":20.000000000000014,"y":20.5},"max":{"x":508.26881216955917,"y":260.5}},"printModel":{"pageSize":"a4","portrait":false,"fitToOnePage":false,"displayPageBreaks":false},"objects":[{"x":123.46177592222443,"y":60.5,"rotation":0.0,"id":25,"width":260.0,"height":200.0,"uid":"com.gliffy.shape.basic.basic_v1.default.rectangle","order":2,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#999999","fillColor":"#ffffff","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":25.46177592222442,"y":20.5,"rotation":0.0,"id":24,"width":98.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":4,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

mount

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":140.26881216955917,"y":120.5,"rotation":0.0,"id":22,"width":220.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":6,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":4.399999999999998,"y":0.0,"rotation":0.0,"id":23,"width":211.19999999999996,"height":14.0,"uid":null,"order":9,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

volume_group

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"JWVt6bqTSTPW"}],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":140.46177592222443,"y":178.5,"rotation":0.0,"id":20,"width":220.0,"height":19.999999999999996,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":11,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":4.399999999999998,"y":0.0,"rotation":0.0,"id":21,"width":211.20000000000007,"height":14.0,"uid":null,"order":14,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

pv

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"JWVt6bqTSTPW"}],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":402.26881216955917,"y":178.5,"rotation":0.0,"id":18,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":16,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":19,"width":96.0,"height":14.0,"uid":null,"order":19,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

partition

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"JWVt6bqTSTPW"}],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":59.07584841689389,"y":218.59999084472656,"rotation":0.0,"id":17,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":21,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":18,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[393.19296375266526,-40.09999084472656],[393.19296375266526,-178.09999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":111.79515366134905,"y":46.09999084472656,"rotation":0.0,"id":16,"width":420.47444119404656,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":23,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":2.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-87.29515366134903,-5.599990844726733],[391.2061106837502,-5.599990844726733]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":25.46177592222442,"y":181.92847245662153,"rotation":0.0,"id":15,"width":98.0,"height":17.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":25,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

disk

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":119.21293585372595,"y":166.09999084472656,"rotation":0.0,"id":14,"width":401.8973950982236,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":27,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"4.0,4.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-94.02319198134178,-5.5999908447265625],[380.5763942433631,-5.5999908447265625]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":511.7288389029376,"y":104.09999084472656,"rotation":0.0,"id":13,"width":401.8973950982236,"height":2.0,"uid":"com.gliffy.shape.basic.basic_v1.default.line","order":29,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":"4.0,4.0","startArrow":0,"endArrow":0,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[-486.53909503055326,117.40000915527344],[-11.93950880584845,117.40000915527344]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":118.46177592222443,"y":230.5,"rotation":0.0,"id":12,"width":262.0,"height":30.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":31,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

LVM

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":400.26881216955917,"y":20.5,"rotation":0.0,"id":11,"width":100.0,"height":14.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":33,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":140.26881216955917,"y":80.5,"rotation":0.0,"id":9,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":35,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":10,"width":96.0,"height":14.0,"uid":null,"order":38,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

home

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"JWVt6bqTSTPW"}],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":18.268812169559155,"y":200.09999084472656,"rotation":0.0,"id":8,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":40,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":9,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[172.0,-119.59999084472656],[172.0,-159.59999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":140.26881216955917,"y":20.0,"rotation":0.0,"id":7,"width":100.0,"height":16.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":42,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/home

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":25.46177592222442,"y":120.5,"rotation":0.0,"id":6,"width":98.0,"height":20.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":44,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

vg

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":23.866448950074968,"y":80.5,"rotation":0.0,"id":5,"width":98.0,"height":20.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":46,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

lv

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":260.46177592222443,"y":80.5,"rotation":0.0,"id":3,"width":100.0,"height":20.0,"uid":"com.gliffy.shape.flowchart.flowchart_v1.default.process","order":48,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Shape","Shape":{"tid":"com.gliffy.stencil.rectangle.basic_v1","strokeWidth":2.0,"strokeColor":"#333333","fillColor":"#FFFFFF","gradient":false,"dashStyle":null,"dropShadow":false,"state":0,"opacity":1.0,"shadowX":0.0,"shadowY":0.0}},"linkMap":[],"children":[{"x":2.0,"y":0.0,"rotation":0.0,"id":4,"width":96.0,"height":14.0,"uid":null,"order":51,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":8,"paddingRight":8,"paddingBottom":8,"paddingLeft":8,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

var

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"hidden":false,"layerId":"JWVt6bqTSTPW"}],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":28.268812169559155,"y":210.09999084472656,"rotation":0.0,"id":2,"width":100.0,"height":100.0,"uid":"com.gliffy.shape.uml.uml_v2.sequence.message","order":53,"lockAspectRatio":false,"lockShape":false,"constraints":{"constraints":[],"startConstraint":{"type":"StartPositionConstraint","StartPositionConstraint":{"nodeId":3,"py":0.0,"px":0.5}}},"graphic":{"type":"Line","Line":{"strokeWidth":1.0,"strokeColor":"#000000","fillColor":"none","dashStyle":null,"startArrow":0,"endArrow":2,"startArrowRotation":"auto","endArrowRotation":"auto","interpolationType":"linear","cornerRadius":null,"controlPath":[[282.19296375266526,-129.59999084472656],[282.19296375266526,-169.59999084472656]],"lockSegments":{},"ortho":false}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"},{"x":260.46177592222443,"y":20.0,"rotation":0.0,"id":1,"width":100.0,"height":15.0,"uid":"com.gliffy.shape.basic.basic_v1.default.text","order":55,"lockAspectRatio":false,"lockShape":false,"graphic":{"type":"Text","Text":{"overflow":"none","paddingTop":2,"paddingRight":2,"paddingBottom":2,"paddingLeft":2,"outerPaddingTop":6,"outerPaddingRight":6,"outerPaddingBottom":2,"outerPaddingLeft":6,"type":"fixed","lineTValue":null,"linePerpValue":null,"cardinalityType":null,"html":"

/var

","tid":null,"valign":"middle","vposition":"none","hposition":"none"}},"linkMap":[],"hidden":false,"layerId":"JWVt6bqTSTPW"}],"layers":[{"guid":"JWVt6bqTSTPW","order":0,"name":"Layer 0","active":true,"locked":false,"visible":true,"nodeIndex":56}],"shapeStyles":{},"lineStyles":{},"textStyles":{}},"metadata":{"title":"untitled","revision":0,"exportBorder":false,"loadPosition":"default","libraries":["com.gliffy.libraries.flowchart.flowchart_v1.default","com.gliffy.libraries.basic.basic_v1.default","com.gliffy.libraries.swimlanes.swimlanes_v1.default","com.gliffy.libraries.images"],"lastSerialized":1480956549664,"analyticsProduct":"Confluence"},"embeddedResources":{"index":0,"resources":[]}} \ No newline at end of file diff --git a/doc/source/diagrams/deploy_config_partial_lvm.png b/doc/source/diagrams/deploy_config_partial_lvm.png new file mode 100644 index 0000000000000000000000000000000000000000..2639f47e85a413289868a78298566cf27aabe169 GIT binary patch literal 13843 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 literal 0 HcmV?d00001 diff --git a/doc/source/diagrams/deploy_config_partial_lvm.svg b/doc/source/diagrams/deploy_config_partial_lvm.svg new file mode 100644 index 0000000..4d15563 --- /dev/null +++ b/doc/source/diagrams/deploy_config_partial_lvm.svg @@ -0,0 +1 @@ +mountvolume_grouppvpartitiondiskLVM/home/homevglvvar/var \ No newline at end of file