deploymentutils


Namedeploymentutils JSON
Version 0.8.0 PyPI version JSON
download
home_page
SummarySmall python package to facilitate deployment of some personal projects.
upload_time2023-05-18 16:41:04
maintainer
docs_urlNone
authorCarsten Knoll
requires_python
licenseGNU General Public License v3
keywords ssh remote execution
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Build Status](https://cloud.drone.io/api/badges/cknoll/deploymentutils/status.svg)](https://cloud.drone.io/cknoll/deploymentutils)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![PyPI version](https://badge.fury.io/py/deploymentutils.svg)](https://badge.fury.io/py/deploymentutils)


# deploymentutils

This repo contains a small python package to facilitate deployment of some personal projects.


## Overview

This package provides a thin layer on top of [fabric](https://www.fabfile.org/) to execute commands with a state like
- current working directory
- activated virtual environment (not yet implemented)

It also tries to simplify to deploy/maintain multiple instances of the same software but with varying fixtures, including one or more local instances for testing.

## Motivation

The package is mainly intended to facilitate deployment tasks (e.g. for django apps) by running a simple python script.
Compared to configuration management tools like *Ansible* this approach is far less powerful and scalable.
However, it might be easier to understand for developers and thus lowering the hurdle to deploy applications by them selves.

## Assumed Directory Layout

The scripts marked with [*] make use of this module.

    <general project dir>
    │
    │
    ├── project-src-repo/                       ← official project repo
    │   ├── .git/
    │   ├── deployment/
    │   │   ├── some_files/
    │   │   ├── deploy.py      [*]              ← original deployment script  (delivered by the project)
    │   │   └── ...
    │   ├── django_project/
    │   │   ├── settings.py
    │   │   └── ...
    │   ├── django_app/
    │   │   ├── views.py
    │   │   └── ...
    │   ├── manage.py
    │   └── ...
    │
    ├── instance-specific/
    │   ├── README.md
    │   ├── demo
    │   │   ├── .git/
    │   │   ├── deploy.py
    │   │   ├── project_data
    │   │   └── ...
    │   ├── production
    │   │   ├── .git/
    │   │   ├── deploy.py      [*]
    │   │   ├── project_data
    │   │   └── ...
    │   ├── testing
    │   │   ├── .git/
    │   │   ├── deploy.py      [*]
    │   │   ├── project_data
    │   │   └── ...
    │   └── ...
    │
    ├── local_testing/               ← contents of this directory are autogenerated
    │   ├── deploy.py          [*]
    │   ├── <appname>_deployment
    │   └── ...
    .



## Status

Still under development and not comprehensively tested.


## Features


- Create `config-example.ini` from an existing `config-production.ini` (which contains additional example values).
    - `python -c "import deploymentutils as du; print(du.remove_secrets_from_config('config-production.ini'))"`
    - See `test/test_config.ini` and unittests for details.




## Known Issues

- If a command started by `c.run("some_command")` is reading input, then the calling python process waits 'forever', i.e. until interrupted manually.
    - possible solution fragment: https://stackoverflow.com/questions/35751295/python-subprocess-check-to-see-if-the-executed-script-is-asking-for-user-input



            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "deploymentutils",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "ssh,remote execution",
    "author": "Carsten Knoll",
    "author_email": "carsten.knoll@posteo.de",
    "download_url": "https://files.pythonhosted.org/packages/4d/4c/2793940624cd70929e53ea141071268d3ac1b74b928cb541b8ad15340fff/deploymentutils-0.8.0.tar.gz",
    "platform": null,
    "description": "[![Build Status](https://cloud.drone.io/api/badges/cknoll/deploymentutils/status.svg)](https://cloud.drone.io/cknoll/deploymentutils)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![PyPI version](https://badge.fury.io/py/deploymentutils.svg)](https://badge.fury.io/py/deploymentutils)\n\n\n# deploymentutils\n\nThis repo contains a small python package to facilitate deployment of some personal projects.\n\n\n## Overview\n\nThis package provides a thin layer on top of [fabric](https://www.fabfile.org/) to execute commands with a state like\n- current working directory\n- activated virtual environment (not yet implemented)\n\nIt also tries to simplify to deploy/maintain multiple instances of the same software but with varying fixtures, including one or more local instances for testing.\n\n## Motivation\n\nThe package is mainly intended to facilitate deployment tasks (e.g. for django apps) by running a simple python script.\nCompared to configuration management tools like *Ansible* this approach is far less powerful and scalable.\nHowever, it might be easier to understand for developers and thus lowering the hurdle to deploy applications by them selves.\n\n## Assumed Directory Layout\n\nThe scripts marked with [*] make use of this module.\n\n    <general project dir>\n    \u2502\n    \u2502\n    \u251c\u2500\u2500 project-src-repo/                       \u2190 official project repo\n    \u2502   \u251c\u2500\u2500 .git/\n    \u2502   \u251c\u2500\u2500 deployment/\n    \u2502   \u2502   \u251c\u2500\u2500 some_files/\n    \u2502   \u2502   \u251c\u2500\u2500 deploy.py      [*]              \u2190 original deployment script  (delivered by the project)\n    \u2502   \u2502   \u2514\u2500\u2500 ...\n    \u2502   \u251c\u2500\u2500 django_project/\n    \u2502   \u2502   \u251c\u2500\u2500 settings.py\n    \u2502   \u2502   \u2514\u2500\u2500 ...\n    \u2502   \u251c\u2500\u2500 django_app/\n    \u2502   \u2502   \u251c\u2500\u2500 views.py\n    \u2502   \u2502   \u2514\u2500\u2500 ...\n    \u2502   \u251c\u2500\u2500 manage.py\n    \u2502   \u2514\u2500\u2500 ...\n    \u2502\n    \u251c\u2500\u2500 instance-specific/\n    \u2502   \u251c\u2500\u2500 README.md\n    \u2502   \u251c\u2500\u2500 demo\n    \u2502   \u2502   \u251c\u2500\u2500 .git/\n    \u2502   \u2502   \u251c\u2500\u2500 deploy.py\n    \u2502   \u2502   \u251c\u2500\u2500 project_data\n    \u2502   \u2502   \u2514\u2500\u2500 ...\n    \u2502   \u251c\u2500\u2500 production\n    \u2502   \u2502   \u251c\u2500\u2500 .git/\n    \u2502   \u2502   \u251c\u2500\u2500 deploy.py      [*]\n    \u2502   \u2502   \u251c\u2500\u2500 project_data\n    \u2502   \u2502   \u2514\u2500\u2500 ...\n    \u2502   \u251c\u2500\u2500 testing\n    \u2502   \u2502   \u251c\u2500\u2500 .git/\n    \u2502   \u2502   \u251c\u2500\u2500 deploy.py      [*]\n    \u2502   \u2502   \u251c\u2500\u2500 project_data\n    \u2502   \u2502   \u2514\u2500\u2500 ...\n    \u2502   \u2514\u2500\u2500 ...\n    \u2502\n    \u251c\u2500\u2500 local_testing/               \u2190 contents of this directory are autogenerated\n    \u2502   \u251c\u2500\u2500 deploy.py          [*]\n    \u2502   \u251c\u2500\u2500 <appname>_deployment\n    \u2502   \u2514\u2500\u2500 ...\n    .\n\n\n\n## Status\n\nStill under development and not comprehensively tested.\n\n\n## Features\n\n\n- Create `config-example.ini` from an existing `config-production.ini` (which contains additional example values).\n    - `python -c \"import deploymentutils as du; print(du.remove_secrets_from_config('config-production.ini'))\"`\n    - See `test/test_config.ini` and unittests for details.\n\n\n\n\n## Known Issues\n\n- If a command started by `c.run(\"some_command\")` is reading input, then the calling python process waits 'forever', i.e. until interrupted manually.\n    - possible solution fragment: https://stackoverflow.com/questions/35751295/python-subprocess-check-to-see-if-the-executed-script-is-asking-for-user-input\n\n\n",
    "bugtrack_url": null,
    "license": "GNU General Public License v3",
    "summary": "Small python package to facilitate deployment of some personal projects.",
    "version": "0.8.0",
    "project_urls": null,
    "split_keywords": [
        "ssh",
        "remote execution"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "18423c476e8b6c399113788f86889f35c97ebf5dfc6f445d54e32a53807ce286",
                "md5": "16ae40b7bfcadc66b9be3c8a7d42fb80",
                "sha256": "ca78578770fad13a06473e4ead0957b32306aeb0303ae93bea2e4e5eedf364ce"
            },
            "downloads": -1,
            "filename": "deploymentutils-0.8.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "16ae40b7bfcadc66b9be3c8a7d42fb80",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 26646,
            "upload_time": "2023-05-18T16:41:01",
            "upload_time_iso_8601": "2023-05-18T16:41:01.734948Z",
            "url": "https://files.pythonhosted.org/packages/18/42/3c476e8b6c399113788f86889f35c97ebf5dfc6f445d54e32a53807ce286/deploymentutils-0.8.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d4c2793940624cd70929e53ea141071268d3ac1b74b928cb541b8ad15340fff",
                "md5": "8f94af0d8dbd9668116ebfdbff9cedee",
                "sha256": "95eb48e4208c084e393d77d60d35074873963911c842c08d37bc80feb7563bcf"
            },
            "downloads": -1,
            "filename": "deploymentutils-0.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "8f94af0d8dbd9668116ebfdbff9cedee",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 34873,
            "upload_time": "2023-05-18T16:41:04",
            "upload_time_iso_8601": "2023-05-18T16:41:04.305869Z",
            "url": "https://files.pythonhosted.org/packages/4d/4c/2793940624cd70929e53ea141071268d3ac1b74b928cb541b8ad15340fff/deploymentutils-0.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-18 16:41:04",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "deploymentutils"
}
        
Elapsed time: 0.09208s