Alright #DevOps tonight I'm starting a thread about trying out #Pulumi for the first time. This is an Infrastructure as Code tool with the pitch that you can write the code in the language of your choice ( https://www.pulumi.com/ ). I'll be comparing it to #Ansible which I have more experience with. I'll try porting a server I've defined with Ansible to Pulumi and see what my first impression is. First, I need to get installed and choose a language to code in. ๐Ÿงต
Infrastructure as Code Platform with Agentic AI โ€“ Pulumi

Pulumi is an infrastructure management platform to automate through infrastructure as code, secure with secrets management, and manage infrastructure with AI.

pulumi
Looks like my language choices for #Pulumi are limited to TypeScript, Python, Go, C#, or Java. I know TypeScript better, but I'm interested in learning more #Python so I'll choose that. Time to get Pulumi installed! ๐Ÿงต
@markstos I've been using Pulumi for personal infrastructure for some time but I'm always looking for perspectives on it, so I will be following your experience with interest!

@diazona You mean using Pulumi provision personal cloud infra. How are you defining what's inside your servers?

I don't really have any infra besides a Mac Mini in my basement running Linux, which I think is probably a poor fit for Pulumi. ๐Ÿ˜‚

@markstos heh, yeah ๐Ÿ˜‚ #Pulumi doesn't do that. I do use it exclusively for creating cloud resources, or occasionally things of a similar nature like Docker containers running on a host which had the Docker runtime installed and configured separately.

In order to get things installed on the servers after I provision them, I've historically mostly used shell scripts, although for new stuff I'm transitioning to cloud-init. Or in some cases I might separately (manually) prepare an image containing everything I want to wind up on the new server and use that.

For management of existing infrastructure I've been using #Pyinfra, which I like, although it doesn't have the wealth of predefined tasks/roles/playbooks that Ansible does. Someday I would like to integrate Pyinfra into my Pulumi usage.

#DevOps

@diazona I see the tagline for #PyInfra is "Think ansible but Python instead of YAML, and up to 10x faster."

Sounds nice, though I imagine it has much smaller ecosystem of pre-build idempotent roles and lookup modules than #Ansible does

@diazona Yeah, there's like 10 pyinfra packages on PyPI https://pypi.org/search/?q=pyinfra&page=1 vs like 37,000 roles published for Ansible... https://galaxy.ansible.com/ui/standalone/roles/
Client Challenge

@markstos Yeah, exactly. It's a pretty flexible framework and it does well at the basic stuff, but it's lacking in depth. (In my experience that's a mild inconvenience but not generally hard to work around if you care to put in the effort.)

One thing to bear in mind is that the Pyinfra devs favor building new functionality into Pyinfra itself rather than publishing it as separate plugins, at least if it's generic enough to be potentially useful to other people. So there may be things that Pyinfra includes but where the equivalent in Ansible is a separate package. Of course this doesn't change the fact that Ansible has a much larger ecosystem.

@diazona @markstos I saw a talk in FOSDEM and the guy was all "you need to talk to AWS, no problem, install boto3 and voilร ". It seemed like there is no integration.

I mean, one of the good things I see about Ansible is that it is very consistent, and if the module is well written, you get things like support for diff mode. PyInfra looked more like "we give you easy ssh and support for a few things and the rest is up to you", at least the way they talked about it.

@diazona @markstos ok, let me put it this other way: if you know of a good talk abut #PyInfra, please share the link :)

#Python

@mdione @markstos I would but personally I don't know of any talks about it at all.