Rewording Limited Connectivity for clarity
Cleaned up some wording for clairty Change-Id: I2a7095a8121e74f1efc690321ea07bc5aec92a5c
This commit is contained in:
@@ -4,7 +4,7 @@ Installing with limited connectivity
|
|||||||
|
|
||||||
Many playbooks and roles in OpenStack-Ansible retrieve dependencies from the
|
Many playbooks and roles in OpenStack-Ansible retrieve dependencies from the
|
||||||
public Internet by default. The example configurations assume that the deployer
|
public Internet by default. The example configurations assume that the deployer
|
||||||
provides good quality Internet connectivity via a router on the OpenStack
|
provides a good quality Internet connection via a router on the OpenStack
|
||||||
management network.
|
management network.
|
||||||
|
|
||||||
Deployments may encounter limited external connectivity for a number of
|
Deployments may encounter limited external connectivity for a number of
|
||||||
@@ -16,9 +16,9 @@ reasons:
|
|||||||
- Architectural decisions by the deployer to isolate the OpenStack networks
|
- Architectural decisions by the deployer to isolate the OpenStack networks
|
||||||
- High security environments where no external connectivity is permitted
|
- High security environments where no external connectivity is permitted
|
||||||
|
|
||||||
We recommend a set of practices and configuration overrides deployers can use
|
When running OpenStack-Ansible in network environments that block internet
|
||||||
when running OpenStack-Ansible in network environments that block Internet
|
connectivity, we recommend the following set of practices and configuration
|
||||||
connectivity.
|
overrides for deployers to use.
|
||||||
|
|
||||||
The options below are not mutually exclusive and may be combined if desired.
|
The options below are not mutually exclusive and may be combined if desired.
|
||||||
|
|
||||||
@@ -44,20 +44,20 @@ Python package repositories
|
|||||||
|
|
||||||
Many packages used to run OpenStack are installed using `pip`. We advise
|
Many packages used to run OpenStack are installed using `pip`. We advise
|
||||||
mirroring the PyPi package index used by `pip`. A deployer can choose to
|
mirroring the PyPi package index used by `pip`. A deployer can choose to
|
||||||
actively mirror the entire upstream PyPi repository but this may require
|
actively mirror the entire upstream PyPi repository, but this may require
|
||||||
a significant amount of storage. Alternatively a caching pip proxy
|
a significant amount of storage. Alternatively, a caching pip proxy can
|
||||||
can be used to retain local copies of only those packages which are required.
|
be used to retain local copies of only those packages which are required.
|
||||||
|
|
||||||
In order to configure the build to use an alternative index, create the file
|
In order to configure the deployment to use an alternative index, create
|
||||||
`/etc/pip.conf` with the following content and ensure that it is placed on
|
the file `/etc/pip.conf` with the following content and ensure that it
|
||||||
all hosts in the environment.
|
resides on all hosts in the environment.
|
||||||
|
|
||||||
.. code-block:: shell-session
|
.. code-block:: shell-session
|
||||||
|
|
||||||
[global]
|
[global]
|
||||||
index-url = http://pip.example.org/simple
|
index-url = http://pip.example.org/simple
|
||||||
|
|
||||||
In addition it is necessary to configure easy_install to use an alternative
|
In addition, it is necessary to configure easy_install to use an alternative
|
||||||
index. easy_install is used instead of pip to install anything listed under
|
index. easy_install is used instead of pip to install anything listed under
|
||||||
setup_requires in setup.py during wheel builds. See https://pip.pypa.io/en/latest/reference/pip_install/#controlling-setup-requires
|
setup_requires in setup.py during wheel builds. See https://pip.pypa.io/en/latest/reference/pip_install/#controlling-setup-requires
|
||||||
|
|
||||||
@@ -69,8 +69,8 @@ To configure easy_install to use an alternative index, create the file
|
|||||||
[easy_install]
|
[easy_install]
|
||||||
index_url = https://pip.example.org/simple
|
index_url = https://pip.example.org/simple
|
||||||
|
|
||||||
Then, in `/etc/openstack_deploy/user_variables.yml`, inform the deployment
|
Then, in `/etc/openstack_deploy/user_variables.yml`, configure the deployment
|
||||||
that it needs to copy these files from the host into the container cache image.
|
to copy these files from the host into the container cache image.
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
@@ -138,8 +138,8 @@ Some networks have no routed access to the Internet, or require certain
|
|||||||
traffic to use application specific gateways such as HTTP or SOCKS proxy
|
traffic to use application specific gateways such as HTTP or SOCKS proxy
|
||||||
servers.
|
servers.
|
||||||
|
|
||||||
Configuration can be applied to target and deployment hosts to reach public
|
Target and deployment hosts can be configured to reach public internet
|
||||||
internet resources via HTTP or SOCKS proxy server(s). OpenStack-Ansible may be
|
resources via HTTP or SOCKS proxy server(s). OpenStack-Ansible may be
|
||||||
used to configure target hosts to use the proxy server(s). OpenStack-Ansible
|
used to configure target hosts to use the proxy server(s). OpenStack-Ansible
|
||||||
does not provide automation for creating the proxy server(s).
|
does not provide automation for creating the proxy server(s).
|
||||||
|
|
||||||
@@ -150,14 +150,12 @@ particular for the system package manager.
|
|||||||
``apt-get`` proxy configuration
|
``apt-get`` proxy configuration
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
See `Setting up apt-get to use a http-proxy`_
|
See `Setting up apt-get to use a http-proxy <https://help.ubuntu.com/community/AptGet/Howto#Setting_up_apt-get_to_use_a_http-proxy>`_
|
||||||
|
|
||||||
.. _Setting up apt-get to use a http-proxy: https://help.ubuntu.com/community/AptGet/Howto#Setting_up_apt-get_to_use_a_http-proxy
|
|
||||||
|
|
||||||
Other proxy configuration
|
Other proxy configuration
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Further to this basic configuration, there are other network clients on the
|
In addition to this basic configuration, there are other network clients on the
|
||||||
target hosts which may be configured to connect via a proxy. For example:
|
target hosts which may be configured to connect via a proxy. For example:
|
||||||
|
|
||||||
- Most Python network modules
|
- Most Python network modules
|
||||||
@@ -175,20 +173,20 @@ settings. These environment variables can be configured in
|
|||||||
|
|
||||||
It is important to note that the proxy server should only be used to access
|
It is important to note that the proxy server should only be used to access
|
||||||
external resources, and communication between the internal components of the
|
external resources, and communication between the internal components of the
|
||||||
OpenStack deployment should be direct, without going through the proxy.
|
OpenStack deployment should be direct and not through the proxy. The ``no_proxy``
|
||||||
The ``no_proxy`` environment variable is used to specify hosts that should
|
environment variable is used to specify hosts that should be reached directly
|
||||||
be reached directly without going through the proxy. These often are the hosts
|
without going through the proxy. These often are the hosts in the management
|
||||||
in the management network.
|
network.
|
||||||
|
|
||||||
OpenStack-Ansible provides two distinct mechanisms for configuring proxy
|
OpenStack-Ansible provides two distinct mechanisms for configuring proxy
|
||||||
server settings:
|
server settings:
|
||||||
|
|
||||||
#. The default configuration file suggests setting a persistent proxy
|
1. The default configuration file suggests setting a persistent proxy
|
||||||
configuration on all target hosts and defines a persistent ``no_proxy``
|
configuration on all target hosts and defines a persistent ``no_proxy``
|
||||||
environment variable which lists all hosts/containers' management addresses as
|
environment variable which lists all hosts/containers' management addresses as
|
||||||
well as the load balancer internal/external addresses.
|
well as the load balancer internal/external addresses.
|
||||||
|
|
||||||
#. An alternative method applies proxy configuration in a transient manner
|
2. An alternative method applies proxy configuration in a transient manner
|
||||||
during the execution of Ansible playbooks and defines a minimum set of
|
during the execution of Ansible playbooks and defines a minimum set of
|
||||||
management network IP addresses for ``no_proxy`` that are required for the
|
management network IP addresses for ``no_proxy`` that are required for the
|
||||||
playbooks to succeed. These proxy settings do not persist after an Ansible
|
playbooks to succeed. These proxy settings do not persist after an Ansible
|
||||||
@@ -198,29 +196,30 @@ functional.
|
|||||||
The deployer must decide which of these approaches is more suitable for the
|
The deployer must decide which of these approaches is more suitable for the
|
||||||
target hosts, taking into account the following guidance:
|
target hosts, taking into account the following guidance:
|
||||||
|
|
||||||
#. Persistent proxy configuration is a standard practice and network clients on
|
1. Persistent proxy configuration is a standard practice and network clients on
|
||||||
the target hosts will be able to access external resources after deployment.
|
the target hosts will be able to access external resources after deployment.
|
||||||
|
|
||||||
#. The deployer must ensure that a persistent proxy configuration has complete
|
2. The deployer must ensure that a persistent proxy configuration has complete
|
||||||
coverage of all OpenStack management network host/containers' IP addresses in
|
coverage of all OpenStack management network host/containers' IP addresses in
|
||||||
the ``no_proxy`` environment variable. It is necessary to use a list of IP
|
the ``no_proxy`` environment variable. It is necessary to use a list of IP
|
||||||
addresses, CIDR notation is not valid for ``no_proxy``.
|
addresses, CIDR notation is not valid for ``no_proxy``.
|
||||||
|
|
||||||
#. Transient proxy configuration guarantees that proxy environment variables
|
3. Transient proxy configuration guarantees that proxy environment variables
|
||||||
will not persist, ensuring direct communication between services on the
|
will not persist, ensuring direct communication between services on the
|
||||||
OpenStack management network after deployment. Target host network clients
|
OpenStack management network after deployment. Target host network clients
|
||||||
such as ``wget`` will not be able to access external resources after
|
such as ``wget`` will not be able to access external resources after
|
||||||
deployment.
|
deployment.
|
||||||
|
|
||||||
#. The maximum length of ``no_proxy`` should not exceed 1024 characters due to
|
4. The maximum length of ``no_proxy`` should not exceed 1024 characters due to
|
||||||
a fixed size buffer in the ``pam_env`` PAM module. Longer environment variables
|
a fixed size buffer in the ``pam_env`` PAM module. Longer environment variables
|
||||||
will be truncated during deployment operations and this will lead to
|
will be truncated during deployment operations and this will lead to
|
||||||
unpredictable errors during or after deployment.
|
unpredictable errors during or after deployment.
|
||||||
|
|
||||||
Once the number of hosts/containers in a deployment reaches a certain size
|
Once the number of hosts/containers in a deployment reaches a certain size,
|
||||||
the length of ``no_proxy`` will exceed 1024 characters. It is then mandatory to
|
the length of ``no_proxy`` will exceed 1024 characters at which point it is
|
||||||
use the transient proxy settings which only requires a subset of the management
|
mandatory to use the transient proxy settings which only requires a subset of
|
||||||
network IP addresses to be present in ``no_proxy`` at deployment time.
|
the management network IP addresses to be present in ``no_proxy`` at deployment
|
||||||
|
time.
|
||||||
|
|
||||||
Refer to `global_environment_variables:` and
|
Refer to `global_environment_variables:` and
|
||||||
`deployment_environment_variables:` in the example `user_variables.yml` for
|
`deployment_environment_variables:` in the example `user_variables.yml` for
|
||||||
|
|||||||
Reference in New Issue
Block a user