3 个版本 (重大变更)
使用旧的 Rust 2015
0.3.0 | 2017年9月6日 |
---|---|
0.2.0 | 2017年8月28日 |
0.1.0 | 2017年7月4日 |
#5 in #gem
30KB
791 行
libspecnfra
这是什么
Libspecinfra 是一个由 Rust 实现的,作为 specinfra 钩子 替代品的开源项目。
Specinfra 钩子是 serverspec 的基础库。
由于 Specinfra 钩子是用 Ruby 编写的,因此您无法从其他语言调用其功能。
Libspecinfra 项目将提供二进制库和语言绑定,以便调用此库。这样,您就可以从许多语言中调用 specinfra 的功能。
该项目目前处于初期阶段。如果您有任何评论、问题等,请随时在 GitHub Issues 中发布评论。
这里 是关于此项目的日文帖子。
语言绑定
目前我们只提供 Ruby 和 mruby 绑定。
其他语言将得到支持。
示例代码
这是一个获取本地主机 /etc/passwd
文件权限的 mruby 示例代码
b = Libspecinfra::Backend::Direct.new()
s = Libspecinfra::Specinfra.new(b)
f = s.file("/etc/passwd")
printf("%#o", f.mode)
这是一个通过 SSH 获取 /etc/passwd
文件权限的 mruby 示例代码
b = Libspecinfra::Backend::SSH.new("localhost")
s = Libspecinfra::Specinfra.new(b)
f = s.file("/etc/passwd")
printf("%#o", f.mode)
其他语言示例请见 此处 。
待办事项
资源
资源应实现。这些资源是从 Serverspec 资源类型 中选择的。因此,某些资源是在 serverspec 中而不是在 specinfra 中实现的。
- bond
- bridge
- cgroup
- command
- cron
- 默认网关
- docker 容器
- docker 镜像
- 文件
- 组
- 主机
- iis 应用池
- iis 网站
- 接口
- ip6tables
- ipfilter
- ipnat
- iptables
- 内核模块
- Linux 审计系统
- Linux 内核参数
- lxc
- 邮件别名
- MySQL 配置
- 包
- PHP 配置
- 端口
- ppa
- 进程
- 路由表
- SELinux
- SELinux 模块
- 服务
- 用户
- x509 证书
- x509 私钥
- Windows 功能
平台
平台应实现。Specinfra 钩子支持以下平台。
- AIX
- Alpine Linux
- Amazon Linux
- Arch Linux
- CoreOS
- Cumulus Linux
- MacOS(Darwin)
- Debian Linux
- elementary OS
- EOS(Arista)
- VMWare ESXi
- Fedora
- FreeBSD
- Gentoo Linux
- Linux MInt
- NixOS
- OpenBSD
- openSUSE
- Plamo Linux
- Poky(Yokto)
- Redhat Linux
- SUSE Linux Enterprise Server
- SmartOS
- Solaris
- SuSE Linux
- Ubuntu
- Windows
后端
应实现后端。Specinfra 珠珍支持这些后端。
- CMD(Windows)
- Docker
- Exec
- jexex
- LXC
- SSH
- Telnet
- WinRM
依赖
~5.5MB
~119K SLoC