94e2f9a4e3
For an offline install, env-setup.sh needs to be able to clone from locations other than GitHub. Additionally, since the ansible repo will have to have its .gitmodules file patched to point submodules to some other location as well, its convenient to allow for alternate branches. As a side-effect, this moves the documentation of what branch we're using to the top of the script for easy reference and removes the duplicated branch name. Change-Id: I7432531915c03638aaf52f836cda607d424351ba
67 lines
2.8 KiB
ReStructuredText
67 lines
2.8 KiB
ReStructuredText
=======================
|
|
Bifrost Offline Install
|
|
=======================
|
|
|
|
The ansible scripts that compose Bifrost download and install
|
|
software via a number of means, which generally assumes connectivity
|
|
to the internet.
|
|
|
|
That connectivity is not required.
|
|
|
|
If you want or need to install Bifrost without having a dependency on
|
|
a connection to the internet, there are a number of steps that you will
|
|
need to follow (many of which may have already been done in your
|
|
environment anyway).
|
|
|
|
Those steps can be broken down into two general categories; the first being
|
|
steps that need to be done in your inventory file, and the second being
|
|
steps that need to be done on your target host outside of Ansible.
|
|
|
|
Ansible Specific Steps
|
|
----------------------
|
|
|
|
The script ``scripts/env-setup.sh`` will do a ``git clone`` to create
|
|
``/opt/stack/ansible``, if it doesn't already exist. You can use the
|
|
environment variables ``ANSIBLE_GIT_URL`` and ``ANSIBLE_GIT_BRANCH``
|
|
to override the source URL and the branch name to pull from.
|
|
|
|
Ansible uses Git submodules, which means if you are cloning from
|
|
anything other than the canonical location (GitHub), you'll need
|
|
to commit a patched ``.gitmodules`` to that repo so that submodules
|
|
are also cloned from an alternate location - otherwise, the submodules
|
|
will still try to clone from GitHub.
|
|
|
|
Bifrost Specific Steps
|
|
----------------------
|
|
|
|
As a general rule, any URL referenced by Bifrost scripts is configured in a
|
|
``playbook/roles/<role>/defaults/main.yml`` file, which means that all of those
|
|
can be redirected to point to a local copy by creating a file named
|
|
``playbooks/host_vars/<hostname>.yml`` and redirecting the appropriate variables.
|
|
|
|
As an example, my current file looks like:
|
|
|
|
.. code-block:: yaml
|
|
|
|
deploy_kernel_upstream_url: file:///vagrant/coreos_production_pxe.vmlinuz
|
|
deploy_ramdisk_upstream_url: file:///vagrant/coreos_production_pxe_image-oem.cpio.gz
|
|
deploy_image_upstream_url: file:///vagrant/ubuntu-14.04-server-cloudimg-amd64.tar.gz
|
|
cirros_deploy_image_upstream_url: file:///vagrant/cirros-0.3.4-x86_64-disk.img
|
|
dib_git_url: file:///vagrant/git/diskimage-builder
|
|
ironicclient_git_url: file:///vagrant/git/python-ironicclient
|
|
shade_git_url: file:///vagrant/git/shade
|
|
ironic_git_url: file:///vagrant/git/ironic
|
|
|
|
If this list becomes out of date, it's simple enough to find the things that
|
|
need to be fixed by looking for any URLs in the
|
|
``playbook/roles/<role>/defaults/main.yml`` files, as noted above.
|
|
|
|
External Steps
|
|
--------------
|
|
|
|
Bifrost doesn't attempt to configure ``apt``, ``yum``, or ``pip``, so if you are
|
|
working in an offline mode, you'll need to make sure those work independently.
|
|
|
|
``pip`` in particular will be sensitive; Bifrost tends to use the most recent
|
|
version of python modules, so you'll want to make sure your cache isn't stale.
|