Network Engineer here - Docker is required and helpful knowledge on this end as well. I started as a PHP Developer/Web Admin 15+ years ago, moved to networking for the stability. Docker lets me forget about a ton of the setup of my LAMP/LEMP/Node/Django/FastAPI/etc, whatever I'm running on and just worry about the development, the thing I'm building. All of my own infra has been migrated to Docker, or even k8s which can be overkill, but hey - when things fail, I care even less now, (unless it's the network) 

Best Regards, 
-Thomas Scott


On Dec 22, 2024 at 8:21:09 PM, "Snyder, Alexander J via PLUG-discuss" <plug-discuss@lists.phxlinux.org> wrote:
Hello!

>> You use Docker, from what I understand.
--->> I do use Docker in my Homelab, yes. Currently, I have the following containers running:
------>> My internal "Dashboard" - "Homepage" (https://gethomepage.dev/)
------>> Docker Update utility - "What's Up Docker" (https://getwud.github.io/wud/)
------>> Plex Metrics (https://docs.linuxserver.io/images/docker-tautulli/)
------>> TV Show NZB Client - Sonarr (https://docs.linuxserver.io/images/docker-sonarr/)
------>> NZB Download Agent - Sabnzb (https://docs.linuxserver.io/images/docker-sabnzbd/)
------>> Torrent Download Client - Transmission (https://docs.linuxserver.io/images/docker-transmission/)
------>> Movie NZB Client - Radarr (https://docs.linuxserver.io/images/docker-radarr/)
------>> Music NZB Client - Lidarr (https://docs.linuxserver.io/images/docker-lidarr/)
------>> Movie Download Client - Radarr << hallmark-radarr >>, this one setup specifically to download Hallmark Channel movies
------>> Plex Requests Client - OMBI (https://docs.linuxserver.io/images/docker-ombi/)
------>> Speedtest.net downloads client and DB trackr - Speedtest-Tracker (https://docs.linuxserver.io/images/docker-speedtest-tracker/)


>> You are a senior Linux admin, and I assume you are working with Ansible
--->> I am a Senior Automation Engineer working at APS (Arizona Power Company). I work exclusively with Ansible and Python. I work within the "Ansible Automation Platform", and APS (as well as many (most?) Enterprises) are deeply entrenched in the RedHat ecosystem.


>> to automate something that has to do with Linux servers.
--->> Yes, currently, our entire VM provisioning process is handled entirely in Ansible Playbooks -- and for the entirety of 2024, I was the lead developer on our effort to Automate the VM Provisioning process in Azure. Before our work, it would take the Azure team (two people) "about an hour or so" to create a VM ready for production -- this was an entirely manual process that made consistency very difficult from VM to VM. I am very proud to say that we've taken this "About an hour" Unicorn process in Azure to a 15-20 minute process that creates a production-ready Azure VM (proud papa spouting!).

>> I am a semi-retired old guy who is a PHP developer.  I use Ubuntu to
>> create local web servers for testing and development of PHP. I'm a
>> little rusty since I am just now taking the leap from CentOS to Ubuntu
>> for LAMP web servers. This requires PHP-FPM. I'm also a little rusty
>> with PHP since I have not done any real programming in several years.

>> Given my station, please tell me several things:

>> 1) How do I benefit from using Docker?
--->> My intention to show the Nginx/PHP demo showed that you can "ignore" all the non-php-related stuff and still have a solid development environment. At a minimum, it would allow you to speed up your PHP development because you wouldn't need to "worry" about all the naggy L*MP stuff. You could easily spin up a Nginx/PHP container (as in my demo), but you could have several containers, each targeting a different version of PHP to ensure backward (and forward) compatibility, and maybe test different configurations to see what benefits your application the best.

>> 2) How do I benefit from using Ansible?
--->> I use Ansible for all* (most) of my homelab configurations. This includes an Ansible Playbook that uses a JINJA Template to configure Docker Compose files consistently.
--->> The Docker Playbook does the following:
------>> name: Ensure the directory exists
------>>   path: "/opt/apps/{{ container_name }}"
------>> name: Ensure the Data directory exists
------>>   path: "/opt/apps/{{ container_name }}/data"
------>> name: Ensure the backup directory exists
------>>   path: "/opt/backup/containers/{{ container_name }}"
------>> name: Create the downloads directory
------>>   path: "/opt/apps/downloads/{{ container_name }}/"
------>> name: Create the Compose File (from a JINJA template)
------>>   dest: "/opt/apps/{{ container_name }}/{{ container_name }}-compose.yml"
------>> name: Insert block of text in the WhatsUpDocker file so it knows to monitor it for updates


>> 3) How would I use Ansible as a PHP developer?
--->> It could easily create a consistent development environment for you, execute a single playbook, and conjure docker containers with all your settings. Alternatively, you can set a bare VM and use Ansible to configure *EVERYTHING* to get started.

>> 4) What is the learning curve for Docker for someone like me?
--->> It is just another part of the technical puzzle, so if you struggle to onboard new technologies, much of Docker might be hard for you. Still, if you're the kind that can spend an afternoon reading a manual or watching some "NetworkChuck" videos on YouTube before you "get the gist," it'll probably come quickly.  I "forced" myself into docker in 2023 after being staunch VMWare "a-VM-for-every-appliction." I paid $7xx for my own vSphere/vCenter license and was doing that for many years. I bought a cheap-refurbished DELL r530 1U server specifically to be my "Docker Host" while I worked through the trenches of "Figuring out" Docker. It turned out to be extremely simple (for me), and within 30 days, I had completely converted from my "a-VM-for-every-appliction" mindset over to a "container-for-everything" approach.

>> 5) What is the learning curve for Ansible for someone like me?
--->> So, I think "Ansible" itself is the "easiest-to-onboard" automation technology I've worked with. I've worked with Puppet (yuk!), Chef (vomit!), and now Ansible (yum!). It is based on YAML, which is very simple to get the hang of. I knew nothing of YAML but had figured out the basics in a weekend. I've built on "the basics" since I started with it in 2020. At its core, Ansible is based on Python, which also makes it easy (I'm a huge fan of Python, and I utterly despise and hate "Ruby").

I'm happy to help anyone get on board with the basics of Docker and/or Ansible. Just let me know!
--
Thanks,
Alex.




On Sun, Dec 22, 2024 at 1:13 PM Keith Smith via PLUG-discuss <plug-discuss@lists.phxlinux.org> wrote:
Alexander J Snyder,

You use Docker from what I understand.

You are a senior Linux admin and I assume you are working with Ansible
to automate something to do with Linux servers.

I am a semi-retired old guy who is a PHP developer.  I use Ubuntu to
create local web servers for testing and development of PHP. I'm a
little rusty since I am just now taking the leap from CentOS to Ubuntu
for LAMP web servers. This requires PHP-FPM. I'm also a little rusty
with PHP since I have not done any real programming in several years.

Given my station please tell me several things:

1) How do I benefit from using Docker?

2) How do I benefit from using Ansible?

3) How would I use Ansible as a PHP developer?

4) What is the learning curve for Docker for someone like me?

5) What is the learning curve for Ansible for someone like me?

Thanks!!
Keith
---------------------------------------------------
PLUG-discuss mailing list: PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss
---------------------------------------------------
PLUG-discuss mailing list: PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss