Update Esky docs for clarity, and remove 2nd person

This commit is contained in:
Joseph Hall 2014-08-30 19:50:32 -06:00
parent ea2d1a5575
commit 4e29954710

View File

@ -12,74 +12,88 @@ and all their dependencies - including shared objects / DLLs.
Getting Started
===============
To build frozen applications, you'll need a suitable build environment for each
of your platforms. You should probably set up a virtualenv in order to limit
the scope of Q/A.
To build frozen applications, suitable build environment will be needed for
each platform. You should probably set up a virtualenv in order to limit the
scope of Q/A.
This process does work on Windows. Follow the directions at
This process does work on Windows. Directions are available at
`<https://github.com/saltstack/salt-windows-install>`_ for details on
installing Salt in Windows. Only the 32-bit Python and dependencies have been
tested, but they have been tested on 64-bit Windows.
You will need to install ``esky`` and ``bbfreeze`` from PyPI in order to enable
the ``bdist_esky`` command in ``setup.py``.
Install ``bbfreeze``, and then ``esky`` from PyPI in order to enable the
``bdist_esky`` command in ``setup.py``. Salt itself must also be installed, in
addition to its dependencies.
Building and Freezing
=====================
Once you have your tools installed and the environment configured, you can then
``python setup.py bdist`` to get the eggs prepared. After that is done, run
``python setup.py bdist_esky`` to have Esky traverse the module tree and pack
all the scripts up into a redistributable. There will be an appropriately
versioned ``salt-VERSION.zip`` in ``dist/`` if everything went smoothly.
Once you have your tools installed and the environment configured, use
``setup.py`` to prepare the distribution files.
.. code-block:: bash
python setup.py sdist
python setup.py bdist
Once the distribution files are in place, Esky can be used traverse the module
tree and pack all the scripts up into a redistributable.
.. code-block:: bash
python setup.py bdist_esky
There will be an appropriately versioned ``salt-VERSION.zip`` in ``dist/`` if
everything went smoothly.
Windows
-------
You will need to add ``C:\Python27\lib\site-packages\zmq`` to your PATH
``C:\Python27\lib\site-packages\zmq`` will need to be added to the PATH
variable. This helps bbfreeze find the zmq DLL so it can pack it up.
Using the Frozen Build
======================
Unpack the zip file in your desired install location. Scripts like
Unpack the zip file in the desired install location. Scripts like
``salt-minion`` and ``salt-call`` will be in the root of the zip file. The
associated libraries and bootstrapping will be in the directories at the same
level. (Check the `Esky <https://github.com/cloudmatrix/esky>`_ documentation
for more information)
To support updating your minions in the wild, put your builds on a web server
that your minions can reach. :py:func:`salt.modules.saltutil.update` will
To support updating your minions in the wild, put the builds on a web server
that the minions can reach. :py:func:`salt.modules.saltutil.update` will
trigger an update and (optionally) a restart of the minion service under the
new version.
Gotchas
=======
Troubleshooting
===============
My Windows minion isn't responding
----------------------------------
The process dispatch on Windows is slower than it is on \*nix. You may need to
add '-t 15' to your salt calls to give them plenty of time to return.
A Windows minion isn't responding
---------------------------------
The process dispatch on Windows is slower than it is on \*nix. It may be
necessary to add '-t 15' to salt commands to give minions plenty of time to
return.
Windows and the Visual Studio Redist
------------------------------------
You will need to install the Visual C++ 2008 32-bit redistributable on all
The Visual C++ 2008 32-bit redistributable will need to be installed on all
Windows minions. Esky has an option to pack the library into the zipfile,
but OpenSSL does not seem to acknowledge the new location. If you get a
``no OPENSSL_Applink`` error on the console when trying to start your
frozen minion, you have forgotten to install the redistributable.
but OpenSSL does not seem to acknowledge the new location. If a
``no OPENSSL_Applink`` error appears on the console when trying to start a
frozen minion, the redistributable is not installed.
Mixed Linux environments and Yum
--------------------------------
The Yum Python module doesn't appear to be available on any of the standard
Python package mirrors. If you need to support RHEL/CentOS systems, you
should build on that platform to support all your Linux nodes. Also remember
to build your virtualenv with ``--system-site-packages`` so that the
``yum`` module is included.
Python package mirrors. If RHEL/CentOS systems need to be supported, the frozen
build should created on that platform to support all the Linux nodes. Remember
to build the virtualenv with ``--system-site-packages`` so that the ``yum``
module is included.
Automatic (Python) module discovery
-----------------------------------
Automatic (Python) module discovery does not work with the late-loaded scheme that
Salt uses for (Salt) modules. You will need to explicitly add any
misbehaving modules to the ``freezer_includes`` in Salt's ``setup.py``.
Always check the zipped application to make sure that the necessary modules
were included.
Automatic (Python) module discovery does not work with the late-loaded scheme
that Salt uses for (Salt) modules. Any misbehaving modules will need to be
explicitly added to the ``freezer_includes`` in Salt's ``setup.py``. Always
check the zipped application to make sure that the necessary modules were
included.