bifrost/doc/source/offline-install.rst
stephane cfe024a210 Clarify variable names & cleanup docs
The deploy_kernel* and deploy_ramdisk* variables were confusingly
named because they looked similar to deploy_image. I've renamed
them to ipa_kernel* and ipa_ramdisk* to reflect that they are the
CoreOS kernel and ramdisk from IPA and have updated the
documentation. I also cleaned up a minor issue where we defined
a path for the local copies of the kernel and ramdisk but didn't
use it in the install playbook.

I've also removed deploy_image_upstream_url from the offline
installation documentation as we no longer use it.

Partial-Bug: 1478726
Change-Id: Ia8c865521974e6bdd9e8e6a3ffa4c5f6b1f2f6ad
2015-08-03 10:26:27 -07:00

66 lines
2.7 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
ipa_kernel_upstream_url: file:///vagrant/coreos_production_pxe.vmlinuz
ipa_ramdisk_upstream_url: file:///vagrant/coreos_production_pxe_image-oem.cpio.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.