Skip to content

Latest commit

 

History

History
63 lines (48 loc) · 2.92 KB

README.md

File metadata and controls

63 lines (48 loc) · 2.92 KB

Cloudify CLI Packager

This repository contains configuration files for PyInstaller, fpm, Vagrant and Inno Setup for creating stand-alone, self-contained, Cloudify command line (cfy) for multiple platforms (Windows, Linux, OS X).

At this point the package is pre-bundled with cloudify-openstack-provider, to allow bootstraping Openstack based environments.

How to use this

This project uses Vagrant as the executor to spin up virtual machine & run provision scripts remotely. Current configured provider is AWS, so this means you'll need AWS plugin installed as well with your vagrant.

Provision scripts are located under vagrant/<OS> folder, so its possible to run these scripts without vagrant by executing them directly.

Quick start:

  1. Set environment variables AWS_ACCESS_KEY and AWS_ACCESS_KEY_ID
  2. Clone this repository
  3. vagrant up <windows/linux32/linux64> --provider aws

Basic Flow

  1. Install Python and needed modules (PyInstaller, Virtualenv, Cloudify-CLI and dependencies)
  2. Install packaging tools and its dependencies (Ruby & fpm in case of linux, Inno Setup in Windows)
  3. Run PyInstaller to create binary
  4. Create package from PyInstaller's output
  5. (Optional) Run sanity tests on the package

Platform Specific Notes

Windows:

  • Using x86 Python
  • Microsoft Visual Studio C++ 2008 Express is needed to compile part of the modules
  • PyWin32 x86 is needed for PyInstaller as well
  • Virtualenv is not installed in Windows since it doesn't come with built-in Python
  • Ruby & fpm is replaced with Inno Setup to create executable installer
  • Everything is being done with 32bit Python to try keep computability for maximum

Linux:

  • 32bit and 64bit are being built separately
  • Ruby & fpm are installed for pain-free package creation
  • Output is .deb package. But will be extended for .rpm as well
  • Possbile issues on older distributions as explained in PyInstaller FAQ (Look under misc).

OS X:

  • OS X is 64bit since Core 2 Duo days
  • Currently NOT implemented

Vagrant

To run this you need Vagrant v1.6.3 with AWS plugin v0.5.0.

Windows AMI is private custom built image that will hopefully made public. The image comes with most of the software specified in Platform Specific Notes. Additionally it comes with preinstalled Cygwin with SSH service, Curl and Git.

Cygwin is a must for now, until Vagrant plugins will become mature enough to support Windows provisioning via WinRM support that was introduced in Vagrant 1.6.