Tech Preview 1 features include:
- Building from source checkout (only)
- Local and SSH playbook support with live configuration and check mode (dry run) features
- Production-ready playbook output with summary statistics
- A fully featured module engine that enforces module correctness and enables efficient development of new modules in Rust
- Included modules with a slightly limited initial parameter set, including:
- apt, assert, copy, directory, dnf/yum, echo, facts (limited), fail, file, git, sd_service (systemd), shell, template
- Key language features
- Roles - similar to Ansible but streamlined
- Tasks and Handlers (subscribe/notify)
- A Variable system including "vars", "vars_files", and defaults
- Group selectors - note: these are intentionally not wildcard based
- Sudo support
- Ability to save the results of shell commands and use the results in other tasks
- Ability to load environment variables and work with secret managers
- Playbook logic such as "with/retry" and "with/items" (loops), tags, etc
- Well tested module support for:
- OS X
- "Enterprise Linux" variants (including dnf, yum)
- Debian/Ubuntu (including apt)
- A simple YAML-based on-disk text inventory format
- Support for dynamic inventory scripts and a new repository/project "jeti" for collecting inventory scripts.
- A "show-inventory" CLI command to explore inventory groups and hosts
- Ability to integrate with secret management tools
- Verbose flags (-v -vv, -vvv) for help in understanding playbook execution
- Control over --threads for SSH parallelization
Our plan is to follow up with Tech Preview 2 in about a month (so end of October or early November), and after that, semi-regular releases with a commitment to strong language stability. These Tech Preview 2 additions will likely include, but are not limited to:
- SSH-fanout multi-worker capabilities
- BSD support (likely community driven)
- ability to run external modules written in any language that accept and return JSON
- user and group modules
- improved fact support
- many more task keywords (for use with 'with' and 'and')
Planetary Scale features will be released after Tech Preview 2 and will be the main focus of this release.. At this point, the core program should not be considerd a preview (other than the new planetary scale feature itself) and commitment to strong language stability will be in full force.
The goal of Tech Preview 1 is to provide an opportunity for users to get familiar with the project, assess their interest in following future developments, provide help in testing and share ideas, and learn how the code works as we immediately begin working on Tech Preview 2.
We suggest avoiding assumptions that knowledge from other systems carries over completely as this is not a port of any other existing automation system!
Explanations are as follows:
- 1st Tier - Fully functional platform for a control machine. For target management, nearly all major functionality is covered, such as modules for the native package manager. Once user and group modules are added, this will include user and group module coverage in OS criteria.
- 2nd Tier - Fully functional platform for a control machine. May be missing some commonly used OS functions such as support for the native OS package manager, users, or groups. Once these are completed or contributed, these can happily move up to 1st tier. There is no desire to leave any popular Linux/Unix-like operating system at 2nd Tier.
- Untested/Future - platform will be a major target of support in future upcoming releases
- All Linux distributions - user and group support will be added in Tech Preview 2. Service management support already exists for distributions using systemd. So far (in Tech Preview 1) package management support has only been added for apt and yum/dnf, but support for all Linux distributions is equally welcome and make good OSS contributions.
- Mac OS X - no module for homebrew packages, no user and group support yet
- BSD - nothing done yet, but intended to be supported as a first class target
Levels of "facts" (variables determined by querying remote hosts, describing details about the hosts, which are mostly useful for conditional evaluation of playbooks) offered on platforms will alawys vary and be enhanced at different rates.
General purpose modules like template mostly just rely on basic POSIX details and work on all platforms and have no OS or distribution specific variance.