fora


Namefora JSON
Version 2.1.6 PyPI version JSON
download
home_pagehttps://github.com/oddlama/fora
SummaryA simple infrastructure and configuration management tool
upload_time2022-05-07 18:14:31
maintainer
docs_urlNone
authoroddlama
requires_python>=3.9
licenseMIT
keywords ansible configuration deploy deployment infra infrastructure management puppet saltstack config fora
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
   <a href="https://oddlama.gitbook.io/fora"><img width="auto" height="120" src="./docs/fora.png"></a>
</p>

<p align="center">
   <a href="https://pypi.python.org/pypi/fora"><img src="https://img.shields.io/pypi/v/fora?color=green" title="PyPI Version"></a>
   <a href="https://pepy.tech/project/fora"><img src="https://static.pepy.tech/personalized-badge/fora?period=total&units=abbreviation&left_color=grey&right_color=green&left_text=downloads" title="PyPI Downloads"></a>
   <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" title="MIT License"></a>
   <a href="https://oddlama.gitbook.io/fora"><img src="https://img.shields.io/badge/documentation-blue.svg" title="Documentation"></a>
</p>

## What is Fora?

Fora is an infrastructure and configuration management tool inspired by [Ansible](https://www.ansible.com) and [pyinfra](https://pyinfra.com).
Yet, it implements a drastically different approach to inventory management (and some other aspects), when compared to these well-known tools.
See [how it differs](https://oddlama.gitbook.io/fora/outlining-the-differences#how-is-fora-different-from-existing-tools) for more details.

## Installation & Quickstart

You can install Fora with pip:

```bash
pip install fora
```

Afterwards, you can use it to write scripts which will be used to run operations or commands on a remote host.

```python
# deploy.py
from fora.operations import files, system

files.directory(
    name="Create a temporary directory",
    path="/tmp/hello")

system.package(
    name="Install neovim",
    package="neovim")
```

These scripts are executed against an inventory, or a specific remote host (usually via SSH).

```bash
fora root@example.com deploy.py
```

To start with your own (more complex) deploy, you can have Fora create a scaffolding in an empty directory. There are [different scaffoldings](https://oddlama.gitbook.io/fora/usage/introduction#deploy-structure) available for different use-cases.

```bash
fora --init minimal
```

Fora can do a lot more than this, which is explained in the [Introduction](https://oddlama.gitbook.io/fora/usage/introduction). If you are interested in how Fora is different from existing tools, have a look at [Outlining the differences](https://oddlama.gitbook.io/fora/outlining-the-differences).



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/oddlama/fora",
    "name": "fora",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "ansible,configuration,deploy,deployment,infra,infrastructure,management,puppet,saltstack,config,fora",
    "author": "oddlama",
    "author_email": "oddlama@oddlama.org",
    "download_url": "https://files.pythonhosted.org/packages/6d/5a/f7a38adc44e867ee9f7a82af3a55b5e12c5222f993bfa18e97d0bb47056c/fora-2.1.6.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n   <a href=\"https://oddlama.gitbook.io/fora\"><img width=\"auto\" height=\"120\" src=\"./docs/fora.png\"></a>\n</p>\n\n<p align=\"center\">\n   <a href=\"https://pypi.python.org/pypi/fora\"><img src=\"https://img.shields.io/pypi/v/fora?color=green\" title=\"PyPI Version\"></a>\n   <a href=\"https://pepy.tech/project/fora\"><img src=\"https://static.pepy.tech/personalized-badge/fora?period=total&units=abbreviation&left_color=grey&right_color=green&left_text=downloads\" title=\"PyPI Downloads\"></a>\n   <a href=\"./LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" title=\"MIT License\"></a>\n   <a href=\"https://oddlama.gitbook.io/fora\"><img src=\"https://img.shields.io/badge/documentation-blue.svg\" title=\"Documentation\"></a>\n</p>\n\n## What is Fora?\n\nFora is an infrastructure and configuration management tool inspired by [Ansible](https://www.ansible.com) and [pyinfra](https://pyinfra.com).\nYet, it implements a drastically different approach to inventory management (and some other aspects), when compared to these well-known tools.\nSee [how it differs](https://oddlama.gitbook.io/fora/outlining-the-differences#how-is-fora-different-from-existing-tools) for more details.\n\n## Installation & Quickstart\n\nYou can install Fora with pip:\n\n```bash\npip install fora\n```\n\nAfterwards, you can use it to write scripts which will be used to run operations or commands on a remote host.\n\n```python\n# deploy.py\nfrom fora.operations import files, system\n\nfiles.directory(\n    name=\"Create a temporary directory\",\n    path=\"/tmp/hello\")\n\nsystem.package(\n    name=\"Install neovim\",\n    package=\"neovim\")\n```\n\nThese scripts are executed against an inventory, or a specific remote host (usually via SSH).\n\n```bash\nfora root@example.com deploy.py\n```\n\nTo start with your own (more complex) deploy, you can have Fora create a scaffolding in an empty directory. There are [different scaffoldings](https://oddlama.gitbook.io/fora/usage/introduction#deploy-structure) available for different use-cases.\n\n```bash\nfora --init minimal\n```\n\nFora can do a lot more than this, which is explained in the [Introduction](https://oddlama.gitbook.io/fora/usage/introduction). If you are interested in how Fora is different from existing tools, have a look at [Outlining the differences](https://oddlama.gitbook.io/fora/outlining-the-differences).\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A simple infrastructure and configuration management tool",
    "version": "2.1.6",
    "split_keywords": [
        "ansible",
        "configuration",
        "deploy",
        "deployment",
        "infra",
        "infrastructure",
        "management",
        "puppet",
        "saltstack",
        "config",
        "fora"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "5e800767ea7fbd1b2cb2bb55729912df",
                "sha256": "a70223c8b1a44009048933ea6992c5f8a62ed251724e7e15fd723396ad113e77"
            },
            "downloads": -1,
            "filename": "fora-2.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5e800767ea7fbd1b2cb2bb55729912df",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 78678,
            "upload_time": "2022-05-07T18:14:27",
            "upload_time_iso_8601": "2022-05-07T18:14:27.631396Z",
            "url": "https://files.pythonhosted.org/packages/1a/ec/3cf6a9c95e41a260acc15c42cf1c12c94b52f0e0834e3db7be008d11beca/fora-2.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "329c5cefe5c61de44586f58eeeacea3a",
                "sha256": "cd2eabd6860a1b9a6a2673d66a390c92eb903c901a94e982f668ff3a9f348a6b"
            },
            "downloads": -1,
            "filename": "fora-2.1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "329c5cefe5c61de44586f58eeeacea3a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 105724,
            "upload_time": "2022-05-07T18:14:31",
            "upload_time_iso_8601": "2022-05-07T18:14:31.034425Z",
            "url": "https://files.pythonhosted.org/packages/6d/5a/f7a38adc44e867ee9f7a82af3a55b5e12c5222f993bfa18e97d0bb47056c/fora-2.1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-05-07 18:14:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "oddlama",
    "github_project": "fora",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "fora"
}
        
Elapsed time: 0.39813s