https://github.com/oddlama/fora
A simple infrastructure and configuration management tool
https://github.com/oddlama/fora
configuration-management fora infrastructure python
Last synced: 8 months ago
JSON representation
A simple infrastructure and configuration management tool
- Host: GitHub
- URL: https://github.com/oddlama/fora
- Owner: oddlama
- License: mit
- Archived: true
- Created: 2021-01-13T16:42:41.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2022-08-07T23:18:37.000Z (almost 4 years ago)
- Last Synced: 2024-09-22T20:01:47.895Z (over 1 year ago)
- Topics: configuration-management, fora, infrastructure, python
- Language: Python
- Homepage: https://oddlama.gitbook.io/fora/
- Size: 869 KB
- Stars: 14
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 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).
