From 9ac2eb2a4e0d3e2675f16aa099e172ef223f9d2c Mon Sep 17 00:00:00 2001 From: Ron Stone Date: Fri, 7 May 2021 16:45:37 -0400 Subject: [PATCH] Install docs refactoring-updates Additional conditionalization and corrections. Patchset 1 review updates. Added Installation appendixes Adjusted tox.ini for contitionalized openstack blocks Patchset 2 review comments. Patchset 3 review comments and tried to make changes more globally in edited files. Signed-off-by: Ron Stone Change-Id: Icca40bc8c8c46ca1f3f38f5e4a63f5bb466b19bc Signed-off-by: Ron Stone --- doc/source/_includes/docker-proxy-config.rest | 22 ++ ...install-kubernetes-bootstrap-playbook.rest | 8 + .../_includes/set-proxy-at-bootstrap.rest | 6 + .../configuration/docker_proxy_config.rst | 41 ++-- .../r5_release/ansible_bootstrap_configs.rst | 2 +- ...erver-files-for-a-custom-configuration.rst | 60 +++++ .../bare_metal/adding-hosts-in-bulk.rst | 61 +++++ ...dding-hosts-using-the-host-add-command.rst | 164 +++++++++++++ .../bare_metal/aio_duplex_extend.rst | 58 +++-- .../aio_duplex_install_kubernetes.rst | 229 +++++++++++------- .../aio_simplex_install_kubernetes.rst | 174 ++++++++----- ...rapping-from-a-private-docker-registry.rst | 52 ++++ .../bare_metal/bulk-host-xml-file-format.rst | 135 +++++++++++ .../configuring-a-pxe-boot-server.rst | 200 +++++++++++++++ .../controller_storage_install_kubernetes.rst | 181 ++++++++------ .../dedicated_storage_install_kubernetes.rst | 111 ++++----- .../exporting-host-configurations.rst | 53 ++++ .../reinstalling-a-system-or-a-host.rst | 39 +++ ...ng-an-exported-host-configuration-file.rst | 45 ++++ .../r5_release/index.rst | 55 +++++ tox.ini | 2 +- 21 files changed, 1376 insertions(+), 322 deletions(-) create mode 100644 doc/source/_includes/docker-proxy-config.rest create mode 100644 doc/source/_includes/install-kubernetes-bootstrap-playbook.rest create mode 100644 doc/source/_includes/set-proxy-at-bootstrap.rest create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/accessing-pxe-boot-server-files-for-a-custom-configuration.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-in-bulk.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-using-the-host-add-command.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/bootstrapping-from-a-private-docker-registry.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/bulk-host-xml-file-format.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/configuring-a-pxe-boot-server.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/exporting-host-configurations.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-or-a-host.rst create mode 100644 doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-using-an-exported-host-configuration-file.rst diff --git a/doc/source/_includes/docker-proxy-config.rest b/doc/source/_includes/docker-proxy-config.rest new file mode 100644 index 000000000..132a3e0cd --- /dev/null +++ b/doc/source/_includes/docker-proxy-config.rest @@ -0,0 +1,22 @@ +.. figures_begin + +.. figure:: /configuration/figures/stx_proxy_overview.png + :width: 500 + :alt: |prod| proxy usage + + Figure 1: |prod| proxy usage + +.. figures_end + +.. r3_begin + +---------------------- +Set proxy at bootstrap +---------------------- + +To set the Docker proxy at bootstrap time, refer to :doc:`Ansible Bootstrap +Configurations +<../deploy_install_guides/r3_release/ansible_bootstrap_configs>`. + +.. r3_end + diff --git a/doc/source/_includes/install-kubernetes-bootstrap-playbook.rest b/doc/source/_includes/install-kubernetes-bootstrap-playbook.rest new file mode 100644 index 000000000..1108a71e3 --- /dev/null +++ b/doc/source/_includes/install-kubernetes-bootstrap-playbook.rest @@ -0,0 +1,8 @@ +.. playbook-defaults-begin +.. playbook-defaults-end + +.. docker-reg-begin +.. docker-reg-end + +.. firewall-begin +.. firewall-end \ No newline at end of file diff --git a/doc/source/_includes/set-proxy-at-bootstrap.rest b/doc/source/_includes/set-proxy-at-bootstrap.rest new file mode 100644 index 000000000..fc7c021d6 --- /dev/null +++ b/doc/source/_includes/set-proxy-at-bootstrap.rest @@ -0,0 +1,6 @@ +---------------------- +Set proxy at bootstrap +---------------------- + +To set the Docker proxy at bootstrap time, refer to +:doc:`Ansible Bootstrap Configurations <../deploy_install_guides/r3_release/ansible_bootstrap_configs>`. \ No newline at end of file diff --git a/doc/source/configuration/docker_proxy_config.rst b/doc/source/configuration/docker_proxy_config.rst index 95521cdd5..4538e586b 100644 --- a/doc/source/configuration/docker_proxy_config.rst +++ b/doc/source/configuration/docker_proxy_config.rst @@ -5,12 +5,12 @@ Docker Proxy Configuration ========================== -StarlingX uses publicly available container runtime registries. If you are +|org| uses publicly available container runtime registries. If you are behind a corporate firewall or proxy, you need to set proxy settings. -For example, if the StarlingX OAM interface or network is behind an http/https -proxy, relative to the Docker registries used by StarlingX or applications -running on StarlingX, then Docker within StarlingX must be configured to use +For example, if the |prod| |OAM| interface or network is behind an http/https +proxy, relative to the Docker registries used by |prod| or applications +running on |prod|, then Docker within |prod| must be configured to use these http/https proxies. .. contents:: @@ -21,24 +21,24 @@ these http/https proxies. Proxy overview -------------- -The figure below shows how proxies are used in StarlingX. +The figure below shows how proxies are used in |prod|. -.. figure:: figures/stx_proxy_overview.png - :scale: 60% - :alt: StarlingX proxy usage - *Figure 1: StarlingX proxy usage* +.. include:: /_includes/docker-proxy-config.rest + :start-after: figures_begin + :end-before: figures_end + The items labeled *a* and *b* in the figure indicate two configuration files: * Configuration file *a* lists sysadmin shell proxy environment variables. - This file is not required for StarlingX bootstrap or any StarlingX + This file is not required for |prod| bootstrap or any |prod| operations. You **must** manually add this file if you are accessing the - public network via a proxy. You **must** add the following StarlingX + public network via a proxy. You **must** add the following |prod| specific IP addresses to the no_proxy list: * registry.local - * {controller OAM gateway IP/floating IP/host IP} + * {controller |OAM| gateway IP/floating IP/host IP} * {controller management floating IP/host IP} * {controller cluster gateway IP} * 10.96.0.1 {apiserver cluster IP for Kubernetes} @@ -48,7 +48,7 @@ The items labeled *a* and *b* in the figure indicate two configuration files: * Configuration file *b* lists container runtime proxy variables (docker_proxy). Configure these variables in the ``localhost.yml`` file before Ansible bootstrap. This file is **required** if you are accessing - the public network via a proxy. StarlingX specific IP addresses will be + the public network via a proxy. |prod| specific IP addresses will be automatically added to the no_proxy list. The numbered items in the figure indicate the process flow: @@ -65,21 +65,18 @@ The numbered items in the figure indicate the process flow: The bootstrap process will push to the registry.local afterwards. #. After the Kubernetes API server is running, the bootstrap process will - communicate with it for further StarlingX configuration. You **must** ensure + communicate with it for further |prod| configuration. You **must** ensure the cluster network gateway is set for no_proxy in configuration file *a*. -#. After StarlingX provisioning is complete, any operations that pull Docker +#. After |prod| provisioning is complete, any operations that pull Docker images will use configuration file *b*. All other operations, including kubectl and system operations, will use the sysadmin shell and configuration file *a*. ----------------------- -Set proxy at bootstrap ----------------------- - -To set the Docker proxy at bootstrap time, refer to -:doc:`Ansible Bootstrap Configurations <../deploy_install_guides/r3_release/ansible_bootstrap_configs>`. +.. include:: /_includes/docker-proxy-config.rest + :start-after: r3_begin + :end-before: r3_end ------------------ Set HTTP proxy URL @@ -109,7 +106,7 @@ Set no_proxy address list A no_proxy address list can be provided for registries not on the other side of the proxies. This list will be added to the default no_proxy list derived -from localhost, loopback, management, and OAM floating addresses at runtime. +from localhost, loopback, management, and |OAM| floating addresses at runtime. Due to a Docker restriction, each address in the no_proxy list must not be in subnet format and it cannot contain a wildcard. For example: diff --git a/doc/source/deploy_install_guides/r5_release/ansible_bootstrap_configs.rst b/doc/source/deploy_install_guides/r5_release/ansible_bootstrap_configs.rst index 151e73188..caad02c40 100644 --- a/doc/source/deploy_install_guides/r5_release/ansible_bootstrap_configs.rst +++ b/doc/source/deploy_install_guides/r5_release/ansible_bootstrap_configs.rst @@ -370,7 +370,7 @@ k8s_root_ca_key CA certificate has an expiry of at least 5-10 years. The administrator can also provide values to add to the Kubernetes API server -certificate Subject Alternative Name list using the 'apiserver_cert_sans` +certificate Subject Alternative Name list using the `apiserver_cert_sans` override parameter. apiserver_cert_sans diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/accessing-pxe-boot-server-files-for-a-custom-configuration.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/accessing-pxe-boot-server-files-for-a-custom-configuration.rst new file mode 100644 index 000000000..7210022c6 --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/accessing-pxe-boot-server-files-for-a-custom-configuration.rst @@ -0,0 +1,60 @@ + +.. jow1442253584837 +.. _accessing-pxe-boot-server-files-for-a-custom-configuration: + +======================================================= +Access PXE Boot Server Files for a Custom Configuration +======================================================= + +If you prefer, you can create a custom |PXE| boot configuration using the +installation files provided with |prod|. + +.. rubric:: |context| + +You can use the setup script included with the ISO image to copy the boot +configuration files and distribution content to a working directory. You can +use the contents of the working directory to construct a |PXE| boot environment +according to your own requirements or preferences. + +For more information about using a |PXE| boot server, see :ref:`Configure a +PXE Boot Server `. + +.. rubric:: |proc| + +.. _accessing-pxe-boot-server-files-for-a-custom-configuration-steps-www-gcz-3t: + +#. Copy the ISO image from the source \(product DVD, USB device, or + |dnload-loc|\) to a temporary location on the |PXE| boot server. + + This example assumes that the copied image file is + tmp/TS-host-installer-1.0.iso. + +#. Mount the ISO image and make it executable. + + .. code-block:: none + + $ mount -o loop /tmp/TS-host-installer-1.0.iso /media/iso + $ mount -o remount,exec,dev /media/iso + +#. Create and populate a working directory. + + Use a command of the following form: + + .. code-block:: none + + $ /media/iso/pxeboot_setup.sh -u http:/// <-w > + + where: + + **ip-addr** + is the Apache listening address. + + **symlink** + is a name for a symbolic link to be created under the Apache document + root directory, pointing to the directory specified by . + + **working-dir** + is the path to the working directory. + +#. Copy the required files from the working directory to your custom |PXE| + boot server directory. diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-in-bulk.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-in-bulk.rst new file mode 100644 index 000000000..19377ec3c --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-in-bulk.rst @@ -0,0 +1,61 @@ + +.. ulc1552927930507 +.. _adding-hosts-in-bulk: + +================= +Add Hosts in Bulk +================= + +You can add an arbitrary number of hosts using a single CLI command. + +.. rubric:: |proc| + +#. Prepare an XML file that describes the hosts to be added. + + For more information, see :ref:`Bulk Host XML File Format + `. + + You can also create the XML configuration file from an existing, running + configuration using the :command:`system host-bulk-export` command. + +#. Run the :command:`system host-bulk-add` utility. + + The command syntax is: + + .. code-block:: none + + ~[keystone_admin]$ system host-bulk-add + + where is the name of the prepared XML file. + +#. Power on the hosts to be added, if required. + + .. note:: + Hosts can be powered on automatically from board management controllers + using settings in the XML file. + +.. rubric:: |result| + +The hosts are configured. The utility provides a summary report, as shown in +the following example: + +.. code-block:: none + + Success: + worker-0 + worker-1 + Error: + controller-1: Host-add Rejected: Host with mgmt_mac 08:00:28:A9:54:19 already exists + +.. rubric:: |postreq| + +After adding the host, you must provision it according to the requirements of +the personality. + +.. xbooklink For more information, see :ref:`Installing, Configuring, and + Unlocking Nodes `, for your system, + and follow the *Configure* steps for the appropriate node personality. + +.. seealso:: + + :ref:`Bulk Host XML File Format ` diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-using-the-host-add-command.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-using-the-host-add-command.rst new file mode 100644 index 000000000..bc8099f5a --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/adding-hosts-using-the-host-add-command.rst @@ -0,0 +1,164 @@ + +.. pyp1552927946441 +.. _adding-hosts-using-the-host-add-command: + +==================================== +Add Hosts Using the host-add Command +==================================== + +You can add hosts to the system inventory using the command line. + +.. rubric:: |context| + +There are several ways to add hosts to |prod|; for an overview, see the +StarlingX Installation Guides, +`https://docs.starlingx.io/deploy_install_guides/index.html +`__ for your +system. Instead of powering up each host and then defining its personality and +other characteristics interactively, you can use the :command:`system host-add` +command to define hosts before you power them up. This can be useful for +scripting an initial setup. + +.. note:: + On systems that use static IP address assignment on the management network, + new hosts must be added to the inventory manually and assigned an IP + address using the :command:`system host-add` command. If a host is not + added successfully, the host console displays the following message at + power-on: + + .. code-block:: none + + This system has been configured with static management + and infrastructure IP address allocation. This requires + that the node be manually provisioned in System + Inventory using the 'system host-add' CLI, GUI, or + stx API equivalent. + +.. rubric:: |proc| + +#. Add the host to the system inventory. + + .. note:: + The host must be added to the system inventory before it is powered on. + + On **controller-0**, acquire Keystone administrative privileges: + + .. code-block:: none + + $ source /etc/platform/openrc + + Use the :command:`system host-add` command to add a host and specify its + personality. You can also specify the device used to display messages + during boot. + + .. note:: + The hostname parameter is required for worker hosts. For controller and + storage hosts, it is ignored. + + .. code-block:: none + + ~(keystone_admin)]$ system host-add -n \ + -p [-s ] \ + [-l ] [-o [-c ]] [-b ] \ + [-r ] [-m ] [-i ] [-D ] \ + [-T -I -U -P ] + + + where + + **** + is a name to assign to the host. This is used for worker nodes only. + Controller and storage node names are assigned automatically and + override user input. + + **** + is the host type. The following are valid values: + + - controller + + - worker + + - storage + + **** + are the host personality subfunctions \(used only for a worker host\). + + For a worker host, the only valid value is worker,lowlatency to enable + a low-latency performance profile. For a standard performance profile, + omit this option. + + For more information about performance profiles, see |deploy-doc|: + :ref:`Worker Function Performance Profiles + `. + + **** + is a string describing the location of the host + + **** + is the output device to use for message display on the host \(for + example, tty0\). The default is ttys0, 115200. + + **** + is the format for console output on the host \(text or graphical\). The + default is text. + + .. note:: + The graphical option currently has no effect. Text-based + installation is used regardless of this setting. + + **** + is the host device for boot partition, relative to /dev. The default is + sda. + + **** + is the host device for rootfs partition, relative to/dev. The default + is sda. + + **** + is the |MAC| address of the port connected to the internal management + or |PXE| boot network. + + **** + is the IP address of the port connected to the internal management or + |PXE| boot network, if static IP address allocation is used. + + .. note:: + The option is not used for a controller node. + + **** + is set to **True** to have any active console session automatically + logged out when the serial console cable is disconnected, or **False** + to disable this behavior. The server must support data carrier detect + on the serial console port. + + **** + is the board management controller type. Use bmc. + + **** + is the board management controller IP address \(used for external + access to board management controllers over the |OAM| network\) + + **** + is the username for board management controller access + + **** + is the password for board management controller access + + For example: + + .. code-block:: none + + ~(keystone_admin)]$ system host-add -n compute-0 -p worker -I 10.10.10.100 + +#. With **controller-0** running, start the host. + + The host is booted and configured with a personality. + +.. rubric:: |postreq| + +After adding the host, you must provision it according to the requirements of +the personality. + +.. xbooklink For more information, see :ref:`Install, Configure, and Unlock + Nodes ` and follow the *Configure* + steps for the appropriate node personality. diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_extend.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_extend.rst index 689c6bb6e..014e91032 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_extend.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_extend.rst @@ -92,39 +92,37 @@ Configure worker nodes * Configure the data interfaces - :: + .. code-block:: bash - DATA0IF= - DATA1IF= - PHYSNET0='physnet0' - PHYSNET1='physnet1' - SPL=/tmp/tmp-system-port-list - SPIL=/tmp/tmp-system-host-if-list + # Execute the following lines with + export NODE=worker-0 + # and then repeat with + export NODE=worker-1 - # configure the datanetworks in sysinv, prior to referencing it - # in the ``system host-if-modify`` command'. - system datanetwork-add ${PHYSNET0} vlan - system datanetwork-add ${PHYSNET1} vlan + # List inventoried host’s ports and identify ports to be used as ‘data’ interfaces, + # based on displayed linux port name, pci address and device type. + system host-port-list ${NODE} + + # List host’s auto-configured ‘ethernet’ interfaces, + # find the interfaces corresponding to the ports identified in previous step, and + # take note of their UUID + system host-if-list -a ${NODE} + + # Modify configuration for these interfaces + # Configuring them as ‘data’ class interfaces, MTU of 1500 and named data# + system host-if-modify -m 1500 -n data0 -c data ${NODE} + system host-if-modify -m 1500 -n data1 -c data ${NODE} + + # Previously configured Data Networks + PHYSNET0='physnet0' + PHYSNET1='physnet1' + system datanetwork-add ${PHYSNET0} vlan + system datanetwork-add ${PHYSNET1} vlan + + # Assign Data Networks to Data Interfaces + system interface-datanetwork-assign ${NODE} ${PHYSNET0} + system interface-datanetwork-assign ${NODE} ${PHYSNET1} - for NODE in worker-0 worker-1; do - echo "Configuring interface for: $NODE" - set -ex - system host-port-list ${NODE} --nowrap > ${SPL} - system host-if-list -a ${NODE} --nowrap > ${SPIL} - DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') - DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') - DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') - DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') - DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') - DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') - DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') - DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') - system host-if-modify -m 1500 -n data0 -c data ${NODE} ${DATA0IFUUID} - system host-if-modify -m 1500 -n data1 -c data ${NODE} ${DATA1IFUUID} - system interface-datanetwork-assign ${NODE} ${DATA0IFUUID} ${PHYSNET0} - system interface-datanetwork-assign ${NODE} ${DATA1IFUUID} ${PHYSNET1} - set +ex - done * To enable using |SRIOV| network attachments for the above interfaces in Kubernetes hosted application containers: diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst index 5b1e47e5c..09a8316e4 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_duplex_install_kubernetes.rst @@ -131,24 +131,74 @@ Bootstrap system on controller-0 admin_password: ansible_become_pass: - # Add these lines to configure Docker to use a proxy server - # docker_http_proxy: http://my.proxy.com:1080 - # docker_https_proxy: https://my.proxy.com:1443 - # docker_no_proxy: - # - 1.2.3.4 - EOF - .. only:: partner - .. include:: ../../../_includes/install-playbook-values-aws.rest + .. only:: starlingx + + In either of the above options, the bootstrap playbook’s default values + will pull all container images required for the |prod-p| from Docker hub. + + If you have setup a private Docker registry to use for bootstrapping + then you will need to add the following lines in $HOME/localhost.yml: + + .. only:: partner + + .. include:: /_includes/install-kubernetes-bootstrap-playbook.rest + :start-after: docker-reg-begin + :end-before: docker-reg-end + + .. code-block:: + + docker_registries: + quay.io: + url: myprivateregistry.abc.com:9001/quay.io + docker.elastic.co: + url: myprivateregistry.abc.com:9001/docker.elastic.co + gcr.io: + url: myprivateregistry.abc.com:9001/gcr.io + k8s.gcr.io: + url: myprivateregistry.abc.com:9001/k8s.gcr.io + docker.io: + url: myprivateregistry.abc.com:9001/docker.io + defaults: + type: docker + username: + password: + + # Add the CA Certificate that signed myprivateregistry.abc.com’s + # certificate as a Trusted CA + ssl_ca_cert: /home/sysadmin/myprivateregistry.abc.com-ca-cert.pem + + See :ref:`Use a Private Docker Registry ` + for more information. + + .. only:: starlingx + + If a firewall is blocking access to Docker hub or your private + registry from your StarlingX deployment, you will need to add the + following lines in $HOME/localhost.yml (see :ref:`Docker Proxy + Configuration ` for more details about Docker + proxy settings): + + .. only:: partner + + .. include:: /_includes/install-kubernetes-bootstrap-playbook.rest + :start-after: firewall-begin + :end-before: firewall-end + + .. code-block:: + + # Add these lines to configure Docker to use a proxy server + docker_http_proxy: http://my.proxy.com:1080 + docker_https_proxy: https://my.proxy.com:1443 + docker_no_proxy: + - 1.2.3.4 - Refer to :ref:`Ansible Bootstrap Configurations ` - for information on additional Ansible bootstrap configurations for advanced - Ansible bootstrap scenarios, such as Docker proxies when deploying behind a - firewall, etc. Refer to :ref:`Docker Proxy Configurations - ` for details about Docker proxy settings. + Refer to :ref:`Ansible Bootstrap Configurations ` + for information on additional Ansible bootstrap configurations for advanced + Ansible bootstrap scenarios. #. Run the Ansible bootstrap playbook: @@ -211,40 +261,42 @@ Configure controller-0 This step is optional for Kubernetes: Do this step if using |SRIOV| network attachments in hosted application containers. - .. important:: + .. only:: starlingx - This step is **required** for OpenStack. + .. important:: + + This step is **required** for OpenStack. * Configure the data interfaces :: - DATA0IF= - DATA1IF= - export NODE=controller-0 - PHYSNET0='physnet0' - PHYSNET1='physnet1' - SPL=/tmp/tmp-system-port-list - SPIL=/tmp/tmp-system-host-if-list - system host-port-list ${NODE} --nowrap > ${SPL} - system host-if-list -a ${NODE} --nowrap > ${SPIL} - DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') - DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') - DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') - DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') - DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') - DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') - DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') - DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') + export NODE=controller-0 - system datanetwork-add ${PHYSNET0} vlan - system datanetwork-add ${PHYSNET1} vlan + # List inventoried host’s ports and identify ports to be used as ‘data’ interfaces, + # based on displayed linux port name, pci address and device type. + system host-port-list ${NODE} - system host-if-modify -m 1500 -n data0 -c data ${NODE} ${DATA0IFUUID} - system host-if-modify -m 1500 -n data1 -c data ${NODE} ${DATA1IFUUID} - system interface-datanetwork-assign ${NODE} ${DATA0IFUUID} ${PHYSNET0} - system interface-datanetwork-assign ${NODE} ${DATA1IFUUID} ${PHYSNET1} + # List host’s auto-configured ‘ethernet’ interfaces, + # find the interfaces corresponding to the ports identified in previous step, and + # take note of their UUID + system host-if-list -a ${NODE} + + # Modify configuration for these interfaces + # Configuring them as ‘data’ class interfaces, MTU of 1500 and named data# + system host-if-modify -m 1500 -n data0 -c data ${NODE} + system host-if-modify -m 1500 -n data1 -c data ${NODE} + + # Create Data Networks + PHYSNET0='physnet0' + PHYSNET1='physnet1' + system datanetwork-add ${PHYSNET0} vlan + system datanetwork-add ${PHYSNET1} vlan + + # Assign Data Networks to Data Interfaces + system interface-datanetwork-assign ${NODE} ${PHYSNET0} + system interface-datanetwork-assign ${NODE} ${PHYSNET1} * To enable using |SRIOV| network attachments for the above interfaces in Kubernetes hosted application containers: @@ -293,12 +345,22 @@ For host-based Ceph: #. Add an |OSD| on controller-0 for host-based Ceph: - :: + .. code-block:: bash + # List host’s disks and identify disks you want to use for CEPH OSDs, taking note of their UUID + # By default, /dev/sda is being used as system disk and can not be used for OSD. system host-disk-list controller-0 - system host-disk-list controller-0 | awk '/\/dev\/sdb/{print $2}' | xargs -i system host-stor-add controller-0 {} + + # Add disk as an OSD storage + system host-stor-add controller-0 osd + + # List OSD storage devices system host-stor-list controller-0 + + # Add disk as an OSD storage + system host-stor-add controller-0 osd + .. only:: starlingx For Rook container-based Ceph: @@ -317,19 +379,7 @@ For host-based Ceph: system host-label-assign controller-0 ceph-mon-placement=enabled system host-label-assign controller-0 ceph-mgr-placement=enabled - -*********************************** -If required, configure Docker Proxy -*********************************** - -StarlingX uses publicly available container runtime registries. If you are -behind a corporate firewall or proxy, you need to set docker proxy settings. - -Refer to :ref:`Docker Proxy Configuration ` for -details about configuring Docker proxy settings. - - -.. only:: starlingx +.. only:: openstack ************************************* OpenStack-specific host configuration @@ -386,6 +436,7 @@ details about configuring Docker proxy settings. :: + # assign 1 core on processor/numa-node 0 on controller-0 to vswitch system host-cpu-modify -f vswitch -p0 1 controller-0 @@ -415,6 +466,7 @@ details about configuring Docker proxy settings. :: + # assign 10x 1G huge page on processor/numa-node 0 on controller-0 to applications system host-memory-modify -f application -1G 10 controller-0 0 @@ -533,40 +585,41 @@ Configure controller-1 This step is optional for Kubernetes. Do this step if using |SRIOV| network attachments in hosted application containers. - .. important:: + .. only:: starlingx - This step is **required** for OpenStack. + .. important:: + + This step is **required** for OpenStack. * Configure the data interfaces :: - DATA0IF= - DATA1IF= export NODE=controller-1 + + # List inventoried host’s ports and identify ports to be used as ‘data’ interfaces, + # based on displayed linux port name, pci address and device type. + system host-port-list ${NODE} + + # List host’s auto-configured ‘ethernet’ interfaces, + # find the interfaces corresponding to the ports identified in previous step, and + # take note of their UUID + system host-if-list -a ${NODE} + + # Modify configuration for these interfaces + # Configuring them as ‘data’ class interfaces, MTU of 1500 and named data# + system host-if-modify -m 1500 -n data0 -c data ${NODE} + system host-if-modify -m 1500 -n data1 -c data ${NODE} + + # Previouly created Data Networks PHYSNET0='physnet0' PHYSNET1='physnet1' - SPL=/tmp/tmp-system-port-list - SPIL=/tmp/tmp-system-host-if-list - system host-port-list ${NODE} --nowrap > ${SPL} - system host-if-list -a ${NODE} --nowrap > ${SPIL} - DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') - DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') - DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') - DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') - DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') - DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') - DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') - DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') - system datanetwork-add ${PHYSNET0} vlan - system datanetwork-add ${PHYSNET1} vlan + # Assign Data Networks to Data Interfaces + system interface-datanetwork-assign ${NODE} ${PHYSNET0} + system interface-datanetwork-assign ${NODE} ${PHYSNET1} - system host-if-modify -m 1500 -n data0 -c data ${NODE} ${DATA0IFUUID} - system host-if-modify -m 1500 -n data1 -c data ${NODE} ${DATA1IFUUID} - system interface-datanetwork-assign ${NODE} ${DATA0IFUUID} ${PHYSNET0} - system interface-datanetwork-assign ${NODE} ${DATA1IFUUID} ${PHYSNET1} * To enable using |SRIOV| network attachments for the above interfaes in Kubernetes hosted application containers: @@ -601,9 +654,19 @@ For host-based Ceph: :: - system host-disk-list controller-1 - system host-disk-list controller-1 | awk '/\/dev\/sdb/{print $2}' | xargs -i system host-stor-add controller-1 {} - system host-stor-list controller-1 + # List host’s disks and identify disks you want to use for CEPH OSDs, taking note of their UUID + # By default, /dev/sda is being used as system disk and can not be used for OSD. + system host-disk-list controller-0 + + # Add disk as an OSD storage + system host-stor-add controller-0 osd + + # List OSD storage devices + system host-stor-list controller-0 + + # Add disk as an OSD storage + system host-stor-add controller-0 osd + .. only:: starlingx @@ -617,6 +680,7 @@ For host-based Ceph: system host-label-assign controller-1 ceph-mon-placement=enabled system host-label-assign controller-1 ceph-mgr-placement=enabled + ************************************* OpenStack-specific host configuration ************************************* @@ -788,10 +852,13 @@ machine. rook-discover-xndld 1/1 Running 0 6m2s storage-init-rook-ceph-provisioner-t868q 0/1 Completed 0 108s + +.. include:: /_includes/bootstrapping-and-deploying-starlingx.rest + +.. only:: starlingx + ---------- Next steps ---------- - .. include:: ../kubernetes_install_next.txt - -.. include:: /_includes/bootstrapping-and-deploying-starlingx.rest \ No newline at end of file + .. include:: ../kubernetes_install_next.txt \ No newline at end of file diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst index 72a0b5d6e..f2067cadb 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/aio_simplex_install_kubernetes.rst @@ -130,24 +130,74 @@ Bootstrap system on controller-0 admin_password: ansible_become_pass: - # Add these lines to configure Docker to use a proxy server - # docker_http_proxy: http://my.proxy.com:1080 - # docker_https_proxy: https://my.proxy.com:1443 - # docker_no_proxy: - # - 1.2.3.4 - EOF - .. only:: partner + .. only:: starlingx - .. include:: ../../../_includes/install-playbook-values-aws.rest + In either of the above options, the bootstrap playbook’s default values + will pull all container images required for the |prod-p| from Docker hub. + + If you have setup a private Docker registry to use for bootstrapping + then you will need to add the following lines in $HOME/localhost.yml: + + .. only:: partner + + .. include:: /_includes/install-kubernetes-bootstrap-playbook.rest + :start-after: docker-reg-begin + :end-before: docker-reg-end + + .. code-block:: + + docker_registries: + quay.io: + url: myprivateregistry.abc.com:9001/quay.io + docker.elastic.co: + url: myprivateregistry.abc.com:9001/docker.elastic.co + gcr.io: + url: myprivateregistry.abc.com:9001/gcr.io + k8s.gcr.io: + url: myprivateregistry.abc.com:9001/k8s.gcr.io + docker.io: + url: myprivateregistry.abc.com:9001/docker.io + defaults: + type: docker + username: + password: + + # Add the CA Certificate that signed myprivateregistry.abc.com’s + # certificate as a Trusted CA + ssl_ca_cert: /home/sysadmin/myprivateregistry.abc.com-ca-cert.pem + + See :ref:`Use a Private Docker Registry ` + for more information. - Refer to :ref:`Ansible Bootstrap Configurations ` - for information on additional Ansible bootstrap configurations for advanced - Ansible bootstrap scenarios, such as Docker proxies when deploying behind a - firewall, etc. Refer to :ref:`Docker Proxy Configuration - ` for details about Docker proxy settings. + .. only:: starlingx + + If a firewall is blocking access to Docker hub or your private + registry from your StarlingX deployment, you will need to add the + following lines in $HOME/localhost.yml (see :ref:`Docker Proxy + Configuration ` for more details about Docker + proxy settings): + + .. only:: partner + + .. include:: /_includes/install-kubernetes-bootstrap-playbook.rest + :start-after: firewall-begin + :end-before: firewall-end + + .. code-block:: + + # Add these lines to configure Docker to use a proxy server + docker_http_proxy: http://my.proxy.com:1080 + docker_https_proxy: https://my.proxy.com:1443 + docker_no_proxy: + - 1.2.3.4 + + + Refer to :ref:`Ansible Bootstrap Configurations ` + for information on additional Ansible bootstrap configurations for advanced + Ansible bootstrap scenarios. #. Run the Ansible bootstrap playbook: @@ -198,35 +248,36 @@ The newly installed controller needs to be configured. This step is **required** for OpenStack. - * Configure the data interfaces + * Configure the data interfaces. :: - DATA0IF= - DATA1IF= export NODE=controller-0 + + # List inventoried host’s ports and identify ports to be used as ‘data’ interfaces, + # based on displayed linux port name, pci address and device type. + system host-port-list ${NODE} + + # List host’s auto-configured ‘ethernet’ interfaces, + # find the interfaces corresponding to the ports identified in previous step, and + # take note of their UUID + system host-if-list -a ${NODE} + + # Modify configuration for these interfaces + # Configuring them as ‘data’ class interfaces, MTU of 1500 and named data# + system host-if-modify -m 1500 -n data0 -c data ${NODE} + system host-if-modify -m 1500 -n data1 -c data ${NODE} + + # Create Data Networks PHYSNET0='physnet0' PHYSNET1='physnet1' - SPL=/tmp/tmp-system-port-list - SPIL=/tmp/tmp-system-host-if-list - system host-port-list ${NODE} --nowrap > ${SPL} - system host-if-list -a ${NODE} --nowrap > ${SPIL} - DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') - DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') - DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') - DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') - DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') - DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') - DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') - DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') - system datanetwork-add ${PHYSNET0} vlan system datanetwork-add ${PHYSNET1} vlan - system host-if-modify -m 1500 -n data0 -c data ${NODE} ${DATA0IFUUID} - system host-if-modify -m 1500 -n data1 -c data ${NODE} ${DATA1IFUUID} - system interface-datanetwork-assign ${NODE} ${DATA0IFUUID} ${PHYSNET0} - system interface-datanetwork-assign ${NODE} ${DATA1IFUUID} ${PHYSNET1} + # Assign Data Networks to Data Interfaces + system interface-datanetwork-assign ${NODE} ${PHYSNET0} + system interface-datanetwork-assign ${NODE} ${PHYSNET1} + * To enable using |SRIOV| network attachments for the above interfaces in @@ -238,7 +289,7 @@ The newly installed controller needs to be configured. system host-label-assign controller-0 sriovdp=enabled - * If planning on running |DPDK| in kubernetes hosted application + * If planning on running |DPDK| in Kubernetes hosted application containers on this host, configure the number of 1G Huge pages required on both |NUMA| nodes. @@ -265,11 +316,12 @@ A persistent storage backend is required if your application requires The StarlingX OpenStack application **requires** |PVCs|. - There are two options for persistent storage backend: the host-based Ceph solution and the Rook container-based Ceph solution. + There are two options for persistent storage backend: the host-based Ceph + solution and the Rook container-based Ceph solution. For host-based Ceph: -#. Add host-based ceph backend: +#. Add host-based Ceph backend: :: @@ -277,12 +329,19 @@ For host-based Ceph: #. Add an |OSD| on controller-0 for host-based Ceph: - :: + .. code-block:: bash + # List host’s disks and identify disks you want to use for CEPH OSDs, taking note of their UUID + # By default, /dev/sda is being used as system disk and can not be used for OSD. system host-disk-list controller-0 - system host-disk-list controller-0 | awk '/\/dev\/sdb/{print $2}' | xargs -i system host-stor-add controller-0 {} + + # Add disk as an OSD storage + system host-stor-add controller-0 osd + + # List OSD storage devices system host-stor-list controller-0 + .. only:: starlingx For Rook container-based Ceph: @@ -301,17 +360,7 @@ For host-based Ceph: system host-label-assign controller-0 ceph-mon-placement=enabled system host-label-assign controller-0 ceph-mgr-placement=enabled -*********************************** -If required, configure Docker Proxy -*********************************** - -StarlingX uses publicly available container runtime registries. If you are -behind a corporate firewall or proxy, you need to set docker proxy settings. - -Refer to :ref:`Docker Proxy Configuration ` for -details about configuring Docker proxy settings. - -.. only:: starlingx +.. only:: openstack ************************************* OpenStack-specific host configuration @@ -406,25 +455,26 @@ details about configuring Docker proxy settings. #. **For OpenStack only:** Set up disk partition for nova-local volume group, which is needed for stx-openstack nova ephemeral disks. - :: + .. code-block:: bash - export NODE=controller-0 + export NODE=controller-0 - echo ">>> Getting root disk info" - ROOT_DISK=$(system host-show ${NODE} | grep rootfs | awk '{print $4}') - ROOT_DISK_UUID=$(system host-disk-list ${NODE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') - echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID" + echo ">>> Getting root disk info" + ROOT_DISK=$(system host-show ${NODE} | grep rootfs | awk '{print $4}') + ROOT_DISK_UUID=$(system host-disk-list ${NODE} --nowrap | grep ${ROOT_DISK} | awk '{print $2}') + echo "Root disk: $ROOT_DISK, UUID: $ROOT_DISK_UUID" - echo ">>>> Configuring nova-local" - NOVA_SIZE=34 - NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${NODE} ${ROOT_DISK_UUID} ${NOVA_SIZE}) - NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') - system host-lvg-add ${NODE} nova-local - system host-pv-add ${NODE} nova-local ${NOVA_PARTITION_UUID} - sleep 2 + echo ">>>> Configuring nova-local" + NOVA_SIZE=34 + NOVA_PARTITION=$(system host-disk-partition-add -t lvm_phys_vol ${NODE} ${ROOT_DISK_UUID} ${NOVA_SIZE}) + NOVA_PARTITION_UUID=$(echo ${NOVA_PARTITION} | grep -ow "| uuid | [a-z0-9\-]* |" | awk '{print $4}') + system host-lvg-add ${NODE} nova-local + system host-pv-add ${NODE} nova-local ${NOVA_PARTITION_UUID} + sleep 2 .. incl-config-controller-0-openstack-specific-aio-simplex-end: + ------------------- Unlock controller-0 ------------------- diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/bootstrapping-from-a-private-docker-registry.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/bootstrapping-from-a-private-docker-registry.rst new file mode 100644 index 000000000..4672dbec5 --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/bootstrapping-from-a-private-docker-registry.rst @@ -0,0 +1,52 @@ + +.. vqr1569420650576 +.. _bootstrapping-from-a-private-docker-registry: + +============================================ +Bootstrapping from a Private Docker Registry +============================================ + +You can bootstrap controller-0 from a private Docker registry in the event that +your server is isolated from the public Internet. + +.. rubric:: |proc| + +#. Update your /home/sysadmin/localhost.yml bootstrap overrides file with the + following lines to use a Private Docker Registry pre-populated from the + |org| Docker Registry: + + .. code-block:: none + + docker_registries: + k8s.gcr.io: + url: /k8s.gcr.io + gcr.io: + url: /gcr.io + quay.io: + url: /quay.io + docker.io: + url: /docker.io + docker.elastic.co: + url: /docker.elastic.co + defaults: + type: docker + username: + password: + + Where ```` and + ```` are your login credentials for the + ```` private Docker registry. + + .. note:: + ```` must be a DNS name resolvable by the dns servers + configured in the ``dns\_servers:`` structure of the ansible bootstrap + override file /home/sysadmin/localhost.yml. + +#. For any additional local registry images required, use the full image name + as shown below. + + .. code-block:: none + + additional_local_registry_images: + docker.io/wind-river/: + diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/bulk-host-xml-file-format.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/bulk-host-xml-file-format.rst new file mode 100644 index 000000000..78a208635 --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/bulk-host-xml-file-format.rst @@ -0,0 +1,135 @@ + +.. hzf1552927866550 +.. _bulk-host-xml-file-format: + +========================= +Bulk Host XML File Format +========================= + +Hosts for bulk addition are described using an XML document. + +The document root is **hosts**. Within the root, each host is described using a +**host** node. To provide details, child elements are used, corresponding to +the parameters for the :command:`host-add` command. + +The following elements are accepted. Each element takes a text string. For +valid values, refer to the CLI documentation. + + +.. _bulk-host-xml-file-format-simpletable-tc3-w15-ht: + + +.. table:: + :widths: auto + + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Element | Remarks | + +=========================================================================================================================================================================================+=========================================================================================================================================================================================+ + | hostname | A unique name for the host. | + | | | + | | .. note:: | + | | Controller and storage node names are assigned automatically and override user input. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | personality | The type of host. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | subfunctions | For a worker host, an optional element to enable a low-latency performance profile. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | mgmt\_mac | The MAC address of the management interface. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | mgmt\_ip | The IP address of the management interface. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | bm\_ip | The IP address of the board management controller. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | bm\_type | The board management controller type. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | bm\_username | The username for board management controller authentication. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | bm\_password | The password for board management controller authentication. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | power\_on | An empty element. If present, powers on the host automatically using the specified board management controller. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | install\_output | The display mode to use during installation \(text or graphical\). The default is **text**. | + | | | + | | .. note:: | + | | The graphical option currently has no effect. Text-based installation is used regardless of this setting. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | console | If present, this element specifies the port, and if applicable the baud, for displaying messages. If the element is empty or not present, the default setting **ttyS0,115200** is used. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | rootfs\_device | The device to use for the rootfs partition, relative to /dev. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | boot\_device | The device to use for the boot partition, relative to /dev. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | location | A description of the host location. | + +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +The following sample describes a controller, three worker nodes, and two storage nodes: + +.. code-block:: none + + + + + controller + 08:00:27:19:b0:c5 + 10.10.10.100 + bmc + tsmith1 + mypass1 + text + System12/A4 + + + worker-0 + worker + 08:00:27:dc:42:46 + 192.168.204.50 + 10.10.10.101 + tsmith1 + mypass1 + bmc + text + + + + worker-1 + worker + 08:00:27:87:82:3E + 192.168.204.51 + 10.10.10.102 + bmc + tsmith1 + mypass1 + sda + text + + + worker-2 + worker + 08:00:27:b9:16:0d + 192.168.204.52 + sda + text + + + 10.10.10.103 + bmc + tsmith1 + mypass1 + + + storage + 08:00:27:dd:e3:3f + 10.10.10.104 + bmc + tsmith1 + mypass1 + + + storage + 08:00:27:8e:f1:b8 + 10.10.10.105 + bmc + tsmith1 + mypass1 + + diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/configuring-a-pxe-boot-server.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/configuring-a-pxe-boot-server.rst new file mode 100644 index 000000000..b2dc1bb68 --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/configuring-a-pxe-boot-server.rst @@ -0,0 +1,200 @@ + +.. jow1440534908675 +.. _configuring-a-pxe-boot-server: + +=========================== +Configure a PXE Boot Server +=========================== + +You can optionally set up a |PXE| Boot Server to support **controller-0** +initialization. + +.. rubric:: |context| + +|prod| includes a setup script to simplify configuring a |PXE| boot server. If +you prefer, you can manually apply a custom configuration; for more +information, see :ref:`Access PXE Boot Server Files for a Custom Configuration +`. + +The |prod| setup script accepts a path to the root TFTP directory as a +parameter, and copies all required files for BIOS and |UEFI| clients into this +directory. + +The |PXE| boot server serves a boot loader file to the requesting client from a +specified path on the server. The path depends on whether the client uses BIOS +or |UEFI|. The appropriate path is selected by conditional logic in the |DHCP| +configuration file. + +The boot loader runs on the client, and reads boot parameters, including the +location of the kernel and initial ramdisk image files, from a boot file +contained on the server. To find the boot file, the boot loader searches a +known directory on the server. This search directory can contain more than one +entry, supporting the use of separate boot files for different clients. + +The file names and locations depend on the BIOS or |UEFI| implementation. + +.. _configuring-a-pxe-boot-server-table-mgq-xlh-2cb: + +.. table:: Table 1. |PXE| boot server file locations for BIOS and |UEFI| implementations + :widths: auto + + +------------------------------------------+------------------------+-------------------------------+ + | Resource | BIOS | UEFI | + +==========================================+========================+===============================+ + | **boot loader** | ./pxelinux.0 | ./EFI/grubx64.efi | + +------------------------------------------+------------------------+-------------------------------+ + | **boot file search directory** | ./pxelinux.cfg | ./ or ./EFI | + | | | | + | | | \(system-dependent\) | + +------------------------------------------+------------------------+-------------------------------+ + | **boot file** and path | ./pxelinux.cfg/default | ./grub.cfg and ./EFI/grub.cfg | + +------------------------------------------+------------------------+-------------------------------+ + | \(./ indicates the root TFTP directory\) | + +------------------------------------------+------------------------+-------------------------------+ + +.. rubric:: |prereq| + +Use a Linux workstation as the |PXE| Boot server. + + +.. _configuring-a-pxe-boot-server-ul-mrz-jlj-dt: + +- On the workstation, install the packages required to support |DHCP|, TFTP, + and Apache. + +- Configure |DHCP|, TFTP, and Apache according to your system requirements. + For details, refer to the documentation included with the packages. + +- Additionally, configure |DHCP| to support both BIOS and |UEFI| client + architectures. For example: + + .. code-block:: none + + option arch code 93 unsigned integer 16; # ref RFC4578 + # ... + subnet 192.168.1.0 netmask 255.255.255.0 { + if option arch = 00:07 { + filename "EFI/grubx64.efi"; + # NOTE: substitute the full tftp-boot-dir specified in the setup script + } + else { + filename "pxelinux.0"; + } + # ... + } + + +- Start the |DHCP|, TFTP, and Apache services. + +- Connect the |PXE| boot server to the |prod| management or |PXE| boot + network. + + +.. rubric:: |proc| + + +.. _configuring-a-pxe-boot-server-steps-qfb-kyh-2cb: + +#. Copy the ISO image from the source \(product DVD, USB device, or WindShare + `http://windshare.windriver.com `__\) to a + temporary location on the PXE boot server. + + This example assumes that the copied image file is tmp/TS-host-installer-1.0.iso. + +#. Mount the ISO image and make it executable. + + .. code-block:: none + + $ mount -o loop /tmp/TS-host-installer-1.0.iso /media/iso + $ mount -o remount,exec,dev /media/iso + +#. Set up the |PXE| boot configuration. + + The ISO image includes a setup script, which you can run to complete the + configuration. + + .. code-block:: none + + $ /media/iso/pxeboot_setup.sh -u http:/// \ + -t + + where + + ``ip-addr`` + is the Apache listening address. + + ``symlink`` + is the name of a user-created symbolic link under the Apache document + root directory, pointing to the directory specified by . + + ``tftp-boot-dir`` + is the path from which the boot loader is served \(the TFTP root + directory\). + + The script creates the directory specified by . + + For example: + + .. code-block:: none + + $ /media/iso/pxeboot_setup.sh -u http://192.168.100.100/BIOS-client -t /export/pxeboot + +#. To serve a specific boot file to a specific controller, assign a special + name to the file. + + The boot loader searches for a file name that uses a string based on the + client interface |MAC| address. The string uses lower case, substitutes + dashes for colons, and includes the prefix "01-". + + + - For a BIOS client, use the |MAC| address string as the file name: + + .. code-block:: none + + $ cd /pxelinux.cfg/ + $ cp pxeboot.cfg + + where: + + ```` + is the path from which the boot loader is served. + + ```` + is a lower-case string formed from the |MAC| address of the client + |PXE| boot interface, using dashes instead of colons, and prefixed + by "01-". + + For example, to represent the |MAC| address ``08:00:27:dl:63:c9``, + use the string ``01-08-00-27-d1-63-c9`` in the file name. + + For example: + + .. code-block:: none + + $ cd /export/pxeboot/pxelinux.cfg/ + $ cp pxeboot.cfg 01-08-00-27-d1-63-c9 + + If the boot loader does not find a file named using this convention, it + looks for a file with the name default. + + - For a |UEFI| client, use the |MAC| address string prefixed by + "grub.cfg-". To ensure the file is found, copy it to both search + directories used by the |UEFI| convention. + + .. code-block:: none + + $ cd + $ cp grub.cfg grub.cfg- + $ cp grub.cfg ./EFI/grub.cfg- + + For example: + + .. code-block:: none + + $ cd /export/pxeboot + $ cp grub.cfg grub.cfg-01-08-00-27-d1-63-c9 + $ cp grub.cfg ./EFI/grub.cfg-01-08-00-27-d1-63-c9 + + .. note:: + Alternatively, you can use symlinks in the search directories to + ensure the file is found. diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/controller_storage_install_kubernetes.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/controller_storage_install_kubernetes.rst index e40511195..2911402eb 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/controller_storage_install_kubernetes.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/controller_storage_install_kubernetes.rst @@ -107,9 +107,9 @@ Bootstrap system on controller-0 #. Create a minimal user configuration override file. To use this method, create your override file at ``$HOME/localhost.yml`` - and provide the minimum required parameters for the deployment configuration - as shown in the example below. Use the OAM IP SUBNET and IP ADDRESSing - applicable to your deployment environment. + and provide the minimum required parameters for the deployment + configuration as shown in the example below. Use the OAM IP SUBNET and IP + ADDRESSing applicable to your deployment environment. :: @@ -131,24 +131,72 @@ Bootstrap system on controller-0 admin_password: ansible_become_pass: - # Add these lines to configure Docker to use a proxy server - # docker_http_proxy: http://my.proxy.com:1080 - # docker_https_proxy: https://my.proxy.com:1443 - # docker_no_proxy: - # - 1.2.3.4 - EOF - .. only:: partner + .. only:: starlingx - .. include:: ../../../_includes/install-playbook-values-aws.rest + In either of the above options, the bootstrap playbook’s default values + will pull all container images required for the |prod-p| from Docker hub. + If you have setup a private Docker registry to use for bootstrapping + then you will need to add the following lines in $HOME/localhost.yml: - Refer to :ref:`Ansible Bootstrap Configurations ` - for information on additional Ansible bootstrap configurations for advanced - Ansible bootstrap scenarios, such as Docker proxies when deploying behind a - firewall, etc. Refer to :ref:`Docker Proxy configuration - ` for details about Docker proxy settings. + .. only:: partner + + .. include:: /_includes/install-kubernetes-bootstrap-playbook.rest + :start-after: docker-reg-begin + :end-before: docker-reg-end + + .. code-block:: + + docker_registries: + quay.io: + url: myprivateregistry.abc.com:9001/quay.io + docker.elastic.co: + url: myprivateregistry.abc.com:9001/docker.elastic.co + gcr.io: + url: myprivateregistry.abc.com:9001/gcr.io + k8s.gcr.io: + url: myprivateregistry.abc.com:9001/k8s.gcr.io + docker.io: + url: myprivateregistry.abc.com:9001/docker.io + defaults: + type: docker + username: + password: + + # Add the CA Certificate that signed myprivateregistry.abc.com’s + # certificate as a Trusted CA + ssl_ca_cert: /home/sysadmin/myprivateregistry.abc.com-ca-cert.pem + + See :ref:`Use a Private Docker Registry ` + for more information. + + .. only:: starlingx + + If a firewall is blocking access to Docker hub or your private + registry from your StarlingX deployment, you will need to add the + following lines in $HOME/localhost.yml (see :ref:`Docker Proxy + Configuration ` for more details about Docker + proxy settings): + + .. only:: partner + + .. include:: /_includes/install-kubernetes-bootstrap-playbook.rest + :start-after: firewall-begin + :end-before: firewall-end + + .. code-block:: + + # Add these lines to configure Docker to use a proxy server + docker_http_proxy: http://my.proxy.com:1080 + docker_https_proxy: https://my.proxy.com:1443 + docker_no_proxy: + - 1.2.3.4 + + Refer to :ref:`Ansible Bootstrap Configurations ` + for information on additional Ansible bootstrap configurations for advanced + Ansible bootstrap scenarios. #. Run the Ansible bootstrap playbook: @@ -177,7 +225,8 @@ Configure controller-0 #. Configure the |OAM| interface of controller-0 and specify the attached network as "oam". - Use the |OAM| port name that is applicable to your deployment environment, for example eth0: + Use the |OAM| port name that is applicable to your deployment environment, + for example eth0: :: @@ -185,9 +234,11 @@ Configure controller-0 system host-if-modify controller-0 $OAM_IF -c platform system interface-network-assign controller-0 $OAM_IF oam -#. Configure the MGMT interface of controller-0 and specify the attached networks of both "mgmt" and "cluster-host". +#. Configure the MGMT interface of controller-0 and specify the attached + networks of both "mgmt" and "cluster-host". - Use the MGMT port name that is applicable to your deployment environment, for example eth1: + Use the MGMT port name that is applicable to your deployment environment, + for example eth1: :: @@ -222,17 +273,7 @@ Configure controller-0 system storage-backend-add ceph --confirmed -#. If required, and not already done as part of bootstrap, configure Docker to - use a proxy server. - - StarlingX uses publicly available container runtime registries. If you are behind a - corporate firewall or proxy, you need to set docker proxy settings. - - Refer to :ref:`Docker Proxy Configuration ` for - details about configuring Docker proxy settings. - - -.. only:: starlingx +.. only:: openstack ************************************* OpenStack-specific host configuration @@ -382,7 +423,8 @@ Configure controller-1 #. Configure the |OAM| interface of controller-1 and specify the attached network of "oam". - Use the |OAM| port name that is applicable to your deployment environment, for example eth0: + Use the |OAM| port name that is applicable to your deployment environment, + for example eth0: :: @@ -390,18 +432,19 @@ Configure controller-1 system host-if-modify controller-1 $OAM_IF -c platform system interface-network-assign controller-1 $OAM_IF oam -#. The MGMT interface is partially set up by the network install procedure; configuring - the port used for network install as the MGMT port and specifying the attached network of "mgmt". +#. The MGMT interface is partially set up by the network install procedure; + configuring the port used for network install as the MGMT port and + specifying the attached network of "mgmt". - Complete the MGMT interface configuration of controller-1 by specifying the attached - network of "cluster-host". + Complete the MGMT interface configuration of controller-1 by specifying the + attached network of "cluster-host". :: system interface-network-assign controller-1 mgmt0 cluster-host -.. only:: starlingx +.. only:: openstack ************************************* OpenStack-specific host configuration @@ -412,8 +455,8 @@ Configure controller-1 **This step is required only if the StarlingX OpenStack application (stx-openstack) will be installed.** - **For OpenStack only:** Assign OpenStack host labels to controller-1 in support - of installing the stx-openstack manifest and helm-charts later. + **For OpenStack only:** Assign OpenStack host labels to controller-1 in + support of installing the stx-openstack manifest and helm-charts later. :: @@ -494,41 +537,39 @@ Configure worker nodes * Configure the data interfaces - :: + :: - DATA0IF= - DATA1IF= - PHYSNET0='physnet0' - PHYSNET1='physnet1' - SPL=/tmp/tmp-system-port-list - SPIL=/tmp/tmp-system-host-if-list + # Execute the following lines with + export NODE=worker-0 + # and then repeat with + export NODE=worker-1 - # configure the datanetworks in sysinv, prior to referencing it - # in the ``system host-if-modify`` command'. - system datanetwork-add ${PHYSNET0} vlan - system datanetwork-add ${PHYSNET1} vlan + # List inventoried host’s ports and identify ports to be used as ‘data’ interfaces, + # based on displayed linux port name, pci address and device type. + system host-port-list ${NODE} - for NODE in worker-0 worker-1; do - echo "Configuring interface for: $NODE" - set -ex - system host-port-list ${NODE} --nowrap > ${SPL} - system host-if-list -a ${NODE} --nowrap > ${SPIL} - DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') - DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') - DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') - DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') - DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') - DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') - DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') - DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') - system host-if-modify -m 1500 -n data0 -c data ${NODE} ${DATA0IFUUID} - system host-if-modify -m 1500 -n data1 -c data ${NODE} ${DATA1IFUUID} - system interface-datanetwork-assign ${NODE} ${DATA0IFUUID} ${PHYSNET0} - system interface-datanetwork-assign ${NODE} ${DATA1IFUUID} ${PHYSNET1} - set +ex - done + # List host’s auto-configured ‘ethernet’ interfaces, + # find the interfaces corresponding to the ports identified in previous step, and + # take note of their UUID + system host-if-list -a ${NODE} - * To enable using |SRIOV| network attachments for the above interfaces in Kubernetes hosted application containers: + # Modify configuration for these interfaces + # Configuring them as ‘data’ class interfaces, MTU of 1500 and named data# + system host-if-modify -m 1500 -n data0 -c data ${NODE} + system host-if-modify -m 1500 -n data1 -c data ${NODE} + + # Create Data Networks + PHYSNET0='physnet0' + PHYSNET1='physnet1' + system datanetwork-add ${PHYSNET0} vlan + system datanetwork-add ${PHYSNET1} vlan + + # Assign Data Networks to Data Interfaces + system interface-datanetwork-assign ${NODE} ${PHYSNET0} + system interface-datanetwork-assign ${NODE} ${PHYSNET1} + + * To enable using |SRIOV| network attachments for the above interfaces in + Kubernetes hosted application containers: * Configure |SRIOV| device plug in: @@ -554,7 +595,7 @@ Configure worker nodes done -.. only:: starlingx +.. only:: openstack ************************************* OpenStack-specific host configuration diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/dedicated_storage_install_kubernetes.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/dedicated_storage_install_kubernetes.rst index b6ca74d5e..c0fa3a5a7 100644 --- a/doc/source/deploy_install_guides/r5_release/bare_metal/dedicated_storage_install_kubernetes.rst +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/dedicated_storage_install_kubernetes.rst @@ -10,9 +10,8 @@ Install Kubernetes Platform on Standard with Dedicated Storage ============================================================== -This section describes the steps to install the StarlingX Kubernetes platform -on a **StarlingX R5.0 Standard with Dedicated Storage** deployment -configuration. +This section describes the steps to install the |prod| Kubernetes platform on a +**Standard with Dedicated Storage** deployment configuration. .. contents:: :local: @@ -68,7 +67,8 @@ Unlock controller-0 in order to bring it into service: system host-unlock controller-0 Controller-0 will reboot in order to apply configuration changes and come into -service. This can take 5-10 minutes, depending on the performance of the host machine. +service. This can take 5-10 minutes, depending on the performance of the host +machine. ----------------------------------------------------------------- Install software on controller-1, storage nodes, and worker nodes @@ -193,35 +193,37 @@ Configure storage nodes system interface-network-assign $NODE mgmt0 cluster-host done -#. Add |OSDs| to storage-0. The following example adds |OSDs| to the `sdb` disk: +#. Add |OSDs| to storage-0. :: - HOST=storage-0 - DISKS=$(system host-disk-list ${HOST}) - TIERS=$(system storage-tier-list ceph_cluster) - OSDs="/dev/sdb" - for OSD in $OSDs; do - system host-stor-add ${HOST} $(echo "$DISKS" | grep "$OSD" | awk '{print $2}') --tier-uuid $(echo "$TIERS" | grep storage | awk '{print $2}') - while true; do system host-stor-list ${HOST} | grep ${OSD} | grep configuring; if [ $? -ne 0 ]; then break; fi; sleep 1; done - done + HOST=storage-0 - system host-stor-list $HOST + # List host’s disks and identify disks you want to use for CEPH OSDs, taking note of their UUID + # By default, /dev/sda is being used as system disk and can not be used for OSD. + system host-disk-list ${HOST} -#. Add |OSDs| to storage-1. The following example adds |OSDs| to the `sdb` disk: + # Add disk as an OSD storage + system host-stor-add ${HOST} osd + + # List OSD storage devices and wait for configuration of newly added OSD to complete. + system host-stor-list ${HOST} + +#. Add |OSDs| to storage-1. :: - HOST=storage-1 - DISKS=$(system host-disk-list ${HOST}) - TIERS=$(system storage-tier-list ceph_cluster) - OSDs="/dev/sdb" - for OSD in $OSDs; do - system host-stor-add ${HOST} $(echo "$DISKS" | grep "$OSD" | awk '{print $2}') --tier-uuid $(echo "$TIERS" | grep storage | awk '{print $2}') - while true; do system host-stor-list ${HOST} | grep ${OSD} | grep configuring; if [ $? -ne 0 ]; then break; fi; sleep 1; done - done + HOST=storage-1 - system host-stor-list $HOST + # List host’s disks and identify disks you want to use for CEPH OSDs, taking note of their UUID + # By default, /dev/sda is being used as system disk and can not be used for OSD. + system host-disk-list ${HOST} + + # Add disk as an OSD storage + system host-stor-add ${HOST} osd + + # List OSD storage devices and wait for configuration of newly added OSD to complete. + system host-stor-list ${HOST} -------------------- Unlock storage nodes @@ -266,45 +268,44 @@ Configure worker nodes This step is **required** for OpenStack. - * Configure the data interfaces + * Configure the data interfaces. - :: + :: - DATA0IF= - DATA1IF= + # Execute the following lines with + export NODE=worker-0 + # and then repeat with + export NODE=worker-1 + + # List inventoried host’s ports and identify ports to be used as ‘data’ interfaces, + # based on displayed linux port name, pci address and device type. + system host-port-list ${NODE} + + # List host’s auto-configured ‘ethernet’ interfaces, + # find the interfaces corresponding to the ports identified in previous step, and + # take note of their UUID + system host-if-list -a ${NODE} + + # Modify configuration for these interfaces + # Configuring them as ‘data’ class interfaces, MTU of 1500 and named data# + system host-if-modify -m 1500 -n data0 -c data ${NODE} + system host-if-modify -m 1500 -n data1 -c data ${NODE} + + # Create Data Networks PHYSNET0='physnet0' PHYSNET1='physnet1' - SPL=/tmp/tmp-system-port-list - SPIL=/tmp/tmp-system-host-if-list - - # configure the datanetworks in sysinv, prior to referencing it - # in the ``system host-if-modify`` command'. system datanetwork-add ${PHYSNET0} vlan system datanetwork-add ${PHYSNET1} vlan - for NODE in worker-0 worker-1; do - echo "Configuring interface for: $NODE" - set -ex - system host-port-list ${NODE} --nowrap > ${SPL} - system host-if-list -a ${NODE} --nowrap > ${SPIL} - DATA0PCIADDR=$(cat $SPL | grep $DATA0IF |awk '{print $8}') - DATA1PCIADDR=$(cat $SPL | grep $DATA1IF |awk '{print $8}') - DATA0PORTUUID=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $2}') - DATA1PORTUUID=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $2}') - DATA0PORTNAME=$(cat $SPL | grep ${DATA0PCIADDR} | awk '{print $4}') - DATA1PORTNAME=$(cat $SPL | grep ${DATA1PCIADDR} | awk '{print $4}') - DATA0IFUUID=$(cat $SPIL | awk -v DATA0PORTNAME=$DATA0PORTNAME '($12 ~ DATA0PORTNAME) {print $2}') - DATA1IFUUID=$(cat $SPIL | awk -v DATA1PORTNAME=$DATA1PORTNAME '($12 ~ DATA1PORTNAME) {print $2}') - system host-if-modify -m 1500 -n data0 -c data ${NODE} ${DATA0IFUUID} - system host-if-modify -m 1500 -n data1 -c data ${NODE} ${DATA1IFUUID} - system interface-datanetwork-assign ${NODE} ${DATA0IFUUID} ${PHYSNET0} - system interface-datanetwork-assign ${NODE} ${DATA1IFUUID} ${PHYSNET1} - set +ex - done + # Assign Data Networks to Data Interfaces + system interface-datanetwork-assign ${NODE} ${PHYSNET0} + system interface-datanetwork-assign ${NODE} ${PHYSNET1} - * To enable using SRIOV network attachments for the above interfaces in Kubernetes hosted application containers: - * Configure SRIOV device plug in: + * To enable using |SRIOV| network attachments for the above interfaces in + Kubernetes hosted application containers: + + * Configure |SRIOV| device plug in: :: @@ -313,7 +314,7 @@ Configure worker nodes done * If planning on running |DPDK| in containers on this host, configure the - number of 1G Huge pages required on both NUMA nodes: + number of 1G Huge pages required on both |NUMA| nodes: :: diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/exporting-host-configurations.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/exporting-host-configurations.rst new file mode 100644 index 000000000..ddcc63d79 --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/exporting-host-configurations.rst @@ -0,0 +1,53 @@ + +.. fdm1552927801987 +.. _exporting-host-configurations: + +========================== +Export Host Configurations +========================== + +You can generate a host configuration file from an existing system for +re-installation, upgrade, or maintenance purposes. + +.. rubric:: |context| + +You can generate a host configuration file using the :command:`system +host-bulk-export` command, and then use this file with the :command:`system +host-bulk-add` command to re-create the system. If required, you can modify the +file before using it. + +The configuration settings \(management |MAC| address, BM IP address, and so +on\) for all nodes except **controller-0** are written to the file. + +.. note:: + To ensure that the hosts are not powered on unexpectedly, the **power-on** + element for each host is commented out by default. + +.. rubric:: |prereq| + +To perform this procedure, you must be logged in as the **admin** user. + +.. rubric:: |proc| + +.. _exporting-host-configurations-steps-unordered-ntw-nw1-c2b: + +- Run the :command:`system host-bulk-export` command to create the host + configuration file. + + .. code-block:: none + + system host-bulk-export [--filename + + + - where is the path and name of the output file. If the + ``--filename`` option is not present, the default path ./hosts.xml is + used. + +.. rubric:: |postreq| + +To use the host configuration file, see :ref:`Reinstall a System Using an +Exported Host Configuration File +`. + +For details on the structure and elements of the file, see :ref:`Bulk Host XML +File Format `. diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-or-a-host.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-or-a-host.rst new file mode 100644 index 000000000..816d5ae03 --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-or-a-host.rst @@ -0,0 +1,39 @@ + +.. deo1552927844327 +.. _reinstalling-a-system-or-a-host: + +============================ +Reinstall a System or a Host +============================ + +You can reinstall individual hosts or the entire system if necessary. +Reinstalling host software or deleting and re-adding a host node may be +required to complete certain configuration changes. + +.. rubric:: |context| + +For a summary of changes that require system or host reinstallation, see +|node-doc|: :ref:`Configuration Changes Requiring Re-installation +`. + +To reinstall an entire system, refer to the Installation Guide for your system +type \(for example, Standard or All-in-one\). + +.. note:: + To simplify system reinstallation, you can export and reuse an existing + system configuration. For more information, see :ref:`Reinstalling a System + Using an Exported Host Configuration File + `. + +To reinstall the software on a host using the Host Inventory controls, see +|node-doc|: :ref:`Host Inventory `. In some cases, you must delete +the host instead, and then re-add it using the standard host installation +procedure. This applies if the system inventory record must be corrected to +complete the configuration change \(for example, if the |MAC| address of the +management interface has changed\). + +- :ref:`Reinstalling a System Using an Exported Host Configuration File + ` + +- :ref:`Exporting Host Configurations ` + diff --git a/doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-using-an-exported-host-configuration-file.rst b/doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-using-an-exported-host-configuration-file.rst new file mode 100644 index 000000000..5b1700614 --- /dev/null +++ b/doc/source/deploy_install_guides/r5_release/bare_metal/reinstalling-a-system-using-an-exported-host-configuration-file.rst @@ -0,0 +1,45 @@ + +.. wuh1552927822054 +.. _reinstalling-a-system-using-an-exported-host-configuration-file: + +============================================================ +Reinstall a System Using an Exported Host Configuration File +============================================================ + +You can reinstall a system using the host configuration file that is generated +using the :command:`host-bulk-export` command. + +.. rubric:: |prereq| + +For the following procedure, **controller-0** must be the active controller. + +.. rubric:: |proc| + +#. Create a host configuration file using the :command:`system + host-bulk-export` command, as described in :ref:`Exporting Host + Configurations `. + +#. Copy the host configuration file to a USB drive or somewhere off the + controller hard disk. + +#. Edit the host configuration file as needed, for example to specify power-on + or |BMC| information. + +#. Delete all the hosts except **controller-0** from the inventory. + +#. Reinstall the |prod| software on **controller-0**, which must be the active + controller. + +#. Run :command:`Ansible Bootstrap playbook`. + +#. Follow the instructions for using the :command:`system host-bulk-add` + command, as detailed in :ref:`Adding Hosts in Bulk `. + +.. rubric:: |postreq| + +After adding the host, you must provision it according to the requirements of +the personality. + +.. xbooklink For more information, see :ref:`Installing, Configuring, and + Unlocking Nodes `, for your system, + and follow the *Configure* steps for the appropriate node personality. diff --git a/doc/source/deploy_install_guides/r5_release/index.rst b/doc/source/deploy_install_guides/r5_release/index.rst index fa09a8291..e084f6885 100644 --- a/doc/source/deploy_install_guides/r5_release/index.rst +++ b/doc/source/deploy_install_guides/r5_release/index.rst @@ -38,6 +38,61 @@ Install StarlingX Kubernetes on bare metal bare_metal/dedicated_storage bare_metal/ironic bare_metal/rook_storage + +********** +Appendixes +********** + + +.. _use-private-docker-registry: + +Use a private Docker registry +***************************** + +.. toctree:: + :maxdepth: 1 + + bare_metal/bootstrapping-from-a-private-docker-registry + + +Install controller-0 from a PXE boot server +******************************************* + +.. toctree:: + :maxdepth: 1 + + bare_metal/configuring-a-pxe-boot-server + bare_metal/accessing-pxe-boot-server-files-for-a-custom-configuration + + +Add and reinstall a host +************************ + +.. toctree:: + :maxdepth: 1 + + bare_metal/adding-hosts-using-the-host-add-command + + +Add hosts in bulk +,,,,,,,,,,,,,,,,, + +.. toctree:: + :maxdepth: 1 + + bare_metal/adding-hosts-in-bulk + bare_metal/bulk-host-xml-file-format + + +Reinstall a system or a host +,,,,,,,,,,,,,,,,,,,,,,,,,,,, + +.. toctree:: + :maxdepth: 1 + + bare_metal/reinstalling-a-system-or-a-host + bare_metal/reinstalling-a-system-using-an-exported-host-configuration-file + bare_metal/exporting-host-configurations .. toctree:: :hidden: diff --git a/tox.ini b/tox.ini index 70a1193aa..1595a5a6d 100644 --- a/tox.ini +++ b/tox.ini @@ -16,7 +16,7 @@ deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/doc/requirements.txt commands = - sphinx-build -a -E -W --keep-going -d doc/build/doctrees -t starlingx -b html doc/source doc/build/html {posargs} + sphinx-build -a -E -W --keep-going -d doc/build/doctrees -t starlingx -t openstack -b html doc/source doc/build/html {posargs} bash htmlChecks.sh whitelist_externals = bash htmlChecks.sh