7つのファイルと1つの戦争があります。値を展開するときに値を変更する必要があります。私はこれを持っています:
##usuario
#alfresco.user=*****
alfresco.user=********
##pass
#alfresco.password= sfsfs
alfresco.password=sfgsf
alfresco.rutaAnexos=/gthtfdh/dfgdf/cm:
#atributo.type.anexo=ANEXO_INFO_OBJETO
atributo.type.anexo=AN
atributo.type.observaciones=OBSERVACIONES
いくつかの行をコメントし、他の行のコメントを解除する必要があります。次に、7つのテンプレートを作成し、環境に応じて変数を配置し、レシピにファイルを作成する必要があります。
これどうやってするの?
シェフは実際にこれを許可して使用しています。あなたはopscodeので例を見つけることができます
cookbooks/chef-server/recipes/default.rb
:
Ruby_block "ensure node can resolve API FQDN" do
block do
fe = Chef::Util::FileEdit.new("/etc/hosts")
fe.insert_line_if_no_match(/#{node['chef-server']['api_fqdn']}/,
"127.0.0.1 #{node['chef-server']['api_fqdn']}")
fe.write_file
end
not_if { Resolv.getaddress(node['chef-server']['api_fqdn']) rescue false }
end
これがユースケースです。ソースからのインストール後、ソフトウェアのすべてのバージョンで同じではない作成された構成ファイルの行のコメントを外す必要があったため、テンプレートの使用は適切ではありませんでした。私が使用した方法は次のとおりです。
完全なドキュメントは次の場所にあります。
ストレスに:このメソッドは、テンプレートとパーシャルの使用が不適切な場合にのみ使用されます。 @StephenKingが既に言ったように、テンプレートはこれを行う一般的な方法です。
以下に、Chefを使用して構成ファイルの行のコメントを解除する方法の例を示します。 Ruby_block
は::File::grep
で保護されています。 Debianのテストはただの楽しみのためです。
pam_config = "/etc/pam.d/su"
commented_limits = /^#\s+(session\s+\w+\s+pam_limits\.so)\b/m
Ruby_block "add pam_limits to su" do
block do
sed = Chef::Util::FileEdit.new(pam_config)
sed.search_file_replace(commented_limits, '\1')
sed.write_file
end
only_if { ::File.readlines(pam_config).grep(commented_limits).any? }
end if platform_family?('debian')