| name | cinc-client |
| description | Manage infrastructure using cinc-client (FOSS Chef Infra Client). Use for: applying config, running recipes/roles, dry-run convergence, testing cookbooks, or debugging failures. Triggers on 'run cinc', 'converge', 'why-run', or 'cinc recipe'. |
cinc-client Skill
Cinc Client 18.6.2 at /bin/cinc-client. Config: /etc/cinc/client.rb. Chef server: https://spinoza.ekamai.net/organizations/ekamai. Local repo: /home/tcase/Sites/cinc/.
Common Operations
Apply configuration
sudo cinc-client
sudo cinc-client -z -j nodes/$(hostname).json
sudo cinc-client -z -o 'role[devmachine]'
sudo cinc-client -z -o 'recipe[base::packages]'
sudo cinc-client -z --why-run
sudo cinc-client --why-run
Useful flags
| Flag | Purpose |
|---|
-z | Local mode (uses /home/tcase/Sites/cinc/) |
-j FILE | Load node attributes from JSON |
-o RUNLIST | Override run list for this run only |
-W / --why-run | Dry run |
-l debug | Debug logging |
--once | Run once, ignore interval/splay |
-E ENV | Set environment |
Cookbook Development
Test Kitchen workflow (run inside cookbook dir)
cd /home/tcase/Sites/cinc/cookbooks/<name>
kitchen list
kitchen converge
kitchen verify
kitchen test
kitchen destroy
kitchen login
Version bumping
rake version:bump:patch
rake version:bump:minor
rake version:bump:major
Policyfile management
chef install Policyfile.rb
chef update Policyfile.rb
chef export Policyfile.rb
Repository Structure
/home/tcase/Sites/cinc/
├── cookbooks/ base, common, devmachine, desktop, pihole, remote, repos, ruby, nodejs, taskwarrior
├── roles/ debian_derivative, devmachine, desktop, ekamai, local_essentials, pihole, …
├── nodes/ per-machine JSON (ella, jaco, socrates, airweave, coltrane, …)
└── data_bags/ users/, cronjobs/, ekamai/, vault/
See references/repo-patterns.md for cookbook internals, recipe patterns, data bag usage, and role composition.
Node Management
knife node list
knife node show <nodename>
sudo cinc-client -z -j nodes/<hostname>.json
To add a new machine: create nodes/<hostname>.json with roles and attributes, then run the local-mode command above on that machine.
Debugging
sudo cinc-client -l debug 2>&1 | tee /tmp/cinc-debug.log
sudo cinc-client -z -o 'recipe[base::users]' -l debug
sudo cinc-client -z -j nodes/$(hostname).json --why-run -l debug
When a run fails, identify the failing resource and its cookbook/recipe. Use -l debug to see full resource execution and template rendering output.