さて、私はシェフの初心者であり、このコードをハッシュ化しようとしていると言って始めましょう。
私は完全なマックショップにいます。システム全体の変更を自動化するために Chef を使用しています。私は初心者なので、Mac AV システムに展開しています。
基本的に、MAC SCREEN SAVERS ディレクトリを持つファイル サーバー上にフォルダがあります。サーバー ディレクトリを MAC OS X の /User/user_name/Pictures ディレクトリにローカルにコピーします。
だから、これは私がシェフで得たものです:
local_folder_modified = File.mtime("~/Pictures/SCREEN SAVER NEW MACS")
server_folder_modified = File.mtime("/Volumes/SERVER/SCREEN\ SAVER\ NEW\ MACS/")
if server_folder_modified != local_folder_modified
# file has changed
then
require 'fileutils'
FileUtils.cd('server_folder_modified') do
FileUtils.rm('local_folder_modified/*')
FileUtils.cp_r './*', 'local_folder_modified'
Else
end
end
とにかく、「~」をこのレシピの実行ユーザーに設定する方法がわかりません。したがって、Comp_A にユーザー Jim_Beam がいて、Comp_B にユーザー Jack_Daniels がいる場合、コードを次のように設定したくありません。 ENV[HOME] = /user/jimbeam Jack_Daniels では機能しないためです。右?
file.expand または ENV が機能することを読みましたが、「ねえ、このスクリーンセーバーを必要とする現在のユーザーが必要です。環境を変数として設定して、異なるノード間で機能します。」
とにかく、助けてくれてありがとう。私が理にかなっていることを願っています!