### Install Chef Workstation * macOS, Windows, RHEL, Ubuntu: https://docs.chef.io/workstation/install_workstation/ * Arch Linux: https://aur.archlinux.org/packages/chef-workstation #### rbenv If you use rbenv to manage Ruby versions on your system, install the (rbenv-chef-workstation)[https://github.com/docwhat/rbenv-chef-workstation] plugin. ### Install gem dependencies bundle install ### Bootstrap a new server knife zero bootstrap root@dev.kosmos.org --run-list "recipe[kosmos-base],..." -j '{"example_cookbook":{"memory_max":"256M"}}' --secret-file .chef/encrypted_data_bag_secret ### Bootstrap a new VM knife zero bootstrap ubuntu@zerotier-ip-address -x ubuntu --sudo --run-list "recipe[kosmos-base]" --secret-file .chef/encrypted_data_bag_secret ### Run Chef Zero knife zero converge name:dev.kosmos.org ### Run Chef Zero on a VM knife zero converge -a knife_zero.host name:vm-name-23 ### Update Chef Client on a server: knife zero converge name:dev.kosmos.org --client-version 15.3.14 ### Managing cookbooks Cookbooks are managed via Berkshelf. Run `berks --help` for command help. Install cookbooks listed in Berksfile: berks install Vendor installed cookbooks to the `cookbooks/` dir: berks vendor cookbooks/ --delete ### "Expired" TLS certificates If you encounter expired TLS certificates during a Chef run (e.g. for remote files), the issue is likely that the certificate has been issued by Let's Encrypt and Chef is still using its own, outdated CA cert store (see [here](https://github.com/chef/chef/issues/12126#issuecomment-932067530) for example). As a hotfix, you can manually remove the "DST Root CA X3" cert from `/opt/chef/embedded/ssl/cert.pem` on the machine you're trying to converge.