跳转到主要内容

Python中的编排和配置管理

项目描述

Fuselage

fuselage是一个简单快速的幂等配置包构建和运行时。

使用fuselage

  • 使用您的代码通过我们的API构建配置包。输出是一个可执行的有效负载。
  • 将该有效负载传输到您的服务器。
  • 运行它。

您是否应该使用fuselage?可能不是。但如果您想知道为什么

  • 它是快速的。与一些配置管理工具不同,整个过程在目标系统上运行。它不需要每一步之间的往返。
  • 它是小巧的。它的唯一依赖是目标系统上的python3解释器以及一些常见的posix二进制文件。
  • 它是安全的。它不自带控制平面,您需要详细了解才能正确安全地保护。
  • 它很简单。它提供最基本的功能,并尽量不干涉不需要表达意见的地方。带上自己的模板引擎,或者根本不用。带上自己的控制平面。可以从daemonset运行,通过fabric运行,甚至只是使用scp手动运行。

与paramiko一起使用

import paramiko

from fuselage.bundle import ResourceBundle
from fuselage.resources import *
from fuselage.ssh import execute_via_ssh


bundle = ResourceBundle()

bundle.add(File(
    name="/tmp/hello.txt",
    contents="A test file!!",
))

transport = paramiko.Transport(("localhost", 22))
transport.connect(
    username="john",
    password="my super sekrit password",
)

# Compile the bundle, scp it to target server, execute it via sudo
execute_via_ssh(
    transport,
    bundle,
    "root",
    sudo_password="my super sekrit password"
)

与fabric一起使用

您需要显式安装fabric。Fuselage不依赖于fabric。

您可以通过将以下内容添加到您的fabfile来使用Fabric编写简单的部署脚本

from fuselage.fabric import blueprint
from fuselage.resources import *

@blueprint
def minecraft(bundle):
    yield Directory(
        name='/var/local/minecraft',
    )
    yield Execute(
        command='wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8/minecraft_server.1.8.jar',
        cwd="/var/local/minecraft",
        creates="/var/local/minecraft/minecraft_server.1.8.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(
        command="systemctl daemon-reload",
        watches=['/etc/systemd/system/minecraft.service'],
    )
    yield Execute(
        command="systemctl restart minecraft.service",
        watches=[
            "/var/local/minecraft/server.properties",
            "/etc/systemd/system/minecraft.service",
        ]
    )

然后运行它以针对多台服务器:

fab -H server1,server2,server3 minecraft

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪一个,请了解有关安装包的更多信息。

源代码分发

fuselage-3.1.2.tar.gz (44.7 kB 查看哈希值)

上传时间 源代码

构建分发

fuselage-3.1.2-py3-none-any.whl (81.7 kB 查看哈希值)

上传时间 Python 3

由以下机构支持