📜  Chef-厨师贝壳

📅  最后修改于: 2020-11-04 04:54:20             🧑  作者: Mango


 

编写Chef食谱总是很难的。由于将它们上传到Chef服务器,配置无用的VM,检查它们在此失败的方式,漂洗和重复的反馈周期较长,因此这变得更加困难。如果我们能够立即进行所有繁重的工作,然后尝试测试一些零件或配方,将会更加容易。

Chef附带了Chef-Shell,它本质上是与Chef进行的交互式Ruby会话。在Chef-Shell中,我们可以创建-

  • 属性
  • 写食谱
  • 初始化主厨运行

它用于动态评估部分食谱,然后将其上载到Chef服务器并在节点上执行完整的食谱。

跑步壳

步骤1-以独立模式运行Chef-Shell。

mma@laptop:~/chef-repo $ chef-shell 
loading configuration: none (standalone chef-shell session) 
Session type: standalone 
Loading...[2017-01-12T20:48:01+01:00] INFO: Run List is [] 
[2017-01-12T20:48:01+01:00] INFO: Run List expands to [] 
done. 
This is chef-shell, the Chef Shell. 
Chef Version: 11.0.0 
http://www.opscode.com/chef 
http://wiki.opscode.com/display/chef/Home 
run `help' for help, `exit' or ^D to quit. 
Ohai2u mma@laptop!  
chef > 

步骤2-在Chef-Shell中切换到属性模式

  • 厨师> attributes_mode

步骤3-设置属性值。

  • cook:属性> set [:title] =“ Chef Cookbook”
    • “厨师食谱”
  • 厨师:属性>退出
    • :属性
  • 厨师>

步骤4-切换到配方模式。

  • 厨师> recipe_mode

步骤5-创建文件资源。

chef:recipe > file "/tmp/book.txt" do 
chef:recipe > content node.title 
chef:recipe ?> end  

=>    

chef:recipe > 

步骤6-开始运行厨师以创建具有给定内容的文件。

  • 厨师:食谱> run_chef
[2017-01-12T21:07:49+01:00] INFO: Processing file[/tmp/book.txt] 
action create ((irb#1) line 1) 
--- /var/folders/1r/_35fx24d0y5g08qs131c33nw0000gn/T/cheftempfile20121212- 
11348-dwp1zs 2012-12-12 21:07:49.000000000 
+0100 
+++ /var/folders/1r/_35fx24d0y5g08qs131c33nw0000gn/T/chefdiff20121212- 
11348-hdzcp1 2012-12-12 21:07:49.000000000 +0100 
@@ -0,0 +1 @@ 
+Chef Cookbook 
\ No newline at end of file 
[2017-01-12T21:07:49+01:00] INFO: entered create 
[2017-01-12T21:07:49+01:00] INFO: file[/tmp/book.txt] created file 
/tmp/book.txt 

怎么运行的

  • Chef-Shell从交互式Ruby(IRB)会话开始,增强了一些特定功能。
  • 它提供了诸如attributes_mode和interactive_mode之类的模式。
  • 它有助于编写在食谱或食谱中编写的命令。
  • 它以交互模式运行所有内容。

我们可以在三种不同的模式运行Chef-Shell:独立模式,客户端模式独奏模式

  • 独立模式-这是默认模式。没有加载食谱,并且运行列表为空。
  • 客户端模式-在这里,chef-shell充当Chef-client。
  • 独奏模式-在这里,chef-shell充当Chef-solo客户。