I promised some #Linux tips so here is the first one:
* AVOID USING SHELL SCRIPTS*
1. It is the matter of time when is will stop working. The point is that your script relies on some system state (files, programs, etc.), but it will change with an update. There is no more `ifconfig` for example.
2. The scripting language is ugly by itself. I can't remember how to write simple IF that checks command output. And error handling is a mess.
What instead? Stay tuned!
The most common use of shell scripts is automation of routine tasks. For this purpose I recommend using Ansible.
* Declarative (forget checks like "if dir not exist -> mkdir -p")
* Reusable (you can write roles and apply them to local machine or remote ones
* Testable (with https://molecule.readthedocs.io)
* Yet another framework you have to learn
* I faced some unpredictable behavior with async tasks ~2 years ago, maybe now it fixed
Try experimenting with it! It is fun and easy =)
The last one: Shell scripts in DOCKERFILE.
If you use docker a lot than probably at least one of the following is true:
1. You have images that are based on other images (and those are based on some other)
2. There are a lot of duplication in your Dockerfiles
The advise is simple: get rid of Dockerfiles entirely =)
There is a https://packer.io project that gives you an ability to create images from ansible playbooks directly. You can get the advantage of ansible roles and molecule tests!
This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either! We adhere to an adapted version of the TootCat Code of Conduct and follow the Toot Café list of blocked instances. Ash is the admin and is supported by Fuzzface, Brian!, and Daniel Glus as moderators. Hosting costs are largely covered by our generous supporters on Patreon – thanks for all the help!