The article does a great job of exampling chef here, but if you want to play around with it, I highly recommend checking out Vagrant too. Vagrant is an absolutely awesome way to play around with configuration management solutions via the provisioners mechanism [1]. You can easily test and learn puppet/chef/ansible/cfengine/docker/salt/etc. I've done a screencast on Vagrant [2], Learning puppet with Vagrant [3], but you could easily apply this to Chef too.
[1] https://docs.vagrantup.com/v2/provisioning/index.html
[2] https://sysadmincasts.com/episodes/4-vagrant
[3] https://sysadmincasts.com/episodes/8-learning-puppet-with-va...