variable restaurar por modificar entorno defecto crear environment-variables chef chef-recipe

environment variables - restaurar - ¿Cómo puede usar una receta Chef para establecer una variable de entorno?



variables de entorno linux (3)

¿Cómo puede usar una receta Chef para establecer una variable de entorno?

Necesito establecer una variable de entorno usando una receta Chef. ¿Puedes dar un ejemplo de cómo lograr esto?



Si desea configurarlo en el nivel del sistema en /etc/environment , puede hacerlo directamente según el siguiente ejemplo sin agregar una receta adicional (esto agrega dos variables env para Java):

sys_env_file = Chef::Util::FileEdit.new(''/etc/environment'') { ''JAVA_HOME'' => ''/usr/lib/jvm/java-1.7.0-openjdk-amd64'', ''LD_LIBRARY_PATH'' => ''/usr/lib/jvm/java-1.7.0-openjdk-amd64/lib'' }.each do |name, val| sys_env_file.insert_line_if_no_match /^#{name}/=/, "#{name}=/"#{val}/"" sys_env_file.write_file end


Si necesita un conjunto env var estrictamente dentro del proceso Chef, puede usar ENV[''foo''] = ''bar '' ya que es un proceso ruby.

Si necesita establecer uno para un proveedor de ejecución , Chef expone un hash de entorno:

execute ''Bootstrap the database'' do cwd "#{app_dir}/current" command "#{env_cmd} rake db:drop db:create db:schema:load RAILS_ENV=#{rails_env}" environment ''HOME'' => "/home/#{app_user}" user app_user action :run not_if %[psql -U postgres -c "//l" | grep #{db_name}] end

Si está buscando establecer una variable de entorno persistente, es posible que desee que Chef edite /etc/profile.d/chef.sh , /etc/environment , el perfil de un usuario, etc.