fdcb0922a5
Adds an extra field ``biosdevname`` to network interface inventory collected by ``default`` inspection collector (which collects the whole inventory returned by hardware manager) of ironic-python-agent. This feature requires biosdevname utility to collect the bios given NIC names. The tooling module for tinyIPA is created for the same purpose. For CoreOS IPA pxe images, biosdevname tooling module is limited, because Docker repository is created and embedded into CoreOS pxe images. The Docker repository uses debian to download the packages. Debian does not have biosdevname package. Adds an export variable TINYIPA_REQUIRE_BIOSDEVNAME. Set this variable to ``true`` in your shell before building tinyIPA. Closes-Bug: #1635351 Change-Id: Ia96af59e2a74868cac59e5a88cfbb3be60d85687
118 lines
2.6 KiB
ReStructuredText
118 lines
2.6 KiB
ReStructuredText
=============================
|
|
Tiny Core Ironic Python Agent
|
|
=============================
|
|
|
|
Build script requirements
|
|
-------------------------
|
|
For the main build script:
|
|
|
|
* wget
|
|
* pip
|
|
* unzip
|
|
* sudo
|
|
* awk
|
|
* mksquashfs
|
|
|
|
For building an ISO you'll also need:
|
|
|
|
* genisoimage
|
|
|
|
Instructions:
|
|
-------------
|
|
To create a new ramdisk, run::
|
|
|
|
make
|
|
|
|
or::
|
|
|
|
./build-tinyipa.sh && ./finalise-tinyipa.sh
|
|
|
|
This will create two new files once completed:
|
|
|
|
* tinyipa.vmlinuz
|
|
* tinyipa.gz
|
|
|
|
These are your two files to upload to glance for use with Ironic.
|
|
|
|
Building an ISO from a previous make run:
|
|
-----------------------------------------
|
|
Once you've built tinyipa it is possible to pack it into an ISO if required. To
|
|
create a bootable ISO, run::
|
|
|
|
make iso
|
|
|
|
or::
|
|
|
|
./build-iso.sh
|
|
|
|
This will create one new file once completed:
|
|
|
|
* tinyipa.iso
|
|
|
|
To build a fresh ramdisk and build an iso from it:
|
|
--------------------------------------------------
|
|
Run::
|
|
|
|
make all
|
|
|
|
To clean up the whole build environment run:
|
|
--------------------------------------------
|
|
Run::
|
|
|
|
make clean
|
|
|
|
For cleaning up just the iso or just the ramdisk build::
|
|
|
|
make clean_iso
|
|
|
|
or::
|
|
|
|
make clean_tinyipa
|
|
|
|
Advanced options
|
|
----------------
|
|
|
|
(De)Optimizing the image
|
|
~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
If you want the build script to preinstall everything into the ramdisk,
|
|
instead of loading some things at runtime (this results in a slightly bigger
|
|
ramdisk), before running make or build-tinyipa.sh run::
|
|
|
|
export BUILD_AND_INSTALL_TINYIPA=true
|
|
|
|
By default, building TinyIPA will compile most of the Python code to
|
|
optimized ``*.pyo`` files, completely remove most of ``*.py`` and ``*.pyc``
|
|
files, and run ironic-python-agent with ``PYTHONOPTIMIZE=1``
|
|
to save space on the ramdisk.
|
|
If instead you want a normal Python experience inside the image,
|
|
for example for debugging/hacking on IPA in a running ramdisk,
|
|
before running make or build-tinyipa.sh run::
|
|
|
|
export PYOPTIMIZE_TINYIPA=false
|
|
|
|
|
|
Enabling SSH access to the ramdisk
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
If you want to enable SSH access to the image, set ``ENABLE_SSH`` variable in
|
|
your shell before building the tinyipa::
|
|
|
|
export ENABLE_SSH=true
|
|
|
|
By default it will use public RSA or DSA keys of the user running the build.
|
|
To provide other public SSH key, export path to it in your shell before
|
|
building tinyipa as follows::
|
|
|
|
export SSH_PUBLIC_KEY=<full-path-to-public-key>
|
|
|
|
|
|
Enabling biosdevname in the ramdisk
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
If you want to collect BIOS given names of NICs in the inventory, set
|
|
``TINYIPA_REQUIRE_BIOSDEVNAME`` variable in your shell before building the
|
|
tinyipa::
|
|
|
|
export TINYIPA_REQUIRE_BIOSDEVNAME=true
|