Using Chef recipe, I am first generating a .erb file dynamically based on inputs from a CSV file and then I want to use that .erb file as a template source. But unfortunately the changes made (in .erb file) are not considered while the recipe is converging the resources. I also tried to use lazy evaluation but not able to figure out how to use it for the template source.
How does Chef include files generated on runtime as a template source
1.1k views Asked by Aditya Agarwal At
2
There are 2 answers
0
display name
On
Assuming you know how to capture the values from the CSV file as a local variable in the recipe.
Examples:
csv_hostname
csv_fqdn
Here is what you do to create a template with lazy loading attributes. The following example creates a config file.
example.erb file
# Dynamically generated by awesome Chef so don't alter by hand.
HOSTNAME=<% @host_name %>
FQDN=<% @fqdn %>
recipe.rb file
template 'path\to\example.config' do
source 'example.erb'
variables(
lazy {
:host_name => csv_hostname,
:fqdn => csv_fqdn
})
end
If you need it to run at compile time, add the action to the block.
template 'xxx' do
# blah blah
end.run_action(:create)
Related Questions in RUBY
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- Duplicate GET requests - Rails & Heroku
- convert csv file with json data inside to a column, rows table in 2nd csv file
- Installing dependencies from a gemspec file
- Verifying Google Identity OAuth2 token with Ruby
- Java code of AES/GCM/NoPadding encryption algorithm with authentication tag
- How to fix error in model with gem lockbox
- Cannot install Ruby Gem on Window
- use logstash filter ,aes gcm encrypted in ruby,but cannot decrypted in java
- In Rails 7, what is the right ActiveRecord callback to use if I need to prevent (or rollback) persistance on error?
- How can I go through an array and still remove elements from it
- Nokogiri only returning 5 results
- How do I get the fullscreen mode in firefox?
- undefined group option when using branch reset group regex in Ruby
Related Questions in CHEF-INFRA
- Get nodes information via chef automate api
- Chef : using search method in a template file
- Node connection failed | Devops | Chef-server | Chef-node
- Chef Recipe; cannot be found in the resource collection
- Unable to run a recipe in chef as it says No such cookbook
- Can't install inspec due to a sha256 error (Cannot find type)
- Handle exit code for server shutdown using Chef recipe and Rundeck
- Accumulator pattern for ruby_block or other non-template resource
- Chef Recipe: iis_pool periodic_restart_schedule getting set to empty array
- How to resolve error with 7zip not getting installed using chef-client version 14.6.47
- Error in bootstrapping chef nodes with chef workstation using ssh
- chef docker-api cookbook fails, error malformed header
- trying to write a receipe to delete a service account using user resource
- Change owner and group of every file directory
- Chef recipe NoMethodError: undefined method `[]' for nil:NilClass
Related Questions in LAZY-EVALUATION
- How can I fix missing icons on Neovim Lualine plugin?
- Can you assign function arguments before they have been evaluated?
- Polars timestamp synchronization lazy evaluation
- Enabling Lazy Initialization Breaks Kafka Listeners Using Spring Cloud Kafka Binder
- Swift lazy var on immutable structs
- Aggregation in Polars window functions - how to select the top value based on an aggregation from other column
- How do I avoid using try-with-resources or close() in this example?
- How to implement "if" in normal order in Scheme?
- Copilot installed but not loaded
- Lazy range class in R
- Module "lspconfig not found"
- How to transfere Kotlin fragment code "by lazy " to Java fragment?
- Haskell. Not seeing laziness despite using list-t's ListT (State s)
- pyarmor and library dependencies
- Lazy evaluation of default parameter in clojure
Related Questions in CHEF-RECIPE
- While using array in chef i am facing issue
- Is there a way to only edit the GID on /etc/passwd file using chef?
- NameError --------- undefined local variable or method `service_name' when Chef executes on a node
- Parsing issue with ruby Mixlib::ShellOut in chef
- Unable to set the node attributes within a ruby block
- Chef Error while installing multiple packages using custom attributes
- How to fix this implicit error in my Ruby code
- chef test-kitchen run only default recipe
- To get IP addres of the specific host machine in rub
- Chef Check Package is already installed
- cron is added but not executing current time
- Error when using gsub method in chef recipe
- how to find the author who uploaded cookbook to chef server?
- Chef Recipe: File not found issue (does not contain a file at any of these locations)
- [chef]: View all available data bags on a node
Related Questions in CHEF-TEMPLATE
- Loop and difference in chef template
- How can I get Chef to error or at least report a missing variable in an .erb template?
- How to preserve existing host file when running chef template resource
- How to use local variable of whitespace array in chef template resource
- Chef template render nested object
- Converting chef upstart template to systemd for ubuntu 16.04
- Converting chef upstart template to systemd
- Chef Template : Using a nested object to generate a configuration file
- get calling cookbook within chef custom resource
- Chef: 'kitchen converge' not sourcing new template
- filtering ip in chef
- How to put a if statement inside a loop within a chef template file?
- Chef ERB template with Logstash Grok pattern issues
- Chef - repeat block of text in template x times
- How does Chef include files generated on runtime as a template source
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Quoting the template documentation:
And
so what you can do is:
Your question sounds like and XY problem, reading a csv file to make a template sounds counter-productive and could probably be done with attributes and taking advantage of the
variableattribute oftemplateresource.