AutoPilot - it's simple | Automate the setup of a new system with ease
Posted by Proper_Teach_6390@reddit | linux | View on Reddit | 34 comments
AutoPilot - It's simple.
AutoPilot is a free-to-use, well documented bash script (for both Debian and RHEL related operating systems) written by me meant to automate the process of setting up a new system.
It uses YAML for its configuration file, so it is very easy to set up, and you can create numerous configuration files for different occasions. (I like to call them "Profiles" 🙃)
Current available directives (v1.0.0):
- SELinux
- Users
- Run_Lines
- Installed_packages
- Plugins
- Network_Configuration
- Environment_configuration
- Cronjobs
- Repo
- Time
Use cases:
Use Case | Description |
---|---|
Educational Institutions | Educational institutions can leverage AutoPilot to quickly deploy standardized environments for students and faculty. |
Development Environments | Developers can use New System to configure their development machines with the necessary programming languages, libraries, frameworks, and tools. |
Personal Use | Individuals who frequently set up new machines or reinstall their operating systems can benefit from AutoPilot by automating the setup process. |
Testing and QA | AutoPilot automates test environment setup, providing quality assurance teams and testers with consistent, repeatable configurations and necessary tools. |
Temporary Setups | For temporary or event-based setups like trade shows or conferences, AutoPilot quickly prepares machines with the required software and settings, making deployment and management easier for short periods. |
Rescue and Recovery | When a system needs recovery or rebuilding after a failure, AutoPilot automates software reinstallation and settings reconfiguration, reducing the time to restore it to its original state. |
Company Deployment | A company can use AutoPilot to quickly configure new machines, ensuring consistent software and settings. This includes installing productivity tools, setting up configurations, and applying security policies. |
OS Migration | When switching operating systems, AutoPilot automates setup of applications, configurations, and settings, ensuring a smooth transition and minimizing manual reinstallation and reconfiguration. |
System Formatting | If you need to format and reinstall your operating system, AutoPilot handles post-installation setup. It automates software installation, configuration, and personalization, helping you get back to work faster. |
I hope someone could find this helpful 😁, if you want to request a new feature you can do that here.
Links:
jmantra623@reddit
I love it when somebody puts their time and energy into a project people immediately criticize "iTs jUst LikE aNsiBLe". A lot of people when they work on these projects are doing it in their spare time when they are not working their day jobs. I think this is very toxic trait in our community and it needs to stop. And before chimes in with "First time on the internet?", that is not an excuse.
OP, nice work on this, I love anything that has to do with automation and I love how well you documented it. A lot of Github repos I see lack good documentation.
jdigi78@reddit
It would be fine if fragmentation wasn't a huge problem in the open source community. Having a second implementation with no obvious benefits or different goals just wastes your effort that would be better spent improving the original.
pcs3rd@reddit
There's already ansible, nix, and rhel kickstart.
jdigi78@reddit
Are you implying those all serve the same purpose?
pcs3rd@reddit
To my knowledge, it's a bunch of different ways to create predictable installs.
jdigi78@reddit
Yes but they all serve different purposes and function very differently. This one could very well be vastly different, but at a glance it isn't. It's up to the dev to make the advantages of this over other options clear
jmantra623@reddit
So that makes it okay to trash someone's work?
jdigi78@reddit
Saying "Isn't this just like X?" is not trashing someone's work
sysadminchris@reddit
It isn't helpful.
jdigi78@reddit
Why do we need to be helpful? It's up to the developer to explain how their project is better than others.
jmantra623@reddit
So you don't look like an asshat who criticizes someone's work they have done for free. It's this exact attitude I am talking about in my original comment.
sysadminchris@reddit
You don't need to be helpful. You don't need to say anything if it doesn't contribute to the open source community as a whole. The dev put in their time and effort, gave us something, and you think they owe you an answer?! They don't owe you shit! What have you made you entitled prick?
S48GS@reddit
Reddit is public forum - where people compare and complain.
If you so soft and afraid of critical thinking and comments in the internet - dont use public forums and internet.
As software-developer and adult person - you should expect certain reactions and default behaviors in the internet.
Expecting that "people on reddit will compare your tool to similar" - is exact same as expecting wind when you go outside.
isaybullshit69@reddit
I've yet to look at the project itself but you mention cron-jobs. I've realised that systemd timers gives me more control over the timed jobs. You should look into it as an alternative to cron; just a tiny suggestion.
Proper_Teach_6390@reddit (OP)
Might as well create a new directive 🙃
What-A-Baller@reddit
Not to be confused with Windows Autopilot
Dennis_DZ@reddit
Copilot?
smithincanton@reddit
No, Microsoft has a device deployment automation called Autopilot.
https://learn.microsoft.com/en-us/autopilot/
Dennis_DZ@reddit
Oh, cool. I’ve never heard of that
EatMeerkats@reddit
Congratulations, you seem to have re-invented Ansible.
sysadminchris@reddit
Congratulations! You left an unhelpful snarky comment. What have you contributed to the open source community lately? You should share it here so we can tell you why you wasted your time.
sysadminchris@reddit
Not helpful unless your goal was to discourage someone's hard work and make yourself look like an ass. What have you built and given away lately?
TheMightyMisanthrope@reddit
Seems to be more focused and simpler than. I can't stand Ansible so, I'm glad people is working on alternatives. I wrote my own as well.
DisappointedLily@reddit
And? Are you so jealous to give an asinine comment instead of congratulations?
More alternatives and people working on free open source project is good, you are being toxic af with this juvenile shade.
x1-unix@reddit
NixOS moment
G4rp@reddit
Nice job but why I should use your Autopilot and not Ansible?
sysadminchris@reddit
I'd try it for the sole purpose of being written in bash. Instead of, "nice job but..." How about "Nice job! How does this compare to Ansible in its scope and implementation? What are its advantages and disadvantages?"
That could start an actual conversation. Instead what you've done only serves to belittle someone else's work while acting like they owe you an explanation. They don't.
sysadminchris@reddit
OP this is really cool. I was considering building something like this. I was considering building something like this as most other config tools are overly complicated for my taste. Now I can contribute to this instead!
jdigi78@reddit
Wouldn't an atomic distro serve these purposes? There's also Ansible and NixOS.
sysadminchris@reddit
Schmuck
sskg@reddit
All these people going on about previously-existing alternatives and... I dunno. I like this.
I get that Ansible is crazy powerful and all, but this being relatively simple and bash-based makes a lot of sense to me. I feel like I could use it to quickly set up a single new computer in my home office, or use it to automate stuff if I ever go back to managing multiple web servers.
And AutoPilot looks like it'll let me do it without Ansible's learning curve. And if I want to extend it, I mean, I'm already familiar with bash and YAML.
This won't be for everyone, but it looks fantastic for my personal use cases. So for everyone out there who's wondering who the target market is... It's me I guess.
Thanks for making it!
_AutomaticJack_@reddit
Does this support customized Initrd or commands passed to the kernel at boot time.
Sammeeeeeee@reddit
Very nice. Thanks
enesbala@reddit
I use nix btw