564417258c
Remove comment from Greg that is already addressed. Change-Id: Ib5f0584fa41f8e556f6b89d8f48434bcadc5bd58 Signed-off-by: Elisamara Aoki Gonçalves <elisamaraaoki.goncalves@windriver.com>
349 lines
13 KiB
ReStructuredText
349 lines
13 KiB
ReStructuredText
.. pja1558616715987
|
|
|
|
|hideable|
|
|
|
|
.. _installing-a-subcloud-without-redfish-platform-management-service:
|
|
|
|
==============================================================
|
|
Install a Subcloud Without Redfish Platform Management Service
|
|
==============================================================
|
|
|
|
For subclouds with servers that do not support Redfish Virtual Media Service,
|
|
the ISO is installed locally at the subcloud. You can use the Central Cloud's
|
|
CLI to bootstrap subclouds from the Central Cloud.
|
|
|
|
|
|
.. _installing-a-subcloud-without-redfish-platform-management-service-section-N10027-N10024-N10001:
|
|
|
|
.. rubric:: |context|
|
|
|
|
After physically installing the hardware and network connectivity of a
|
|
subcloud, the subcloud installation process has two phases:
|
|
|
|
|
|
.. _installing-a-subcloud-without-redfish-platform-management-service-ul-fmx-jpl-mkb:
|
|
|
|
- Installing the ISO on controller-0; this is done locally at the subcloud by
|
|
using either, a bootable USB device, or a local |PXE| boot server
|
|
|
|
- Executing the :command:`dcmanager subcloud add` command in the Central
|
|
Cloud that uses Ansible to bootstrap |prod-long| on controller-0 in
|
|
the subcloud
|
|
|
|
.. rubric:: |prereq|
|
|
|
|
.. _installing-a-subcloud-without-redfish-platform-management-service-ul-g5j-3f3-qjb:
|
|
|
|
.. only:: partner
|
|
|
|
.. include:: /_includes/installing-a-subcloud-without-redfish-platform-management-service.rest
|
|
:start-after: prereq-begin
|
|
:end-before: prereq-end
|
|
|
|
- You must have downloaded ``update-iso.sh`` from |dnload-loc|.
|
|
|
|
- In order to deploy subclouds from either controller, all local
|
|
files that are referenced in the ``subcloud-bootstrap-values.yaml`` file
|
|
must exist on both controllers
|
|
(for example, ``/home/sysadmin/docker-registry-ca-cert.pem``).
|
|
|
|
.. rubric:: |proc|
|
|
|
|
#. At the subcloud location, physically install the servers and network
|
|
connectivity required for the subcloud.
|
|
|
|
.. note::
|
|
|
|
The servers require connectivity to a gateway router that provides IP
|
|
routing between the subcloud management or admin subnet and the system
|
|
controller management subnet, and between the subcloud |OAM| subnet and
|
|
the system controller subnet.
|
|
|
|
.. include:: /_includes/installing-a-subcloud-without-redfish-platform-management-service.rest
|
|
:start-after: begin-ref-1
|
|
:end-before: end-ref-1
|
|
|
|
#. Update the ISO image to modify installation boot parameters (if
|
|
required), automatically select boot menu options and add a kickstart file
|
|
to automatically perform configurations such as configuring the initial IP
|
|
Interface for bootstrapping.
|
|
|
|
For subclouds, the initial IP Interface should be the planned |OAM| IP
|
|
Interface for the subcloud.
|
|
|
|
Use the ``update-iso.sh`` script from |dnload-loc|. The script is used as
|
|
follows:
|
|
|
|
.. code-block:: none
|
|
|
|
update-iso.sh --initial-password <password> -i <input bootimage.iso> -o <output bootimage.iso>
|
|
[ -a <ks-addon.cfg> ] [ -p param=value ]
|
|
[ -d <default menu option> ] [ -t <menu timeout> ]
|
|
-i <file>: Specify input ISO file
|
|
-o <file>: Specify output ISO file
|
|
-a <file>: Specify ks-addon.cfg file
|
|
--initial-password <password>: Specify the initial login password for sysadmin user
|
|
--no-force-password: Do not force password change on initial login (insecure)
|
|
|
|
-p <p=v>: Specify boot parameter
|
|
Examples:
|
|
-p instdev=/dev/disk/by-path/pci-0000:00:0d.0-ata-1.0
|
|
|
|
-d <default menu option>:
|
|
Specify default boot menu option:
|
|
0 - Standard Controller, Serial Console
|
|
1 - Standard Controller, Graphical Console
|
|
2 - AIO, Serial Console
|
|
3 - AIO, Graphical Console
|
|
4 - AIO Low-latency, Serial Console
|
|
5 - AIO Low-latency, Graphical Console
|
|
NULL - Clear default selection
|
|
-t <menu timeout>:
|
|
Specify boot menu timeout, in seconds
|
|
|
|
|
|
The following example ``ks-addon.cfg`` file, used with the -a option,
|
|
sets up an initial IP interface at boot time by defining a |VLAN| on an
|
|
Ethernet interface and has it use |DHCP| to request an IP address.
|
|
|
|
In Debian, by default the ``ks-addon.cfg`` script is executed outside of the
|
|
installing subcloud runtime (outside the chroot environment). As a result,
|
|
the script does not have access to the kernel runtime command shell. Instead,
|
|
the file system must be accessed via the provided ``$IMAGE_ROOTFS`` environment
|
|
variable.
|
|
|
|
If required, a chroot can be manually entered, allowing full access to the
|
|
installing subcloud's execution environment. See the ``ks-addon.cfg`` given
|
|
below for an example.
|
|
|
|
.. code-block:: none
|
|
|
|
#### start ks-addon.cfg
|
|
|
|
DEVICE=enp0s3
|
|
OAM_VLAN=1234
|
|
OAM_ADDR="xxxx:xxxx:x:xxxx:xx:x:x:x"
|
|
|
|
# This section is run outside of the subcloud target runtime.
|
|
# The IMAGE_ROOTFS environment variable is set to the root of the target filesystem
|
|
|
|
cat << EOF > ${IMAGE_ROOTFS}/etc/network/interfaces.d/ifcfg-${DEVICE}
|
|
auto ${DEVICE}
|
|
iface ${DEVICE} inet6 manual
|
|
mtu 9000
|
|
post-up echo 0 > /proc/sys/net/ipv6/conf/${DEVICE}/autoconf;\
|
|
echo 0 > /proc/sys/net/ipv6/conf/${DEVICE}/accept_ra;\
|
|
echo 0 > /proc/sys/net/ipv6/conf/${DEVICE}/accept_redirects
|
|
EOF
|
|
|
|
cat << EOF > ${IMAGE_ROOTFS}/etc/network/interfaces.d/ifcfg-vlan${OAM_VLAN}
|
|
auto vlan${OAM_VLAN}
|
|
iface vlan${OAM_VLAN} inet6 static
|
|
vlan-raw-device ${DEVICE}
|
|
address ${OAM_ADDR}
|
|
netmask 64
|
|
gateway ${OAM_GW_ADDR}
|
|
mtu 1500
|
|
post-up /usr/sbin/ip link set dev vlan${OAM_VLAN} mtu 1500;\
|
|
echo 0 > /proc/sys/net/ipv6/conf/vlan${OAM_VLAN}/autoconf;\
|
|
echo 0 > /proc/sys/net/ipv6/conf/vlan${OAM_VLAN}/accept_ra;\
|
|
echo 0 > /proc/sys/net/ipv6/conf/vlan${OAM_VLAN}/accept_redirects
|
|
EOF
|
|
|
|
# If execution is required inside the chroot environment, you can manually enter the
|
|
# chroot and run commands. Note: quotes around EOF are required:
|
|
cat << "EOF" | chroot "${IMAGE_ROOTFS}" /bin/bash -s
|
|
echo "ks-addon.cfg: inside chroot"
|
|
|
|
# chrooted commands go here.
|
|
# Commands are executed in the context of the installing subcloud.
|
|
|
|
EOF
|
|
|
|
#### end ks-addon.cfg
|
|
|
|
After updating the ISO image, create a bootable USB with the ISO or put the
|
|
ISO on a PXEBOOT server.
|
|
|
|
#. At the subcloud location, install the |prod| software from a USB
|
|
device or a |PXE| Boot Server on the server designated as controller-0.
|
|
|
|
.. include:: /_includes/installing-a-subcloud-without-redfish-platform-management-service.rest
|
|
:start-after: begin-ref-1
|
|
:end-before: end-ref-1
|
|
|
|
#. At the subcloud location, verify that the |OAM| interface on the subcloud
|
|
controller has been properly configured by the kickstart file added to the
|
|
ISO.
|
|
|
|
#. Log in to the subcloud's controller-0 and ping the Central Cloud's floating
|
|
|OAM| IP Address.
|
|
|
|
#. At the system controller, create a
|
|
``/home/sysadmin/subcloud1-bootstrap-values.yaml`` overrides file for the
|
|
subcloud.
|
|
|
|
For example:
|
|
|
|
.. code-block:: none
|
|
|
|
system_mode: simplex
|
|
name: "subcloud1"
|
|
|
|
description: "test"
|
|
location: "loc"
|
|
|
|
management_subnet: 192.168.101.0/24
|
|
management_start_address: 192.168.101.2
|
|
management_end_address: 192.168.101.50
|
|
management_gateway_address: 192.168.101.1
|
|
|
|
external_oam_subnet: 10.10.10.0/24
|
|
external_oam_gateway_address: 10.10.10.1
|
|
external_oam_floating_address: 10.10.10.12
|
|
|
|
systemcontroller_gateway_address: 192.168.204.101
|
|
|
|
docker_registries:
|
|
k8s.gcr.io:
|
|
url: registry.central:9001/k8s.gcr.io
|
|
gcr.io:
|
|
url: registry.central:9001/gcr.io
|
|
ghcr.io:
|
|
url: registry.central:9001/ghcr.io
|
|
quay.io:
|
|
url: registry.central:9001/quay.io
|
|
docker.io:
|
|
url: registry.central:9001/docker.io
|
|
docker.elastic.co:
|
|
url: registry.central:9001/docker.elastic.co
|
|
registry.k8s.io:
|
|
url: registry.central:9001/registry.k8s.io
|
|
icr.io:
|
|
url: registry.central:9001/icr.io
|
|
defaults:
|
|
username: sysinv
|
|
password: <sysinv_password>
|
|
type: docker
|
|
|
|
|
|
Where <sysinv_password\> can be found by running the following command
|
|
as 'sysadmin' on the Central Cloud:
|
|
|
|
.. code-block:: none
|
|
|
|
$ keyring get sysinv services
|
|
|
|
In the above example, if the admin network is used for communication
|
|
between the subcloud and system controller, then the
|
|
``management_gateway_address`` parameter should be replaced with admin
|
|
subnet information.
|
|
|
|
For example:
|
|
|
|
.. code-block:: none
|
|
|
|
management_subnet: 192.168.101.0/24
|
|
management_start_address: 192.168.101.2
|
|
management_end_address: 192.168.101.50
|
|
admin_subnet: 192.168.102.0/24
|
|
admin_start_address: 192.168.102.2
|
|
admin_end_address: 192.168.102.50
|
|
admin_gateway_address: 192.168.102.1
|
|
|
|
This configuration uses the local registry on your central cloud. If you
|
|
prefer to use the default external registries, make the following
|
|
substitutions for the ``docker_registries`` and
|
|
``additional_local_registry_images`` sections of the file.
|
|
|
|
.. code-block:: none
|
|
|
|
docker_registries:
|
|
defaults:
|
|
username: <your_wrs-aws.io_username>
|
|
password: <your_wrs-aws.io_password>
|
|
|
|
.. note::
|
|
|
|
If you have a reason not to use the Central Cloud's local registry you
|
|
can pull the images from another local private docker registry.
|
|
|
|
#. You can use the Central Cloud's local registry to pull images on subclouds.
|
|
The Central Cloud's local registry's HTTPS certificate must have the
|
|
Central Cloud's |OAM| IP, ``registry.local`` and ``registry.central`` in the
|
|
certificate's |SAN| list. For example, a valid certificate contains a |SAN|
|
|
list ``"DNS.1: registry.local DNS.2: registry.central IP.1: <floating
|
|
management\> IP.2: <floating OAM\>"``.
|
|
|
|
If required, refer to the
|
|
:ref:`migrate-platform-certificates-to-use-cert-manager-c0b1727e4e5d`
|
|
procedure to update the Docker Registry certificate for the Central Cloud.
|
|
The procedure will include the with required Domain Names and IPs in the
|
|
the certificate's |SAN| list.
|
|
|
|
#. Post installation, run the following command to add a subcloud on the system
|
|
controller.
|
|
|
|
.. code-block:: none
|
|
|
|
~(keystone_admin)]$ dcmanager subcloud add --bootstrap-address <bootstrap_address> --deploy-config <deploy_config.yaml> --bootstrap-values <bootstrap_values.yaml> --sysadmin-password <password>
|
|
|
|
#. At the Central Cloud / system controller, monitor the progress of the
|
|
subcloud bootstraping and deployment by using the deploy status field of
|
|
the :command:`dcmanager subcloud list` command.
|
|
|
|
.. include:: /shared/_includes/installing-a-subcloud.rest
|
|
:start-after: begin-monitor-progress
|
|
:end-before: end-monitor-progress
|
|
|
|
|
|
#. You can also monitor detailed logging of the subcloud bootstrapping and
|
|
deployment by monitoring the following log files on the active controller
|
|
in the Central Cloud.
|
|
|
|
/var/log/dcmanager/ansible/<subcloud_name>\_playbook.output.log
|
|
|
|
For example:
|
|
|
|
.. code-block:: none
|
|
|
|
controller-0:/home/sysadmin# tail /var/log/dcmanager/ansible/subcloud1_playbook.output.log
|
|
k8s.gcr.io: {password: secret, url: null}
|
|
quay.io: {password: secret, url: null}
|
|
)
|
|
|
|
TASK [bootstrap/bringup-essential-services : Mark the bootstrap as completed] ***
|
|
changed: [subcloud1]
|
|
|
|
PLAY RECAP *********************************************************************
|
|
subcloud1 : ok=230 changed=137 unreachable=0 failed=0
|
|
|
|
|
|
.. rubric:: |postreq|
|
|
|
|
.. _installing-a-subcloud-without-redfish-platform-management-service-ul-ixy-lpv-kmb:
|
|
|
|
- Provision the newly installed and bootstrapped subcloud. For detailed
|
|
|prod| deployment procedures for the desired deployment configuration of
|
|
the subcloud, see the post-bootstrap steps of the |_link-inst-book|.
|
|
|
|
- Check and update docker registry credentials on the subcloud:
|
|
|
|
.. code-block:: none
|
|
|
|
REGISTRY="docker-registry"
|
|
SECRET_UUID='system service-parameter-list | fgrep
|
|
$REGISTRY | fgrep auth-secret | awk '{print $10}''
|
|
SECRET_REF='openstack secret list | fgrep $
|
|
{SECRET_UUID} | awk '{print $2}''
|
|
openstack secret get ${SECRET_REF} --payload -f value
|
|
|
|
The secret payload should be :command:`username: sysinv password:<password>`.
|
|
If the secret payload is :command:`username: admin password:<password>`,
|
|
see, :ref:`Updating Docker Registry Credentials on a
|
|
Subcloud <updating-docker-registry-credentials-on-a-subcloud>` for more
|
|
information.
|
|
|
|
- For more information on bootstrapping and deploying, see the procedures
|
|
listed under :ref:`install-a-subcloud`.
|