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.

Reply via email to