Skip to main content

Balic - Command-line Linux Containers Toolset

Project description

Balič (read balitch) is a command-line toolset for working with LXC containers.

PyPI - License PyPI - Downloads
PyPI - Status PyPI - Format PyPI - Wheel
PyPI - Version PyPI - Python Versions PyPI - Implementation
coverage.io report

Installation

Install balic via pip:

pip install balic

Balic requires the following packages installed:

appdirs
cliff

Usage

Create a new container:

# create a new lxc container called test
balic create -n test

Build setup:

# create test build directory
mkdir test

# create build.sh that echos hello world inside the container
echo 'echo "hello world"' > test/build.sh

# copy test directory into the container and run build.sh
balic build -n test -d test

In case you need to prepare anything in the build directory:

# create prepare.sh which will be executed locally to prepare build dir
echo 'echo "prepare something inside build dir: `dirname "$0"`"' > test/prepare.sh

# run prepare.sh in given build dir
balic prepare -n test -d test

Multi-step builds can be done as well:

# create test_step2 build directory
mkdir test_step2

# create build.sh that echos "another step" inside the container
echo 'echo "another step"' > test_step2/build.sh

# copy test directory into container and run build.sh
balic build -n test -d test_step2

Pack the built container:

# pack test lxc container into rootfs.tar.gz
balic pack -n test -o rootfs.tar.gz

Destroy the container when no longer needed:

# destroy test lxc container
balic destroy -n test

Full workflow:

balic create -n test                 # creates lxc container names test
balic prepare -n test -d build_dir   # run prepare.sh inside the build_dir
balic build -n test -d build_dir     # builds test lxc container using content of build_dir
balic build -n test -d build_dir2    # builds test lxc container using content of build_dir2
balic build -n test -d build_dir3    # builds test lxc container using content of build_dir3
...
balic pack -n test -o rootfs.tar.gz  # packs test lxc container into rootfs.tar.gz
balic destroy -n test                # destroy test lxc container

Use environment input parameter for build and prepare commands:

# to run `build.sh environment` or `prepare.sh environment` use -e input parameter
balic prepare -n test -d test -e production
balic build -n test -d test -e production

Ie. whatever you specify as environment ends up as $1 in build.sh / prepare.sh.

Documentation

Source of the documentaton is available in the Balic repository https://gitlab.com/markuz/balic/tree/master/docs/source

Development

Pull requests welcomed.

Balic git repository is available at https://gitlab.com/markuz/balic

For more information, see https://gitlab.com/markuz/balic/-/blob/master/docs/source/development.rst

License

BSD 3-clause Clear License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

balic-0.0.5.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

balic-0.0.5-py2.py3-none-any.whl (10.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file balic-0.0.5.tar.gz.

File metadata

  • Download URL: balic-0.0.5.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for balic-0.0.5.tar.gz
Algorithm Hash digest
SHA256 6325c85d9fcbb931ca8d651e4b71fa09cb0a701631aa8ff37904500f744da852
MD5 b01603481ad0756ebad5145314fa4061
BLAKE2b-256 4a9e6fb7d46212b7c8c5271f630af3f4dac6b86dca5398c5e288cb0b8f0e8796

See more details on using hashes here.

File details

Details for the file balic-0.0.5-py2.py3-none-any.whl.

File metadata

  • Download URL: balic-0.0.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for balic-0.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2b6b3062ac7614dd374694d3b8b935192e325a59ab1761819be756b937d9d058
MD5 dbf0a55b36100791d42e35fa4aa93f98
BLAKE2b-256 b99563289acc121b9f33d57189315c1c3b51b4120e5836ce33ca64b4b58099d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page