Opscode Chef API 库

dev-master 2016-02-26 19:08 UTC

This package is auto-updated.

Last update: 2024-08-25 18:50:19 UTC


README

Chef 服务器 API 用于提供对 Chef 服务器上对象的访问,包括节点、环境、角色、cookbooks(以及 cookbooks 版本),以及管理 API 客户端列表和相关 RSA 公钥对。

这是一个通用库,并增加了对 Laravel 框架的支持。

安装

jenssegers/chef 添加到 composer.json 中的依赖项

{
    "require": {
        "jenssegers/chef": "dev-master"
    }
}

使用 composer update 更新您的包或使用 composer install 安装。

使用方法

创建一个像这样的 chef 对象

// composer
require_once 'vendor/autoload.php';
use Jenssegers\Chef\Chef;

// create chef object
$chef = new Chef($server, $client, $key, $version);

// API request
$response = $chef->api($endpoint, $method, $data);

查看所有可用的端点,请参阅 http://docs.opscode.com/api_chef_server.html

示例

获取节点

$nodes = $chef->get('/nodes');

创建数据包

$bag = new stdClass;
$bag->name = "test";

$resp = $chef->post('/data', $bag);

更新节点

$node = $chef->get('/nodes/webserver1');
$node->attributes->type = "webserver";

$chef->put('/nodes/webserver1', $node);

删除数据包

$chef->delete('/data/test/item');

Laravel

app/config/app.php 中将 Chef 包与 Laravel 注册,添加以下提供者

'Jenssegers\Chef\ChefServiceProvider',

以及这个别名

'Chef'            => 'Jenssegers\Chef\Facades\Chef'

使用 Artisan 创建配置文件的副本

php artisan config:publish jenssegers/chef

编辑创建的配置文件 app/config/packages/jenssegers/chef/config.php 以匹配您的环境

'server'  = the URL for the Chef Server
'client'  = the name used when authenticating to a Chef Server
'key'     = the location of the file which contains the client key
'version' = the version of the Chef Server API that is being used