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 / environment_overrides |
| System facts | Facter | Facts | Ohai | Grains | hard classes | Traits |
| Reusable unit | Class / Module | Role | Cookbook | Formula | Bundle | Module |
| Node classification | site.pp / ENC | Inventory | Run list | top.sls | promises.cf | nodes.vgo (first-match) |
| Agent model | Pull (30 min) | Push (SSH) | Pull (30 min) | Push / Pull | Pull (5 min) | 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 modules.
From Ansible
Push-to-pull shift. Playbooks → modules + roles. Jinja2 → Go templates. Handlers → notify/subscribes.
From Chef
Ruby DSL → YAML. 15 attribute levels → 3. Cookbooks → modules. Run list → roles.
From Salt
Both YAML-based. Pillar → vars. Grains → Traits. top.sls → nodes.vgo. Reactors → native integrations.
From CFEngine
Promise theory heritage. Classes → when: expressions. Bundles → modules. Augments → vars.
* Free tier is for evaluation purposes only and is provided AS IS with no support obligation. See Commercial Terms.