Hi,

I’ve spent this last couple of months experimenting extensively with
Ansible. So far I’ve only worked on a series of VMs using Vagrant and KVM
on my workstation. I’ve become reasonably proficient with ansible.cfg,
inventory files and playbooks. I’ve already written my first roles and know
how to properly organize them in a directory subtree with tasks, files,
handlers etc. Looks like I’m beginning to wrap my head around this, though
I must say Ansible is a hell of a beast and the learning curve is quite
steep.

I feel the time has become to use it for my everyday work. Before I dive
head first into using inventories and playbooks and roles for my everyday
work, I’m facing the following problem. *How do I organize all this wealth
of files to come intelligently?* How will all this look like in a year? How
can I avoid having myriads of redundant playbooks scattered all over
semi-redundant Git repositories?

I’ve given this some reflection for a couple days, and here’s what I came
up with.

*1*. One central Git repository where I store pretty much *everything
except roles*. Here’s what this would look like:

$ tree -F
.
├── campanula/
│   ├── ansible.cfg
│   ├── inventory
│   └── roles/
├── dedibox/
│   ├── ansible.cfg
│   ├── inventory
│   └── roles/
├── microlinux/
│   ├── alphamule.yml
│   ├── ansible.cfg
│   ├── inventory
│   ├── nestor.yml
│   ├── proxy.yml
│   └── roles/
└── scholae/    ├── ansible.cfg
    ├── inventory
    ├── pc-direction.yml
    ├── pc-info.yml
    ├── portable.yml
    ├── proxy.yml
    ├── roles/
    ├── sauvegarde.yml
    └── serveur.yml

A little explanation on what is what here:

   - microlinux is my own office, with a proxy, a backup server and my main
   workstation.
   - scholae is our local school with about three dozen machines (servers,
   desktop clients, laptops) all running Rocky Linux
   - campanula is a small company in Belgium
   - dedibox is the directory for all my public Internet-facing server

*2*. All these various playbooks use a series of roles. I would store all
the roles separately in another Git repository and aim for reusability. So
I would have something like a rockylinux-8-roles repo containing a series
of roles like configure_shell, configure_repos, update_system, install_base,
install_extras, etc.

Notice the directory tree above has a series of empty roles/ directories.
Now this is where I would import the roles from GitHub (with the
corresponding .gitignore files of course).

So far this makes sense to me in theory, but before diving into this, I
thought I’d share this idea with you. I’m curious about your way of doing
things and your eventual suggestions.

Cheers from the sunny South of France,

Niki

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAOqXw4POnPaBPksReBf4y6HKL9dmXp-kDD7_xm-LNzar9-5NzQ%40mail.gmail.com.

Reply via email to