linuxmemes

This magazine is from a federated server and may be incomplete. Browse more on the original instance.

GiuEliNo, in interview on the frontier
@GiuEliNo@feddit.it avatar

Oh I never saw this one . Got a good laugh! Nice post!

pmjv, (edited )
@pmjv@lemmy.sdf.org avatar

Cheers! Find more over at !unix_surrealism

WeLoveCastingSpellz,

cool!

thisbenzingring,

SDF SDF!

caseyweederman,

Well I’m hooked

pmjv,
@pmjv@lemmy.sdf.org avatar

❤️

businessfish,
@businessfish@lemmy.blahaj.zone avatar

thank you for posting that here! love your stuff and wouldn’t have found it otherwise.

pmjv,
@pmjv@lemmy.sdf.org avatar

I’m grateful!

azvasKvklenko, in Ansible casually administering hundreds or thousands of devices

I love Ansible while hating when people touch it. Yes, it’s very flexible but at what cost? If you actually learn it and follow some basic guidelines, you can make beautiful playbooks and inventories having wonderful automation for even complex setups while keeping it clean. But if one doesn’t care and just try to make servers go brrr, it becomes horrific glorified shell script with everything hardcoded, most tasks unaware of changes they make, cesspool of shitty templates, breaking itself in minutes, being pain to work with and making me want to delete all the shit and start all over.

Technus,

I decided I wanted nothing to do with Ansible when I was half an hour into reading the website and I still didn’t have a fucking clue what it is or exactly what it does.

To this day, I couldn’t really tell you. It seems to be basically a framework for automatically SSH’ing into machines and running shell scripts on them which doesn’t sound robust in the slightest. It’s like they took thirty years of sysadmins’ discarded spit-and-duck-tape solutions and bundled them into a “framework”.

I dunno how the fuck you’re supposed to manage cloud infrastructure at scale with that.

azvasKvklenko,

It’s far more than just SSHing and running shell scripts. Besides, I wouldn’t ever call it a „framework”.

It’s a tool for Linux, BSDs and even Windows machine setup automation in a declarative fashion. Tasks are usually built out of wide range of provided modules for both universal actions (like file edits, templating, shell commands) and very specific ones (like Podman containers, Postgres users, indexes in Mongo, whatever you imagine, you can even implement your own in Python). Those tasks have logic that can detect the status for each of the tasks in each specified nodes, so they can not only be applied, but also dry run with precise diff tracking (diff of config files to be applied, packages to be installed, etc).

It has inventory that can be both static (config file), and dynamic (e.g query an AWS account for Ec2-s or get nodes from Proxmox) that lets you group your however many hosts (by purpose, etc), attach variables to specific hosts or entire groups, or even store encrypted credentials to use them in roles. When dealing with hundreds of hosts, at some point this is something you need to do anyway, but here it really shines even with much smaller amount of machines.

Ansible can be very reliable and provide awesome environments, but it requires some learning and due to its flexibility, it can also be used badly. I have some success stories with it in last 7 years of utilizing it for both small and big business.

That being said, if you want some magic hammer that just does stuff without requiring any understanding, Ansible might not be the thing.

And no, Terraform is not an replacement for Ansible and vice versa. Those two are designed for different purposes. I actually used them together in some projects.

Technus,

And no, Terraform is not an replacement for Ansible and vice versa. Those two are designed for different purposes. I actually used them together in some projects.

Yeah, that’s the problem. Every time infrastructure management came up, a certain coworker would always bring up Ansible. It eventually got kind of annoying.

CosmicTurtle,

Yup. I used ansible for a good year, maybe two, and found myself asking, “Why the fuck am I maintaining some abstract thing when I can just write a shell script and deploy that?”

Cloud orchestration is better done with other tooling. Honestly don’t see a use case for ansible beyond physical data center deployments.

darganon,

They installed it for us at work as part of a project, and we went to ask the ansible guy wtf we could use it for in a windows world, and he couldn’t articulate how it would be an improvement in any way over a scheduled task.

taladar,

To be fair it is not Ansible’s fault that Windows does pretty much everything differently from the systems Ansible was designed for.

darganon,

Agreed entirely.

moonpiedumplings, (edited )

It appeals to me for management of a windows machine for a few things:

  • Lots of machines at once, over winrm. Although ssh is the default, as ansible is linux first.
  • I don’t have to learn powershell - the shared language means the windows teams and the linux team don’t have to learn eachother’s language. In ansible, it’s very easy to avoid the footguns that come with something like bash, especially after you install the red hat linter, ansible-lint, which warns of ansible’s own footguns.
  • easy to version control it
  • premade stuff: the official “modules” are massive and do a lot. There are also community packages: galaxy.ansible.com - of course, you should probably check any stuff you run first. But ansible is very easy to read.
  • built in secret management. Encrypt secrets, but still be able to use them smoothly with the automation framework.

For just one machine? Task scheduler is probably good enough. 2-3 machines, managed remotely? Ansible is at least worth looking at.

Edit: also, really good docs. Like, check out this active directory module with examples: docs.ansible.com/…/object_info_module.html#ansibl…

The examples are very helpful, with things like getting a list of ad users. I used that to create a ansible script to shuffle all ad user passwords - while being a a linux lover who hates windows and has literally never touched ad before this.

github.com/CSUN-CCDC/CCDC-2023/blob/…/users.yml

github.com/CSUN-CCDC/CCDC-2023/blob/…/main.yml

azvasKvklenko,

Nice, I love it

timbuck2themoon, (edited )

There is a reason ansible exists and is widely used. Shell scripts are brittle and don’t account for a ton of use cases.

For instance- are you going to write a shell script to determine the OS family of a server? Are you then going to do a bunch of if statements for things you want run on Debian hosts vs RedHat ones vs. Alpine? Are you going to manually make templates yourself or just use jinja templates and the template module in ansible (and use variables easily gathered by the setup module)? Are you going to manually select which hosts you’re going to target or are you just going to use your ansible inventory that categorizes your machines based on location or purpose or whatever other arbitrary thing and use tags? Are you going to manually dig in and find out how many NICs are in a box, what IPs they have, what CPU, how many cores so you can set some service to use “X” amount of threads, define service templates using those machine variables, etc. etc. etc.? Are you going to make such well defined shell scripts that they can be reused over and over again against a variety of machines without breaking things and make it easy to include them in parent shell scripts?

This is all stuff ansible does quite easily.

It’s not the end all be all of course. Some would argue (maybe rightfully) that Puppet or Salt can maintain config drift a bit better. I would argue it’s not the tool to use for containerization really either. But it definitely has a real purpose in initial and maintained configuration management and in both cloud and on-prem deployments.

azvasKvklenko,

Building custom images for cloud can be one. Builtins have a lot of ready to use logic that you might want in your scripts anyway

MigratingtoLemmy,

Terraform for day 0 operations is a better experience but it had its quirks. Ansible is nice when it’s done well, but when you don’t have an Ansible module for something, you’re essentially writing a shell script

Technus, (edited )

Yeah, in contrast the value proposition for Terraform was immediately obvious. “Oh, you mean I don’t have to manually set up Kubernetes clusters and shit every time we want to deploy to a new region? Fucking sign me up!”

azvasKvklenko,

Or your own module in Python if it gets too complex to do with just Ansible docs.ansible.com/…/developing_modules_general.htm…

Neon, in Ansible casually administering hundreds or thousands of devices

NixOS Gang here

refreeze,
@refreeze@lemmy.world avatar

Yeah, it took a while getting deep into ansible hell for me to see the light.

fl42v,

More like nix in general. Unless you need to setup some windows crap

0x4E4F, in Ansible casually administering hundreds or thousands of devices
@0x4E4F@sh.itjust.works avatar

Meeh, someone had to do the job 🤷. It’s not like there is a more flexible solution out there.

stardreamer,
@stardreamer@lemmy.blahaj.zone avatar

stares at the intern’s 400 line bash script

There are totally more flexible options. Just don’t mind the front falling off. It’s totally normal!

0x4E4F,
@0x4E4F@sh.itjust.works avatar

400 line… amateur 😒…

slazer2au, in Ansible casually administering hundreds or thousands of devices

Quick, do another one but with Terraform.

bluey, (edited )

afaik, terraform does not allow you to manage the state of an OS. Think managing motd file or ensuring certain packages are installed.

You might like to try out pulumi.

beeng, (edited )

Terraform talks to “clouds”, where as Ansible talks to devices. Whilst clouds do have many devices, I feel like Ansible has a greater ability to absorb likeness/distinctiveness (ships), over a greater scale than terraform.

slazer2au,

Terraform isn’t limited to clouds. We use it for our onprem kit.

taladar,

I don’t use Terraform but from my understanding Terraform is more for “what kind of server hardware/VM/container/… do I want” and less “which configuration do I want on that server/VM/container/…”

slazer2au,

Which kinda sounds like the Borg.

Do we want a drone, an operative, or whatever 7 of 9 is.

MigratingtoLemmy,

Wait how? What do you use? I think I’ve seen a Terraform connector for Kubernetes but that’s about it

slazer2au,

There is esxi via vsphere, Hyper-V and Proxmox providers

MigratingtoLemmy,

Ah, thanks

ngn, in AMA
@ngn@lemy.lol avatar
  • how do i use cp
  • how do i kill all children of a parent
  • how do i remove orphans
0x4E4F, (edited )
@0x4E4F@sh.itjust.works avatar
  • The creepy pedo command can be used on any file, except PDF.

Regarding the rest, I think I have to call 911.

kplaceholder, in When Pokémon comes to Linux
@kplaceholder@lemmy.world avatar

I bought Cassette Beasts a few months ago but never got around to play it. I just want you to know that it was this post what made me finally play.

silverchase, (edited )
@silverchase@sh.itjust.works avatar

Cool! I hope you enjoy it. It’s such a heartful game and its battle mechanics add more depth to the formula.

nandeEbisu, in AMA

How do you exit vim, and more importantly why would you even want to exit vim?

0x4E4F,
@0x4E4F@sh.itjust.works avatar

You click on the X button. You’re done doing whatever it is you people do in this so called “vim”, and you close it, simple.

ICastFist, in AMA
@ICastFist@programming.dev avatar

Why is Windows playing nice with Linux nowadays?

0x4E4F,
@0x4E4F@sh.itjust.works avatar

What do you mean by nice, it doesn’t play nice at all, check all the “😭😭😭 Windows update broke GRUB” threads.

GregorTacTac, in AMA
@GregorTacTac@lemm.ee avatar

What’s a fork?

0x4E4F,
@0x4E4F@sh.itjust.works avatar

It’s an eating utensil.

GregorTacTac,
@GregorTacTac@lemm.ee avatar

How is Android a “fork” of Linux then?

0x4E4F,
@0x4E4F@sh.itjust.works avatar

Linux is an eating ustensil for Android… I don’t get the confusin.

GregorTacTac,
@GregorTacTac@lemm.ee avatar

So I eat android with Linux? Sounds about right

JargonWagon, in AMA

This post and your replies are amazing.

How can I Linux?

0x4E4F,
@0x4E4F@sh.itjust.works avatar

You can Linux with your frineds, with your coworkers, with your gf/wife/mistress… just about anyone that knows what a gagball and a buttplug is, but would like to take that experience to another level.

JargonWagon,

Perfect response as always. Thank you. Hearing about my friend’s job having some difficulties where there was some update on a Linux based device at stores and it’s causing all sorts of issues at the stores. I’m sure he would agree with your statement right now.

0x4E4F,
@0x4E4F@sh.itjust.works avatar

Meeh…shit happens, I know what it’s like as well 🤷. To the best of luck to your friend, may he troubleshoot without distractions… or some, from time to time, just to clear his head 😉.

GarlicToast, in AMA

What’s the effect of having rust in the kernel?

Nuage,

The code is less readable

0x4E4F, (edited )
@0x4E4F@sh.itjust.works avatar

You have to disassemble it, clean the rust, assemble it back and put some extra oil in it so it doesn’t get rusty again.

AwkwardTurtle, in AMA

How many boot loaders do I need to boot the loader?

GladiusB,
@GladiusB@lemmy.world avatar

42

0x4E4F, (edited )
@0x4E4F@sh.itjust.works avatar

To boot the load, you only need one bootloader, and that is your prostate. Have no idea how women boot the load.

mvirts, in AMA

What does the X stand for?

0x4E4F, (edited )
@0x4E4F@sh.itjust.works avatar

X is short for X-Rated. No person under the age of 18 is supposed to use X. Of course, this doesn’t mean that there are no documented cases of minors using X, which has seriously affected their mental health.

Batman, in AMA

If you cat a log, what would tail report?

b3an,
@b3an@lemmy.world avatar

Hey! I just saw the end of that!

0x4E4F, (edited )
@0x4E4F@sh.itjust.works avatar

First, you don’t “cat a log”, you “cut a log”. Second, tail will report that you’re not in the sudoers group.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • linuxmemes@lemmy.world
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #