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 <ronald.stone@windriver.com> Change-Id: Icca40bc8c8c46ca1f3f38f5e4a63f5bb466b19bc Signed-off-by: Ron Stone <ronald.stone@windriver.com>
This commit is contained in:
parent
dc4315d6f5
commit
9ac2eb2a4e
22
doc/source/_includes/docker-proxy-config.rest
Normal file
22
doc/source/_includes/docker-proxy-config.rest
Normal file
@ -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
|
||||
|
@ -0,0 +1,8 @@
|
||||
.. playbook-defaults-begin
|
||||
.. playbook-defaults-end
|
||||
|
||||
.. docker-reg-begin
|
||||
.. docker-reg-end
|
||||
|
||||
.. firewall-begin
|
||||
.. firewall-end
|
6
doc/source/_includes/set-proxy-at-bootstrap.rest
Normal file
6
doc/source/_includes/set-proxy-at-bootstrap.rest
Normal file
@ -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>`.
|
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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 <configuring-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://<ip-addr>/<symlink> <-w <working directory>>
|
||||
|
||||
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>.
|
||||
|
||||
**working-dir**
|
||||
is the path to the working directory.
|
||||
|
||||
#. Copy the required files from the working directory to your custom |PXE|
|
||||
boot server directory.
|
@ -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
|
||||
<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 <xml_file>
|
||||
|
||||
where <xml\_file> 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 <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 <bulk-host-xml-file-format>`
|
@ -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
|
||||
<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 <hostname> \
|
||||
-p <personality> [-s <subfunctions>] \
|
||||
[-l <location>] [-o <install_output>[-c <console>]] [-b <boot_device>] \
|
||||
[-r <rootfs_device>] [-m <mgmt_mac>] [-i <mgmt_ip>] [-D <ttys_dcd>] \
|
||||
[-T <bm_type> -I <bm_ip> -U <bm_username> -P <bm_password>]
|
||||
|
||||
|
||||
where
|
||||
|
||||
**<hostname>**
|
||||
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.
|
||||
|
||||
**<personality>**
|
||||
is the host type. The following are valid values:
|
||||
|
||||
- controller
|
||||
|
||||
- worker
|
||||
|
||||
- storage
|
||||
|
||||
**<subfunctions>**
|
||||
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
|
||||
<worker-function-performance-profiles>`.
|
||||
|
||||
**<location>**
|
||||
is a string describing the location of the host
|
||||
|
||||
**<console>**
|
||||
is the output device to use for message display on the host \(for
|
||||
example, tty0\). The default is ttys0, 115200.
|
||||
|
||||
**<install\_output>**
|
||||
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.
|
||||
|
||||
**<boot\_device>**
|
||||
is the host device for boot partition, relative to /dev. The default is
|
||||
sda.
|
||||
|
||||
**<rootfs\_device>**
|
||||
is the host device for rootfs partition, relative to/dev. The default
|
||||
is sda.
|
||||
|
||||
**<mgmt\_mac>**
|
||||
is the |MAC| address of the port connected to the internal management
|
||||
or |PXE| boot network.
|
||||
|
||||
**<mgmt\_ip>**
|
||||
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 <mgmt\_ip> option is not used for a controller node.
|
||||
|
||||
**<ttys\_dcd>**
|
||||
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.
|
||||
|
||||
**<bm\_type>**
|
||||
is the board management controller type. Use bmc.
|
||||
|
||||
**<bm\_ip>**
|
||||
is the board management controller IP address \(used for external
|
||||
access to board management controllers over the |OAM| network\)
|
||||
|
||||
**<bm\_username>**
|
||||
is the username for board management controller access
|
||||
|
||||
**<bm\_password>**
|
||||
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 <installing-configuring-and-unlocking-nodes>` and follow the *Configure*
|
||||
steps for the appropriate node personality.
|
@ -92,39 +92,37 @@ Configure worker nodes
|
||||
|
||||
* Configure the data interfaces
|
||||
|
||||
::
|
||||
.. code-block:: bash
|
||||
|
||||
DATA0IF=<DATA-0-PORT>
|
||||
DATA1IF=<DATA-1-PORT>
|
||||
# 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} <data0-if-uuid>
|
||||
system host-if-modify -m 1500 -n data1 -c data ${NODE} <data1-if-uuid>
|
||||
|
||||
# Previously configured 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} <data0-if-uuid> ${PHYSNET0}
|
||||
system interface-datanetwork-assign ${NODE} <data1-if-uuid> ${PHYSNET1}
|
||||
|
||||
|
||||
* To enable using |SRIOV| network attachments for the above interfaces in
|
||||
Kubernetes hosted application containers:
|
||||
|
@ -131,24 +131,74 @@ Bootstrap system on controller-0
|
||||
admin_password: <admin-password>
|
||||
ansible_become_pass: <sysadmin-password>
|
||||
|
||||
# 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:: 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-playbook-values-aws.rest
|
||||
.. 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: <your_myprivateregistry.abc.com_username>
|
||||
password: <your_myprivateregistry.abc.com_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 <use-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 <docker_proxy_config>` 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 <ansible_bootstrap_configs>`
|
||||
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
|
||||
<docker_proxy_config>` for details about Docker proxy settings.
|
||||
Ansible bootstrap scenarios.
|
||||
|
||||
#. Run the Ansible bootstrap playbook:
|
||||
|
||||
@ -211,6 +261,8 @@ Configure controller-0
|
||||
This step is optional for Kubernetes: Do this step if using |SRIOV| network
|
||||
attachments in hosted application containers.
|
||||
|
||||
.. only:: starlingx
|
||||
|
||||
.. important::
|
||||
|
||||
This step is **required** for OpenStack.
|
||||
@ -220,31 +272,31 @@ Configure controller-0
|
||||
|
||||
::
|
||||
|
||||
DATA0IF=<DATA-0-PORT>
|
||||
DATA1IF=<DATA-1-PORT>
|
||||
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} <data0-if-uuid>
|
||||
system host-if-modify -m 1500 -n data1 -c data ${NODE} <data1-if-uuid>
|
||||
|
||||
# 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} <data0-if-uuid> ${PHYSNET0}
|
||||
system interface-datanetwork-assign ${NODE} <data1-if-uuid> ${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 <disk-uuid>
|
||||
|
||||
# List OSD storage devices
|
||||
system host-stor-list controller-0
|
||||
|
||||
|
||||
# Add disk as an OSD storage
|
||||
system host-stor-add controller-0 osd <disk-uuid>
|
||||
|
||||
.. 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 <docker_proxy_config>` 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,6 +585,8 @@ Configure controller-1
|
||||
This step is optional for Kubernetes. Do this step if using |SRIOV|
|
||||
network attachments in hosted application containers.
|
||||
|
||||
.. only:: starlingx
|
||||
|
||||
.. important::
|
||||
|
||||
This step is **required** for OpenStack.
|
||||
@ -542,31 +596,30 @@ Configure controller-1
|
||||
|
||||
::
|
||||
|
||||
DATA0IF=<DATA-0-PORT>
|
||||
DATA1IF=<DATA-1-PORT>
|
||||
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} <data0-if-uuid>
|
||||
system host-if-modify -m 1500 -n data1 -c data ${NODE} <data1-if-uuid>
|
||||
|
||||
# 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} <data0-if-uuid> ${PHYSNET0}
|
||||
system interface-datanetwork-assign ${NODE} <data1-if-uuid> ${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 <disk-uuid>
|
||||
|
||||
# List OSD storage devices
|
||||
system host-stor-list controller-0
|
||||
|
||||
# Add disk as an OSD storage
|
||||
system host-stor-add controller-0 osd <disk-uuid>
|
||||
|
||||
|
||||
.. 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
|
@ -130,24 +130,74 @@ Bootstrap system on controller-0
|
||||
admin_password: <admin-password>
|
||||
ansible_become_pass: <sysadmin-password>
|
||||
|
||||
# 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:: 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-playbook-values-aws.rest
|
||||
.. 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: <your_myprivateregistry.abc.com_username>
|
||||
password: <your_myprivateregistry.abc.com_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 <use-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 <docker_proxy_config>` 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 <ansible_bootstrap_configs>`
|
||||
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
|
||||
<docker_proxy_config>` for details about Docker proxy settings.
|
||||
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=<DATA-0-PORT>
|
||||
DATA1IF=<DATA-1-PORT>
|
||||
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} <data0-if-uuid>
|
||||
system host-if-modify -m 1500 -n data1 -c data ${NODE} <data1-if-uuid>
|
||||
|
||||
# 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} <data0-if-uuid> ${PHYSNET0}
|
||||
system interface-datanetwork-assign ${NODE} <data1-if-uuid> ${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 <disk-uuid>
|
||||
|
||||
# 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 <docker_proxy_config>` for
|
||||
details about configuring Docker proxy settings.
|
||||
|
||||
.. only:: starlingx
|
||||
.. only:: openstack
|
||||
|
||||
*************************************
|
||||
OpenStack-specific host configuration
|
||||
@ -406,7 +455,7 @@ 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
|
||||
|
||||
@ -425,6 +474,7 @@ details about configuring Docker proxy settings.
|
||||
|
||||
.. incl-config-controller-0-openstack-specific-aio-simplex-end:
|
||||
|
||||
|
||||
-------------------
|
||||
Unlock controller-0
|
||||
-------------------
|
||||
|
@ -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: <my-registry.io>/k8s.gcr.io
|
||||
gcr.io:
|
||||
url: <my-registry.io>/gcr.io
|
||||
quay.io:
|
||||
url: <my-registry.io>/quay.io
|
||||
docker.io:
|
||||
url: <my-registry.io>/docker.io
|
||||
docker.elastic.co:
|
||||
url: <my-registry.io>/docker.elastic.co
|
||||
defaults:
|
||||
type: docker
|
||||
username: <your_my-registry.io_username>
|
||||
password: <your_my-registry.io_password>
|
||||
|
||||
Where ``<your\_my-registry.io\_username>`` and
|
||||
``<your\_my-registry.io\_password>`` are your login credentials for the
|
||||
``<my-registry.io>`` private Docker registry.
|
||||
|
||||
.. note::
|
||||
``<my-registry.io>`` 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/<imageName>:<tag>
|
||||
|
@ -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
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<hosts>
|
||||
<host>
|
||||
<personality>controller</personality>
|
||||
<mgmt_mac>08:00:27:19:b0:c5</mgmt_mac>
|
||||
<bm_ip>10.10.10.100</bm_ip>
|
||||
<bm_type>bmc</bm_type>
|
||||
<bm_username>tsmith1</bm_username>
|
||||
<bm_password>mypass1</bm_password>
|
||||
<install_output>text</install_output>
|
||||
<location>System12/A4</location>
|
||||
</host>
|
||||
<host>
|
||||
<hostname>worker-0</hostname>
|
||||
<personality>worker</personality>
|
||||
<mgmt_mac>08:00:27:dc:42:46</mgmt_mac>
|
||||
<mgmt_ip>192.168.204.50</mgmt_ip>
|
||||
<bm_ip>10.10.10.101</bm_ip>
|
||||
<bm_username>tsmith1</bm_username>
|
||||
<bm_password>mypass1</bm_password>
|
||||
<bm_type>bmc</bm_type>
|
||||
<install_output>text</install_output>
|
||||
<console></console>
|
||||
</host>
|
||||
<host>
|
||||
<hostname>worker-1</hostname>
|
||||
<personality>worker</personality>
|
||||
<mgmt_mac>08:00:27:87:82:3E</mgmt_mac>
|
||||
<mgmt_ip>192.168.204.51</mgmt_ip>
|
||||
<bm_ip>10.10.10.102</bm_ip>
|
||||
<bm_type>bmc</bm_type>
|
||||
<bm_username>tsmith1</bm_username>
|
||||
<bm_password>mypass1</bm_password>
|
||||
<rootfs_device>sda</rootfs_device>
|
||||
<install_output>text</install_output>
|
||||
</host>
|
||||
<host>
|
||||
<hostname>worker-2</hostname>
|
||||
<personality>worker</personality>
|
||||
<mgmt_mac>08:00:27:b9:16:0d</mgmt_mac>
|
||||
<mgmt_ip>192.168.204.52</mgmt_ip>
|
||||
<rootfs_device>sda</rootfs_device>
|
||||
<install_output>text</install_output>
|
||||
<console></console>
|
||||
<power_on/>
|
||||
<bm_ip>10.10.10.103</bm_ip>
|
||||
<bm_type>bmc</bm_type>
|
||||
<bm_username>tsmith1</bm_username>
|
||||
<bm_password>mypass1</bm_password>
|
||||
</host>
|
||||
<host>
|
||||
<personality>storage</personality>
|
||||
<mgmt_mac>08:00:27:dd:e3:3f</mgmt_mac>
|
||||
<bm_ip>10.10.10.104</bm_ip>
|
||||
<bm_type>bmc</bm_type>
|
||||
<bm_username>tsmith1</bm_username>
|
||||
<bm_password>mypass1</bm_password>
|
||||
</host>
|
||||
<host>
|
||||
<personality>storage</personality>
|
||||
<mgmt_mac>08:00:27:8e:f1:b8</mgmt_mac>
|
||||
<bm_ip>10.10.10.105</bm_ip>
|
||||
<bm_type>bmc</bm_type>
|
||||
<bm_username>tsmith1</bm_username>
|
||||
<bm_password>mypass1</bm_password>
|
||||
</host>
|
||||
</hosts>
|
@ -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
|
||||
<accessing-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 <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://<ip-addr>/<symlink> \
|
||||
-t <tftp-boot-dir>
|
||||
|
||||
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>.
|
||||
|
||||
``tftp-boot-dir``
|
||||
is the path from which the boot loader is served \(the TFTP root
|
||||
directory\).
|
||||
|
||||
The script creates the directory specified by <tftp-boot-dir>.
|
||||
|
||||
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 <tftp-boot-dir>/pxelinux.cfg/
|
||||
$ cp pxeboot.cfg <mac-address-string>
|
||||
|
||||
where:
|
||||
|
||||
``<tftp-boot-dir>``
|
||||
is the path from which the boot loader is served.
|
||||
|
||||
``<mac-address-string>``
|
||||
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 <tftp-boot-dir>
|
||||
$ cp grub.cfg grub.cfg-<mac-address-string>
|
||||
$ cp grub.cfg ./EFI/grub.cfg-<mac-address-string>
|
||||
|
||||
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.
|
@ -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: <admin-password>
|
||||
ansible_become_pass: <sysadmin-password>
|
||||
|
||||
# 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:: 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-playbook-values-aws.rest
|
||||
.. 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: <your_myprivateregistry.abc.com_username>
|
||||
password: <your_myprivateregistry.abc.com_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 <use-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 <docker_proxy_config>` 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 <ansible_bootstrap_configs>`
|
||||
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
|
||||
<docker_proxy_config>` for details about Docker proxy settings.
|
||||
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 <docker_proxy_config>` 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.
|
||||
|
||||
::
|
||||
|
||||
@ -496,39 +539,37 @@ Configure worker nodes
|
||||
|
||||
::
|
||||
|
||||
DATA0IF=<DATA-0-PORT>
|
||||
DATA1IF=<DATA-1-PORT>
|
||||
# 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} <data0-if-uuid>
|
||||
system host-if-modify -m 1500 -n data1 -c data ${NODE} <data1-if-uuid>
|
||||
|
||||
# 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} <data0-if-uuid> ${PHYSNET0}
|
||||
system interface-datanetwork-assign ${NODE} <data1-if-uuid> ${PHYSNET1}
|
||||
|
||||
* To enable using |SRIOV| network attachments for the above interfaces in Kubernetes hosted application containers:
|
||||
* 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
|
||||
|
@ -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
|
||||
|
||||
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 <disk-uuid>
|
||||
|
||||
# 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
|
||||
|
||||
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 <disk-uuid>
|
||||
|
||||
# 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=<DATA-0-PORT>
|
||||
DATA1IF=<DATA-1-PORT>
|
||||
# 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} <data0-if-uuid>
|
||||
system host-if-modify -m 1500 -n data1 -c data ${NODE} <data1-if-uuid>
|
||||
|
||||
# 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} <data0-if-uuid> ${PHYSNET0}
|
||||
system interface-datanetwork-assign ${NODE} <data1-if-uuid> ${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:
|
||||
|
||||
::
|
||||
|
||||
|
@ -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 <FILENAME]>
|
||||
|
||||
|
||||
- where <FILENAME> 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
|
||||
<reinstalling-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 <bulk-host-xml-file-format>`.
|
@ -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
|
||||
<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
|
||||
<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 <hosts-tab>`. 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
|
||||
<reinstalling-a-system-using-an-exported-host-configuration-file>`
|
||||
|
||||
- :ref:`Exporting Host Configurations <exporting-host-configurations>`
|
||||
|
@ -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 <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 <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 <installing-configuring-and-unlocking-nodes>`, for your system,
|
||||
and follow the *Configure* steps for the appropriate node personality.
|
@ -39,6 +39,61 @@ Install StarlingX Kubernetes on bare metal
|
||||
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:
|
||||
|
||||
|
2
tox.ini
2
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
|
||||
|
Loading…
Reference in New Issue
Block a user