Why do we make a new cookbook dependent upon one or more different cookbooks?
- So that we don’t breach copyright
- So that we can make use of Berkshelf
- So we can avoid having to duplicate code (Ans)
- So that we can manage a node running Linux
- So that we can upload the cookbook to Chef Server
Why should we always encrypt credentials which are stored in data bags?
- We cannot create un-encrypted values on Chef Server.
- So that we do not expose sensitive passwords in plaintext (Ans)
- Some cookbooks, like apt, require encrypted credentials.
- We don’t need to encrypt credentials, Chef does this automatically.
- Berkshelf will not upload cookbooks containing unencrypted data bag values.
Why are hard-coded values in a Chef recipe or template a bad idea?
- Some platforms (like Windows) don’t support hard-coded values.
- They increase processing time.
- From version 12 onwards, Chef does not support hard-coded values.
- They make the code inflexible and not reusable. (Ans)
- They are a good idea as they reduce processing time.
When using the ChefDK to generate a new recipe, do you need to specify the .RB file extension?
- Yes, but only if you’re running Windows.
- No, Visual Studio Code does this automatically.
- Yes, otherwise you can’t edit the file.
- No, all files in a Chef repository automatically use the .RB file extension.
- No, CHEF GENERATE does this automatically. (Ans)
What is Chocolatey?
- It is an open-source package provider for Windows. (Ans)
- It is a community utility provided with the ChefDK.
- It is a platform for running virtual machines.
- It is a PowerShell module.
- It is the code name for the latest build of Windows 10.
Which Test Kitchen provisioner should we use when the target platform is Windows?
- Chef Zero Scheduled Task (Ans)
- Chef Zero
What should you do if “kitchen converge” encounters an error?
- Use a different Test Kitchen provisioner
- Use “kitchen destroy”
- Remediate the error and run “kitchen converge” again (Ans)
- Nothing – errors are expected
- Upload the cookbook into production
How do you specify different attributes so that your cookbook will work with Vagrant/Test Kitchen?
- Use override attributes in the vagrantfile
- Create [default][kitchen] attributes in the cookbook’s default.rb attributes file
- Use override attributes in the cookbook’s .kitchen.yml file (Ans)
- Chef Zero will automatically modify any attributes needed.
How do you use a Chef resource which is defined in a different cookbook?
- Use the include_cookbook Chef resource in your own cookbook
- Create a dependency on the external cookbook in your cookbook’s metadata.rb file (Ans)
- You should always re-create Chef functionality from scratch in each cookbook.
- Use GEM INSTALL to download the cookbook to the ChefDK
Why do we need to install the WinRM plugin for Vagrant?
- We don’t – Vagrant does not support WinRM.
- To connect to a Vagrant box running Windows using WinRM (Ans)
- Because Vagrant talks to VirtualBox using WinRM
- To connect to a Vagrant box running Ubuntu using WinRM
- So that Vagrant can populate the PATH variable
When creating a new Chef role using “knife role from file”, in what format should the source file be?
- JSON (Ans)
Why is the Chef Server name important?
- The server name must be unique as it is accessible over the Internet
- The trial license is bound to the server name
- The name is written to the server certificate – if there is a mismatch clients cannot connect (Ans)
- The Chef Server name isn’t important at all
What describes a technical process which gives the same result each time?
- Idempotent (Ans)
When accessing the Chef Management Console via a browser, why might you see a certificate error?
- You forgot to run “opscode-manage-reconfigure”
- You are using a URL which is different to the Chef server name (Ans)
- You need to purchase a certificate from a Certificate Authority
- The Management Console has been incorrectly installed
What do you use to install the Azure PowerShell modules?
- Microsoft Web Platform Installer (Ans)
- sudo apt-get install
- Microsoft OneGet
- Microsoft Azure CLI
We can use SSH to bootstrap the Chef Client onto a Linux node. What do we use for Windows nodes?
- Visual Basic
- WinRM (Ans)
Why is Git an integral part of using Chef?
- Because Chef development is driven by open source principles
- Because version control is critical for managing code properly (Ans)
- The ChefDK needs Git to be installed first
- The ChefDK uses Git to upload cookbooks to the Chef Server
If one Chef cookbook depends upon another Chef cookbook, where should this dependency be stated?
- In the .gitignore file
- In the README.md file
- In the metadata.rb file (Ans)
- In the knife.rb file
On which platform is the Azure Command Line Interface (CLI) supported?
- All of them (Ans)
- Mac OS X
- Microsoft Windows
What does Knife need in order to communicate with the Chef Server?
- The URL of the Chef Servercd
- User and organization certificates
- SSL certificates from the Chef Server
- All of these (Ans)
In an environment managed by Chef, where does cookbook and policy authoring happen?
- In the Chef Management Console
- On the Chef Server
- In the Chef Development Kit (Ans)
- In the Chef PostgreSQL database
What is a provider?
- An entry in the PATH environment variable on a Windows system
- A process by which Chef achieves a recipe’s declared end-state (Ans)
- A component of a cookbook which defines the version number and dependencies
- A self-contained Ruby package, such as knife-windows
What does it mean if a Chef node reports an “empty run list” during a client run?
- It means that the Chef Client did not install correctly, and must be reinstalled
- It means that no recipes, cookbooks, or roles have been assigned to the node (Ans)
- It means that the wrong recipe, cookbook or role has been assigned to the node
- It means that the Chef Client failed to connect to the Chef Server