食用者 / 订单
PHP中的自动化系统管理
Requires
- bramus/monolog-colored-line-formatter: ~2.0
- league/flysystem: ^1.0
- league/flysystem-memory: ^1.0
- monolog/monolog: ^1.17
- sebastian/diff: ^1.3
- symfony/yaml: ^2.7
- twig/twig: ~1.0
This package is not auto-updated.
Last update: 2019-02-20 18:47:17 UTC
README
Travis(单元测试): Gitlab CI(集成测试):
PHP中的自动化系统管理(为什么不呢?)
Order是一个系统管理工具,旨在使您更容易管理和配置服务器。哎呀...我在骗谁呢。Order是尝试用PHP重写puppet,而我对此一无所知。
哲学
名字背后的哲学很简单,order将为您的系统带来秩序,您将制定法律,然后您可以请求系统中的文件,或者如您所知,puppet中的事实。目前使用puppet facter用于文件。
法律文件
法律文件是您定义系统规则的文件,就像puppet中的.pp
或puppet文件。
法律文件的语法
我发现的最大瓶颈是找到一个不会让您在PHP中打字时手疼的语法,但经过一些修改,我发现了一个我认为非常适合目的的语法。
一个法律文件的例子
<?php
file("/etc/hostname")
->contents(config('info.hostname'))
->require(service("dhcpd"));
service("dhcpd")
->enable();
$php = which(
paper('os'),
[
"FreeBSD" => "php56",
"/Ubuntu|Debian/" => "php5",
"php"
]
);
package($php)->install();
// inclusion is done by prefixing a file with `law://`
include 'law://noop.law';
此示例将把/etc/hostname
文件的内容更改为配置参数info.hostname
的内容,但仅在启用服务dhcpd
之后,接下来将安装PHP软件包,对于FreeBSD将安装php56
软件包,对于Ubuntu和Debian将安装php5
,而对于其他操作系统则仅安装php
软件包,之后将包含法律文件noop.law
。
文件
文件标识了使您的系统保持运行的东西,您可以使用文件请求os
、kernel
、processors
或如果您真的很想,可以使用ruby.version
请求机器上的ruby版本,因为我们使用puppet facter,数据目前仅限于这些,但我计划也将这部分用PHP编写。
有关文件更多信息,请在您的机器上运行facter
。
配置
配置文件将使用yaml或json编写。您喜欢什么就用什么。配置变量可以轻松使用config
函数请求。例如,如果您想请求此示例配置中定义的第一个主机名。
info:
hostname:
- foo
- bar
您只需调用`config('info.hostname.0');`
使用它
目前我仍在编写大部分内容,因此现在它还没有任何可用的状态,但您可以随意看看。
免责声明
我对于使用此工具造成的任何损害不承担任何责任。阿门。