5个版本
0.1.3 | 2024年8月6日 |
---|---|
0.1.2 | 2024年7月21日 |
0.1.1 | 2024年7月13日 |
0.1.0 | 2024年7月9日 |
0.0.0 | 2024年7月2日 |
#118 in 配置
每月489次下载
680KB
3K SLoC
杜克核心:将Ansible-like自动化引擎嵌入您的Rust代码中
目标
我们更愿意构建一个灵活的自动化引擎(这个crate),并将其尽可能容易地嵌入到一个已经适应特定需求的代码库中,而不是有一个大型的自动化工具(意味着配置管理或编排工具)试图处理所有场景(可扩展、性能、通过这个协议或那个协议处理本地和远程主机、符合这个安全标准以及那个标准...)。
文档
关于dux项目的《书籍》已在此处开放这里。
示例
到目前为止,基于这个crate(作为概念证明)正在构建3个版本。
- 标准:一个可执行文件,接受任务列表和主机列表作为输入(加上额外的,如用户名、密钥...)并将这些任务应用于这些受控主机。
- 可扩展(控制器节点,工作节点):转变为微服务架构,任务由控制器节点创建,发送到消息代理(RabbitMQ),由工作节点(这些是实际在受控主机上执行操作的节点)获取,并将结果通过消息代理发送回控制器。这允许通过增加工作节点的数量来同时处理更多的受控主机。
- 代理:一个作为服务运行在主机上的可执行文件。该服务定期在其自己的主机上应用任务列表。此任务列表可以是本地文件或通过多种方法(https、ftp、git...)获取。它允许拉模式:受控主机主动寻找要应用于自身的任务。操作员需要做的只是更新任务列表,其余的将自行完成。
贡献/帮助/讨论
想要一些帮助来使用这个crate解决您的情况吗?欢迎提出建议、反馈、请求以及任何贡献!我非常愿意在那里与您交换想法这里!
可用的模块
(按字母顺序排序)
模块 | 描述 |
---|---|
apt |
管理类似Debian的发行版的软件包 |
command |
在受控主机上运行单个shell命令 |
dnf |
管理Fedora-like发行版的软件包(与yum 无区别) |
lineinfile |
在文件中操作行(添加、删除) |
ping |
测试与远程主机的SSH连接 |
service |
管理受控主机上的服务 |
yum |
管理Fedora-like发行版的软件包(与dnf 无区别) |
待办事项列表
依赖项
~17–48MB
~785K SLoC