了解厨师食谱片段
Understanding chef cookbook snippet
我无法解释 Chef cookbook 中的以下代码:
systemd_unit '<service_name>' do
action %i[enable start]
end
我从 systemd_unit resource 了解到 systemd_unit。但是,这里的动作是如何确定的呢?我正在尝试将这本食谱转换为 ansible,并想先了解食谱中发生的事情。
此外,作为菜谱的新手,我也想确认一下:
include_recipe '<cookbook_name>'
提供 那么我的理解是,它包括给定食谱中的 default.rb
并且不包括该食谱中的其他食谱。如果正确,请告诉我。
%i[start,enable]是一个数组,服务先启动后启用自动启动。
include cookbook 仅包含默认配方,对于特定配方使用 include 'cookbook::recipe'
此致
除了@Psyreactor 的回答外,还提供了扩展的回答。
Chef 配方中的操作由 Ruby symbols 表示,如 :create
、:start
等。当要对同一资源执行多个操作时,它们作为数组传递。
所以不要像这样为同一个服务写两个资源声明:
# Enable the service
systemd_unit '<service_name>' do
action :enable
end
# Start the service
systemd_unit '<service_name>' do
action :start
end
可以写成一个:
# Enable and start the service
systemd_unit '<service_name>' do
action [ :enable, :start ]
end
注意: %i
是一种省略使用 :
字符并创建符号数组的方法。 %i(enable, start)
等同于 [ :enable, :start ]
.
Chef“动作”在 Ansible 中被称为“状态”。因此,对于 Ansible 中的类似服务,您可以这样做:
systemd:
name: '<service_name>'
enabled: yes
state: 'started'
it includes default.rb
from the given cookbook and other recipes within that cookbook are not included.
没错。但是,该食谱中的其他食谱 未包含在 中 运行 取决于 default.rb
。
我无法解释 Chef cookbook 中的以下代码:
systemd_unit '<service_name>' do
action %i[enable start]
end
我从 systemd_unit resource 了解到 systemd_unit。但是,这里的动作是如何确定的呢?我正在尝试将这本食谱转换为 ansible,并想先了解食谱中发生的事情。
此外,作为菜谱的新手,我也想确认一下:
include_recipe '<cookbook_name>'
提供 那么我的理解是,它包括给定食谱中的 default.rb
并且不包括该食谱中的其他食谱。如果正确,请告诉我。
%i[start,enable]是一个数组,服务先启动后启用自动启动。
include cookbook 仅包含默认配方,对于特定配方使用 include 'cookbook::recipe'
此致
除了@Psyreactor 的回答外,还提供了扩展的回答。
Chef 配方中的操作由 Ruby symbols 表示,如 :create
、:start
等。当要对同一资源执行多个操作时,它们作为数组传递。
所以不要像这样为同一个服务写两个资源声明:
# Enable the service
systemd_unit '<service_name>' do
action :enable
end
# Start the service
systemd_unit '<service_name>' do
action :start
end
可以写成一个:
# Enable and start the service
systemd_unit '<service_name>' do
action [ :enable, :start ]
end
注意: %i
是一种省略使用 :
字符并创建符号数组的方法。 %i(enable, start)
等同于 [ :enable, :start ]
.
Chef“动作”在 Ansible 中被称为“状态”。因此,对于 Ansible 中的类似服务,您可以这样做:
systemd:
name: '<service_name>'
enabled: yes
state: 'started'
it includes
default.rb
from the given cookbook and other recipes within that cookbook are not included.
没错。但是,该食谱中的其他食谱 未包含在 中 运行 取决于 default.rb
。