Migration Guides
Moving from Puppet, Ansible, Chef, Salt, or CFEngine? These guides map the concepts you already know to their Vigo equivalents.
Concept mapping
| Puppet | Ansible | Chef | Salt | CFEngine | Vigo | |
|---|---|---|---|---|---|---|
| Config language | Puppet DSL | YAML + Jinja2 | Ruby DSL | YAML + Jinja2 | CFEngine DSL | YAML (.vgo) |
| Data lookup | Hiera | host/group vars | Attributes | Pillar | augments | vars / common.vgo / environments.vgo |
| System facts | Facter | Facts | Ohai | Grains | hard classes | Traits |
| Reusable unit | Class / Module | Role | Cookbook | Formula | Bundle | Configcrate |
| Node classification | site.pp / ENC | Inventory | Run list | top.sls | promises.cf | envoys.vgo (first-match) |
| Agent model | Pull (30m) | Push (SSH) | Pull (30m) | Push / Pull | Pull (5m) | Pull (configurable) |
| Secrets | hiera-eyaml | Vault | Data Bags | GPG pillar | cf-secret | secret: prefix |
| Ordering | require/before | task order | notifies | requisites | normal order | depends_on / before DAG |
Choose your starting point
From Puppet
Closest conceptual match. Pull-based, catalog compilation, resources, Facter → Traits. Manifests → YAML configcrates.
From Ansible
Push-to-pull shift. Playbooks → configcrates + roles. Jinja2 → Go templates. Handlers → notify/subscribes.
From Chef
Ruby DSL → YAML. 15 attribute levels → 3. Cookbooks → configcrates. Run list → roles.
From Salt
Both YAML-based. Pillar → vars. Grains → Traits. top.sls → envoys.vgo. Reactors → native integrations.
From CFEngine
Promise theory heritage. Classes → when: expressions. Bundles → configcrates. Augments → vars.
Ready to switch?
Free for up to 100 nodes.* Try it alongside your existing CM.
* Free tier is provided AS IS with no support obligation. See Commercial Terms.