laijim/playbook
Composer 安装命令:
composer require laijim/playbook
包简介
README 文档
README
Installation
The recommended approach is to install the project through Composer.
composer require laijim/php-playbook
#Instantiate
//Instantiate $pb = new \Laijim\Playbook\Playbook( new \Laijim\Playbook\Entity\Worker( __DIR__ . '/test', new \Laijim\Playbook\Entity\LocalHostsFileWriter(), new \Laijim\Playbook\Entity\LocalTasksFileWriter(), new \Laijim\Playbook\Entity\LocalVariablesFileWriter(), new Filesystem() ) ); //set host and variables $pb->setHosts([ 'web' => ['node1', '127.0.0.1'], 'db' => ['node1', '127.0.0.1'], ])->setVariables([ 'step1' => [ "var1" => "var1", "var2" => "var2" ], 'step2' => [ "var1" => "var1", "var2" => "var2" ] ]); //set tasks $task1 = new \Laijim\Playbook\Task(); $task1->useHost('web') ->useVariables(['step1']) ->addTasks([ ["name" => "debug 1", "debug" => "var=var1"], ["name" => "debug 2", "debug" => "var=var2"], ["name" => "step 3", "shell" => "echo handlers", "notify" => "step 4"], ])->directive('handlers', [ ["name" => "step 4", "shell" => "echo final"], ]); $task2 = new \Laijim\Playbook\Task(); $task2->useHost('db') ->useVariables(['step2']) ->addTasks([ ["name" => "debug 1", "debug" => "var=var1"], ["name" => "debug 2", "debug" => "var=var2"], ["name" => "step 3", "shell" => "echo handlers", "notify" => "step 4"], ])->directive('handlers', [ ["name" => "step 4", "shell" => "echo final"], ]); //generate playbook files $pb->register($task1) ->register($task2) ->generate();
It will finally generate this directory structure:
├── hosts
├── playbook.yaml
└── vars
├── step1.yaml
└── step2.yaml
hosts:
[web]
node1
127.0.0.1
[db]
node1
127.0.0.1
playbook.yaml:
-
hosts: web
vars_files:
- ./vars/step1.yaml
task:
-
name: 'debug 1'
debug: var=var1
-
name: 'debug 2'
debug: var=var2
-
name: 'step 3'
shell: 'echo handlers'
notify: 'step 4'
handlers:
-
name: 'step 4'
shell: 'echo final'
-
hosts: db
vars_files:
- ./vars/step2.yaml
task:
-
name: 'debug 1'
debug: var=var1
-
name: 'debug 2'
debug: var=var2
-
name: 'step 3'
shell: 'echo handlers'
notify: 'step 4'
handlers:
-
name: 'step 4'
shell: 'echo final'
vars/stepN.yaml:
var1: var1 var2: var2
vars/stepN.yaml:
var1: var1 var2: var2
Let's test it!
ansible-playbook -i hosts playbook.yaml
Operation result
PLAY [all] *****************************************************************************************************************************************
TASK [Gathering Facts] *****************************************************************************************************************************
ok: [127.0.0.1]
ok: [node2]
TASK [debug 1] *************************************************************************************************************************************
ok: [127.0.0.1] => {
"var1": "var1"
}
ok: [node2] => {
"var1": "var1"
}
TASK [debug 2] *************************************************************************************************************************************
ok: [127.0.0.1] => {
"var2": "var2"
}
ok: [node2] => {
"var2": "var2"
}
TASK [step 3] **************************************************************************************************************************************
changed: [127.0.0.1]
changed: [node2]
RUNNING HANDLER [debug 3] **************************************************************************************************************************
changed: [127.0.0.1]
changed: [node2]
PLAY RECAP *****************************************************************************************************************************************
127.0.0.1 : ok=5 changed=2 unreachable=0 failed=0
node2 : ok=5 changed=2 unreachable=0 failed=0
laijim/playbook 适用场景与选型建议
laijim/playbook 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 03 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 laijim/playbook 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 laijim/playbook 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2020-03-26