I'm working on a small Ansible project that's a little outside its primary 
use-case. I'm automating the generation of new web projects in a Mac OS X 
dev environment. There are two objectives:

1.) Install all development tools on the local machine
2.) Compose various projects based on small component roles/tasks

As a simple example, if you run the main playbook, it will prompt you for a 
project folder, install Sublime Text, NodeJS, etc., and set up all the 
basic files needed to begin working on a new project. Here's a subset of my 
project folder:

ansible-generator
  |- main.yml <-- Main playbook
  |- apps
     |- nodejs
        |- tasks,vars,defaults,etc.
     |- sublime
  |- scaffolds
     |- git
     |- node
     |- vagrant
  |- install
     |- dmg.yml


Everything under both apps and scaffolds are roles. 'apps' install local 
dev tools, and 'scaffolds' uses templates to set up and modify new project 
files (package.json, Vagrantfile, .gitignore, etc.)

I have a couple questions:

1.) Could this entire project be turned in to a role itself and be 
distributed on Ansible Galaxy, given its different project layout and 
different use-case? Since this is a project built using lots of small 
sub-roles, how could I run all those dependent roles from tasks/main.yml?

2.) The roles in the /apps folder need to reference tasks under the 
/install folder. Right now I have to use relative paths like 
"../../../dmg.yml". I'd rather set up a variable further up and just use 
"{{ installers }}/dmg.yml", but without just setting this variable to 
"../../.." What's the best way to get the absolute path to the root of this 
project? The playbook_dir variable always returns "."

3.) Any other thoughts on organizing my project? Is it reasonable to have 
roles in both /apps and /scaffolds or does this seem unwieldy compared to 
putting everything under a /roles folder?

Thanks! If you'd like to take a closer look at my project you can find it 
here: https://github.com/rvangundy/ansible-generator

-- 
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/647cf28d-77cc-4ebf-84db-ec87659fe0a7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to