How can you use a Chef recipe to set an environment variable?
I need to set an environment variable using a Chef recipe. Can you provide an example of how to accomplish this?
On the Windows taskbar, right-click the Windows icon and select System. In the Settings window, under Related Settings, click Advanced system settings. On the Advanced tab, click Environment Variables. Click New to create a new environment variable.
SCRATCH is an example of an environment variable. When used as part of a command they need to be preceded by a '$', hence '$SCRATCH'. They are called environment variables because they are used to modify the environment in which some programs run on the central system.
If you need an env var set strictly within the Chef process, you can use ENV['foo'] = 'bar
' since it's a ruby process.
If you need to set one for an execute provider, Chef exposes an environment hash:
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
If you're looking to set a persistent environment variable then you may want to have Chef edit /etc/profile.d/chef.sh
, /etc/environment
, a users' profile, etc.
If you want to set it on the system with Chef, checkout the magic_shell cookbook.
magic_shell_environment 'RAILS_ENV' do value 'production' end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With