<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"
}