- upload: make sure to reupload on config manager changes
- Apply suggestions by rubocop 1.39.0
- Chake::Connection: avoid setting constant inside of block
- rubocop: keep assignment to
test_files
in the gemspec - gemspec: set
spec.metadata['rubygems_mfa_required']
- Fix loading node data under ruby < 3.1
- itamae: use --sudo when root for local backend
- Chake::ConfigManager: fix typo
- chake/config: allow aliases in YAML data
- codespell: ignore tags file
- ChangeLog.md: fix typo found by codespell
- Implement new configuration manager: itamae-remote
- gemspec: drop bundler version constraint
- Chake::Wipe: improve wording in warning message
- chake/config: store the node definition file in the node data
- manpages: make sure all instances of ' are fixed
- rake nodes: format output by ourselves
- bootstrap/chef: exit if chef-solo is available
- Always bootstrap nodes
- Decrypt files in place when upload is not needed
- itamae: handle silent mode
- manpages: drop accute accent erroneously added by ronn
This release adds support for multiple configuration managers. Chef is now only one of the options. There is also now support for configuration management with itamae, and lightweight configuration management tool inspired by Chef, and via shell commands. This should be mostly transparent to current Chef users, but new repositories initiated by chake will use itamae by default.
Other notable changes:
- rake nodes: list configuration manager and format as table
- Chake::Connection: fix handling of stderr
- Rebootstrap nodes when changing config managers
- bootstrap, upload: skip when config manager does not need them
- Chake::Backend#run: don't strip leading whitespace
- Fix converge when the connection is not already made as root. This bug was introduced by the change in the previous release.
- converge, apply: allow removing data from the node JSON attributes
- check: give some feedback by running
sudo echo OK
instead ofsudo true
- Get rid of global variables
- bin/chake: make rake run one thread for each node
- Chake::Backend: run commands by opening a shell and writing to it
- Document Chake.nodes
- Protect node JSON files from other users
- add console task
- manpage: fix header transformation
- manpage: ignore intermediary .adoc file
- manpage: drop ad-hoc handling of
SOURCE_DATE_EPOCH
(let asciidoctor handle it)
- make rsync exclude extra directories who are created as root by chef-solo at the server side. This fixes the case where upload phase when the SSH user is not root.
- make
run
also capture stderr, for now mixed together with stdout. In the future that may be improved for example to print stderr output in red when running on a TTY.
- improve text in the parallel execution docs
- add new hook:
connect_common
, which will run before any attempt to connect to any node. - make output of
check
target more explicit about what was tested
- Fix typo in README.md
- thanks to Luciano Prestes Cavalcanti
- Turn "all hosts" tasks (converge, upload, bootstrap, run, apply) into multitasks. This will make them run in parallel.
- transmit decrypted files with mode 0400
- Use the Omnibus packages from Chef upstream on platforms where we don't have proper Chef packages from the OS official repository.
- Switch manpage build from ronn to asciidoctor
- Add ability to override the Chef configuration file by setting
$CHAKE_CHEF_CONFIG
(default:config.rb
) - bootstrap: ensure short hostname is in /etc/hosts
- bootstrap: make sure FQDN matches hostname
- Add
rake check
task to check SSH connectivity and sudo setup - Add tasks to apply a single recipe to nodes:
rake apply[recipe]
andrake apply:$NODE[recipe]
. If[recipe]
is not passed in the command line, the user is prompted for the recipe name. - run task changed to have the same interface and behavior as the new apply
task:
rake run[command]
, orrake run:$NODE[command]
. If[command]
is not passed in the command line, the user is prompted for the command.
- Fix check for modified files at the upload phase. Now chake will properly avoiding rsync calls when there is no changed files since the latest upload.
- Fix generated RPM spec file. Will now properly build, install, and work under both CentOS 7 and Fedora 22+.
- Collect test coverage statistics when running tests.
- Added dependency on simplecov
- actually implement support for custom ports in Node URL's. Despite being documented, that didn't actually work until now.
- Add hook functionality. See README/manpage for documentation.
- README.md: a few reviews
- fix manpage installation path
- fix build step for obs uploads
- add infrastructure to build and install a manpage
- Add support for a nodes.d/ directory; very useful when dealing with a larger amount of nodes.
- gemspec: minor improvements in the long description
- LICENSE.txt: fixed license name
- run: print small message before prompting
- Add history support for the
run
tasks - Abort
run
tasks if no command is provided
- gemspec: improve summary and description
- Also for encrypted files under $cookbook/files/, and not only under $cookbook/files/*/.
- Allow overriding tmpdir with
$CHAKE_TMPDIR
- Stop cloud-init from resetting the hostname
- Support a ssh prefix command by setting
$CHAKE_SSH_PREFIX
in the environment. For example,CHAKE_SSH_PREFIX=tsocks
will make all ssh invocations astocks ssh ...
instead of justssh ...
.
- Add a task login:$host that you can use to easily log in to any of your hosts.
- When running remote commands as root, run
sudo COMMAND
directly instead ofsudo sh -c "COMMAND"
. Under over-restrictive sudo setups (i.e. one in which you cannot run a shell as root),sudo sh -c "FOO"
will not be allowed.
- tmp/chake: create only when actually needed
- Control nodes files with
$CHAKE_NODES
- Don't always assume the local username as the remote username for SSH
connections:
user@host
: connect withuser@host
host
: connect withhost
(username will be obtained by SSH itself from either its configuration files or the current username)
- Redesign build of RPM package
- Output of command run on nodes is now aligned
- Change storage of temporary files from .tmp to tmp/chake
- The JSON node attributes files generated in tmp/chake are not readable
- SSH config file can now be controlled with the
$CHAKE_SSH_CONFIG
environment variable - Extra options for rsync can now be passed in the
$CHAKE_RSYNC_OPTIONS
environment variable - Chake::VERSION is now available in Rakefiles
- update test suite to use new rspec syntax instead the old one which is
obsolete in rspec 3.
- Thanks to Athos Ribeiro.
- rsync: exclude cache/ to work with the version of rsync in OSX
- Now finally, hopefully, really fix RPM builds
- chake init: rename 'myhost' → 'basics'
- The official home is on gitlab
- Completed basic documentation
- Fix setting hostname when bootstrapping
- Rakefile: do not allow releases without a changelog entry
- Now really fix RPM builds, hopefully
- Fix RPM build
- bootstrap: set hostname
- No functional changes
- Small changes to make chake compatible with Debian 7, and most of the RPM-based distributions