Dozer: Migrating Shell Commands to Ansible Modules via Execution Profiling and Synthesis
Eric Horton, Chris Parnin

TL;DR
Dozer automates the migration of shell commands to Ansible modules by profiling system calls, enabling scalable configuration management and reducing the learning curve for developers.
Contribution
It introduces a novel technique that traces and compares system calls to automatically generate Ansible tasks from shell commands, generalizable to other platforms.
Findings
Successfully migrated shell commands to Ansible modules in open source datasets.
Demonstrated accuracy in identifying equivalent Ansible modules for shell commands.
Achieved scalable and syntax-agnostic migration process.
Abstract
Software developers frequently use the system shell to perform configuration management tasks. Unfortunately, the shell does not scale well to large systems, and configuration management tools like Ansible are more difficult to learn. We address this problem with Dozer, a technique to help developers push their shell commands into Ansible task definitions. It operates by tracing and comparing system calls to find Ansible modules with similar behaviors to shell commands, then generating and validating migrations to find the task which produces the most similar changes to the system. Dozer is syntax agnostic, which should allow it to generalize to other configuration management platforms. We evaluate Dozer using datasets from open source configuration scripts.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Advanced Software Engineering Methodologies
