- Expose machine_spec.from_image to allocate_machine (#366, @mwrock)
- Use mixlib-install to install from omnitruck (#389, @thommay)
- Added support for
options[:scp_temp_dir]
to permit specifying a directory other than/tmp
to copy files to via SCP. (#339) - Removing acceptance tests because they are super stale. (#363)
- Fix arrity mismatch on
Driver#destroy_image
method. (#364) - Doc updates (#344, #346, #352, #369)
- Updating for newly introduced Socketless mode. If the local chef-zero url is
chefzero://...
then we replace it withhttp://...
on the target VM (#337) - Bumped winrm dependency to 1.3.0 (#332)
- Fixed undefined method on nil class error inside setup-convergence (@tyler-ball)
- Fix machine_batch :destroy, no longer creating extra threads (#321)
- Allow user to specify a custom stdout in
Chef::Config[:stdout]
(#311) - If
convergence_options[:bootstrap_proxy]
is populated use it to download chef (#317)
- Clean up dependencies (#316)
- Updating to latest Cheffish
- Fix an issue with vagrant second-converge failing
- Marking machines
nil
in a load_balancer does not affect existing machines (#299) with_driver
now optionally accepts a block. If passed, it is only active in that block. If not passed, existing behavior is unchanged. (#296)- New
show_output
attribute formachine_execute
, defaults to false (@causton1) - Changed
MachineSpec
storage toManagedEntry
. Driver authors, see PR for details (#297) - If specifying exact chef version, don't re-install every chef-provisioning (#303)
-
Support for different versions of Chef with the :chef_version and :prerelease arguments (
machine_options convergence_options: { chef_version: '12.0.1' }
orprerelease: true
) -
Support HTTPS proxy (@causton1)
-
Automatically configure HTTPS proxy when specifying
machine_options convergence_options: { http_proxy: '...' }
-
Support for arbitrary configuration using
machine_options convergence_options: { chef_config: "anything you want dumped in /etc/chef/client.rb (will be appended to the standard options already placed in the file)" }
-
Make load_balancer :destroy work (@lynchc)
-
Default to SSL for Chef install download (@xeon22)
-
Fix Chef overwriting attributes on first converge in
machine_batch
(#209) -
Fix node permissions on Hosted / Enterprise Chef: no more adding your clients to the
admins
group (ewww). (#59) -
Always pass an array (never nil) to the driver, even when there are no machines to add to it (partial fix for chef/chef-provisioning-aws#81)
- Allow
ssl_verify_mode
to be overridden (@mivok) - Support
machine_options[:convergence_options][:bootstrap_proxy]
(@mivok) - Allow
machine_options[:ssh_gateway]
without username (no @) (@mivok) - Fix issue with net-ssh 2.9.2
- Add
action :destroy
tomachine_image
(@miguelcnf)
- Make machine batch convergent
- Consolidate load balancer create and update
- Update some URLs
- SSL verification fix
- Test suites
- Auto-create image data bags
- Remove some un-needed dependencies
- Wipe out SSH keys in debug messages
- Make it work with Chef 12
- Remove Chef as a dependency so that it can be a dep of Chef
- Make syntax error go away, grr.
- Rename from chef-metal to chef-provisioning
- Disable auto batching
- Fix for with_machine_options context hash
- Pass timeout from execution_options to winrm set_timeout
- Add better error message when driver does not specify driver_url
- Add info that location.driver_url is required
- Remove Chef 11.14 alpha note in readme
- Gracefully handle Host Down and Network Unreachable
- Fix "metal execute mario ls" to work again
-
FEATURE: Add the machine_image resource (@jkeiser, @johnewart):
machine_image 'base' do machine_options :bootstrap_options => { :image_id => 'ami-1234798123431', :ssh_username => 'root' } recipe 'secure_base' recipe 'corp_users' end # Build an image based on 'base' that has apache machine_image 'apache' do # All bootstrap options, like ssh_username, are carried forward from_image 'base' recipe 'apache2' end # Build an image with my web app based on the apache base image machine_image 'myapp' do from_image 'apache' recipe 'mywebapp' end # Build an image with mysql and my schema based on the corporate base image machine_image 'mydb' do from_image 'base' recipe 'mysql' recipe 'myschema' end # Build a DB machine from mydb. Does not reinstall stuff! :) machine 'db' do from_image 'mydb' end # Build a web app machine from myapp. Does not reinstall stuff! :) machine 'myapp1' do from_image 'myapp' end
- Creates a node with the name of the machine_image, which contains metadata like the username of the image. This makes things like AWS image registries possible.
-
Fix the no_converge convergence strategy (@johnewart)
-
SSH port forwarding improvements:
- Detects any IP on the localhost and forwards it--not just 127.0.0.1
- Binds to localhost on the remote side instead of 127.0.0.1, allowing for IPv6 communication
- Tries multiple ports--if the origin port is already taken, tries "0" (ephemeral).
-
Fix SSH race condition causing port forwarding to happen twice (and fail miserably)
-
Add Chef::Provisioning.connect_to_machine('mario')
- make winrm work again (@mwrock)
- add bootstrap_proxy as a convergence_option for when target machines require a proxy (@MrMMorris)
- fix machine_batch action :setup
- fix issue with default machine_batch names being non-unique across recipes
- Remove chef-provisioning-fog and chef-provisioning-vagrant as dependencies (install whatever things you want directly!)
- Fix ssl_verify_mode to work correctly when other HTTPS calls are made (@mwrock)
- Fix machine_file and machine_execute resources (@irvingpop)
- Fix issue where machines with different drivers could get default options from the global current driver
- fix local mode port forwarding on IPv6 hosts
- New Driver interface (see docs/ and blogs/ directories for documentation)
- New configuration (see docs/ and blogs/)
- get rid of annoying SSL warning (note: this turns off SSL verification, which was the default anyway)
- fix machine_batch error report to be less verbose
- fail when machine is being moved from driver to driver
- @marcusn disconnect from SSH when there is a problem
- fix SSH gateway code to honor any options given (@marcusn)
- Make machine_batch auto batching smarter (only batch things that have the same actions)
- Allow auto batching to be turned off with
auto_batch_machines = false
in recipes or config - Allow this:
machine_batch do machine 'a' machine 'b' end
- Allow this:
machine_batch do machines 'a', 'b', 'c' action :destroy end
- fix issue setting Hosted Chef ACLs on nodes
- fix local mode forwarding in mixed IPv4/IPv6 environments
- Fix crash with add_provisioner_options when provisioner_options is not yet set
- Fix a crash when uploading files in a machine batch
- Parallelism!
- All machines by default will be created in parallel just before the first "machine" definition. They will attempt to run all the way to converge. If they fail, add "with_machine_batch 'mybatch', :setup"
- Use "with_machine_batch 'mybatch'" before any machines if you want tighter control. Actions include :delete, :acquire, :setup, and :converge.
- Parallelizableness: chef-provisioning now stores data in the run_context instead of globally, so that it can be run multiple times in parallel. This capability is not yet being used.
- Preserve provisioner_output in machine resource (don't destroy it!!)
- SSH: Treat EHOSTUNREACH as "machine not yet available" (helps with AWS)
- Timeout stability fixes (makes EC2 a little stabler for some AMIs)
- Make write_file and upload_file create parent directory
- Add
files
andfile
attributes to themachine
resource - Fix
machine_execute
resource (@irvingpop) - Fix
machine :converge
action (thanks @double-z) - Make chef-client timeout longer by default (2 hours)
- Make chef_client_timeout a configurable option for all convergence strategies and provisioner_options
- Add
metal cp
command
- Add timeout support to execute
- Fix machine_file resource
- Add ohai_hints DSL to machine resource (@xorl)
- Bug: error! was not raising an error in the SSH and WinRM transports
- Transports: stream output automatically when in debug
- Support the :read_only execute hint (for Docker)
- Add more metal command lines (converge, update, delete)
- Add Chef::Provisioning.connect_to_machine(machine_name) method to get Machine object for a node name
- New machine_execute resource! (irving@chef.io)
- Experimental "metal" command line: metal execute NODENAME COMMAND ARGS
- Transport: Add ability to stream execute() for better nested chef-client debugging
- Change transport interface: add ability to rewrite URL instead of forwarding ports
- Vagrant and Fog provisioners moved to their own gems (chef-provisioning-vagrant and chef-provisioning-fog)
- Support for Hosted and Enterprise Chef (https://github.com/dafyddcrosby)
- Provisioner interface changes designed to allow provisioners to be used outside of Chef (doubt@chef.io)
- All Provisioner and Machine methods now take "action_handler" instead of "driver." It uses the ActionHandler interface described in action_handler.rb. In short:
- driver.run_context -> action_handler.recipe_context
- driver.updated_by_last_action(true) -> action_handler.updated!
- driver.converge_by -> action_handler.perform_action
- driver.cookbook_name -> driver.debug_name
- Convergence strategy: delete_chef_objects() -> cleanup_convergence()
- All Provisioner and Machine methods now take "action_handler" instead of "driver." It uses the ActionHandler interface described in action_handler.rb. In short:
- Ability to get back to a machine from a node (another Provisioner interface change) (doubt@chef.io):
- Provisioners must create a file named
chef_provisioning/provisioner_init/<scheme>_init.rb
. It will be required when a node is encountered with that scheme. It should call Chef::Provisioning.add_registered_provisioner_class(, ). For the provisioner_urlfog:AWS:21348723432
, the scheme is "fog" and the file ischef_provisioningprovisioner_init/fog_init.rb
. It should callChef::Provisioning.add_registered_provisioner_class('fog', Chef::Provisioning::Provisioner::FogProvisioner)
. - Provisioner classes must implement the class method
inflate(node)
, which should create a Provisioner instance appropriate to the givennode
(generally by looking atnode['normal']['provisioner_output']
)
- Provisioners must create a file named
- New
NoConverge
convergence strategy that creates a node but does not install Chef or converge. - Support for machine_file
group
,owner
andmode
attributes (@irvingpop) - SSH transport (ryan@segv.net): try to enable pty when possible (increases chance of successful connection). Set options[:ssh_pty_enable] to
false
to turn this off. Settrue
to force it (and fail if we can't get it)
- EC2: Make it possible for multiple IAM users to converge chef-provisioning on the same account
- Openstack: Openstack support via the Fog driver! (@cstewart87)
- EC2: Add :use_private_ip_for_ssh option, and use private ip by default if public IP does not exist. (@xorl, @dafyddcrosby)
- RHEL/Centos: fix platform detection and installation