Server deployment and configuration management in Python
Project description
fuselage is a idempotent configuration bundle builder and runtime.
Use a simple python API to describe a server configuration and bundle that as a script that can be executed on any system.
You can find us in #yaybu on irc.oftc.net.
Using with fabric
You will need to install fabric explicitly. Fuselage does not depend on fabric.
You can write simple deployment scripts with Fabric by adding this to your fabfile:
from fuselage.fabric import blueprint from fuselage.resources import * @blueprint def minecraft(bundle): yield Directory( name='/var/local/minecraft', ) yield Execute( name='wget https://s3.amazonaws.com/Minecraft.Download/versions/1.6.2/minecraft_server.1.6.2.jar', cwd="/var/local/minecraft", creates="/var/local/minecraft/minecraft_server.1.6.2.jar", ) yield File( name='/var/local/minecraft/server.properties', contents=open('var_local_minecraft_server.properties').read(), ) yield File( name="/etc/systemd/system/minecraft.service", contents=open("etc_systemd_system_minecraft.service"), ) yield Execute( name="systemctl-daemon-reload-minecraft", command="systemctl daemon-reload", watches=['/etc/systemd/system/minecraft.service'], ) yield Execute( name="systemctl-restart-minecraft", command="systemctl restart minecraft.service", watches=[ "/var/local/minecraft/server.properties", "/etc/systemd/system/minecraft.service", ] )
And then run it against multiple servers:
fab -H server1,server2,server3 minecraft
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
fuselage-0.0.1.zip
(137.4 kB
view hashes)