Yep, use roles to describe the states and behaviors, and include those roles in multiple playbooks as appropriate.
If you have a configure.yml as a playbook, the "provision.yml" could just include it as the very last line of the playbook, making it easy to run things together using the "add_hosts" trick as described in (for example) the EC2 guide. http://docs.ansible.com/guide_aws.html On Tue, Jul 22, 2014 at 5:36 PM, Michael Peters <[email protected]> wrote: > I actually tackle this another way. I write provisioning playbooks > (not a role) that will create the server on the provider. And then > when it's finished, run some bootstrapping steps. After that is done, > use add_host to add it to the right group and then include the > role-level playbook. > > This way the roles don't need to know anything about provisioning. The > step to provision new servers is a different command and as soon as a > server is provisioned it's handed off to the appropriate roles to get > it configured. And because our inventory is dynamic the new server > will be included in subsequent runs too. > > On Tue, Jul 22, 2014 at 4:32 PM, itarchmerc <[email protected]> > wrote: > > What would be the best method to add reusable provisioning steps to > existing > > roles? I am looking to try and accomplish the following: > > > > Ideally this could be it's own role, or in some way reusable so I could > tie > > it to any role > > It would pull in all the needed parameters from group or host vars > > It would only be called if I sent something like ansible-playbook -e > > "provision=yes", otherwise the role would run as written without > > provisioning an instance > > I would like a way to easily extend this for additional providers (e.g. > EC2, > > VMWare, GCE, etc) > > > > I have been able to add provisioning steps into an existing role by > using a > > separate task, but I feel like there is a better and more reusable way to > > approach this. Please let me know if additional clarification is needed. > > Thanks. > > > > -- > > 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/0c4abae5-44b8-45fc-b825-95d45933d24d%40googlegroups.com > . > > For more options, visit https://groups.google.com/d/optout. > > -- > 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/CAJQqANd%3DS%2B8_Qo1iUoH07118iU64ePhmPz8b-bEDuS3mTrGw2A%40mail.gmail.com > . > For more options, visit https://groups.google.com/d/optout. > -- 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/CA%2BnsWgwa5L09yZ%3DPQaotKpHTu-wrS8-j5Jz8nD-mufkQxrJ8Fw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
