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 查看哈希值)
关闭
fuselage-3.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e6a96e45985fea3724e50e52315f1e64339032739be4a2ad238bafa3d2e018bf |
|
MD5 | b8ba83789d3ec716a39952e52e756abe |
|
BLAKE2b-256 | aaccac87223c544f9624f02af0884830f81a4a851245bd9dcc4e98fb502a465c |
关闭
fuselage-3.1.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3c55dfb894d89e70a24ba519a73f5aaa50e18f13341aff3dc3f5e75406a7ce34 |
|
MD5 | 0bd9c8723eeb389739286d8e86746fb8 |
|
BLAKE2b-256 | 217c50fb5d2b20ced52a09d2ddb162bb2fd969a2a281ec9951ee4c4c0b546cbb |