Consider splitting your site.yml up into smaller files all included from
site.yml, and just using those, or usings tags.


On Mon, Mar 17, 2014 at 8:34 PM, Mikhail Koshelev <[email protected]>wrote:

> Hi James,
>
> You may consider to use tags with include:
> http://docs.ansible.com/playbooks_tags.html
>
> - include: deploy.yml tags=deployment
>
>
> Then, to perform deployment only:
>
> ansible-playbook example.yml --tags "deployment"
>
>
> And to perform everything else except deployment:
>
> ansible-playbook example.yml --skip-tags "deployment"
>
> The downside is you have to explicitly disable deployment tag for default 
> run. Probably not much of an issue if used in script.
>
>
> On Friday, March 14, 2014 1:34:55 PM UTC-7, James Goodhouse wrote:
>>
>> I'd like to be able to run a role and, by default, exclude the code
>> deployment portion. I'd also like to be able to deploy the code without
>> running any other tasks.
>>
>> I could include a line in the main.yml file for my project role that
>> would only include the deploy.yml file when the deploy_code variable is
>> true. Something similar to below:
>>
>>     - include: deploy.yml
>>       when: "deploy_code"
>>
>> To deploy code, I would run a command like the following:
>>
>>     ansible-playbook site.yml --extra-vars "deploy_code=true"
>>
>> The problem with this is that my site.yml file has several other entries
>> besides just my project role. The same is true for my project role's
>> main.yml - it contains other includes besides the deploy.yml. So if run the
>> above command, yes my code will deploy, but every other task will also run,
>> which I don't want to have happen.
>>
>> Does that make things clearer at all?
>>
>> On Friday, March 14, 2014 12:33:48 PM UTC-7, Michael DeHaan wrote:
>>>
>>> "The problem with that is that code deployment would be accompanied by
>>> all of the other tasks for provisioning the server, which is no bueno."
>>>
>>> I don't understand this part, can you elaborate?
>>>
>>>
>>> On Fri, Mar 14, 2014 at 3:30 PM, James Goodhouse <[email protected]>wrote:
>>>
>>>> I'm aware that I can do that, and have been thinking I might try to
>>>> implement some sort of variable to determine if I include my deploy.yml
>>>> file. This solution would work in that code wouldn't deploy unless I
>>>> explicitly set that variable via the command line. The problem with that is
>>>> that code deployment would be accompanied by all of the other tasks for
>>>> provisioning the server, which is no bueno.
>>>>
>>>>
>>>> On Friday, March 14, 2014 10:33:51 AM UTC-7, Michael DeHaan wrote:
>>>>
>>>>> So the task file roles/foo/tasks/main.yml is always loaded, however
>>>>> this pattern is common:
>>>>>
>>>>> main.yml:
>>>>>
>>>>> ----
>>>>> - include: debian.yml
>>>>>   when: "ansible_os_family == 'Debian'"
>>>>>
>>>>> - include: redhat.yml
>>>>>   when: "ansible_os_family == 'RedHat'"
>>>>>
>>>>> - include: common.yml   # all the time without conditionals.
>>>>>
>>>>>  Hope this helps!
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Mar 14, 2014 at 1:25 PM, James Goodhouse <[email protected]>wrote:
>>>>>
>>>>>> When specifying a role to use in a playbook, is it possible to target
>>>>>> a different file other than main.yml? I ask because I'm struggling to 
>>>>>> find
>>>>>> the proper way to layout a playbook and role for my project.
>>>>>>
>>>>>> Currently I have roles created for common tasks like nginx, mysql,
>>>>>> varnish, etc. I also have a role created specifically for my project.
>>>>>> Inside that role I handle things like installing project specific things
>>>>>> like APC, memcache, etc. These are each handled by a separate file that 
>>>>>> is
>>>>>> included in the main.yml. I also have a file for deployment that is also
>>>>>> included in the main.yml. However, I don't really want to have code 
>>>>>> deploy
>>>>>> each time I provision a server.
>>>>>>
>>>>>> My thought was to create a deploy.yml file in the root and somehow
>>>>>> include the role for the project, but just the deploy portion.
>>>>>>
>>>>>> How are people handling this with their projects?
>>>>>>
>>>>>> --
>>>>>> 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/445571b4-e587-4216-83fe-a8252d72c576%
>>>>>> 40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/445571b4-e587-4216-83fe-a8252d72c576%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> 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/1d7937f5-42dd-40ef-962b-
>>>> a7e40a828227%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/1d7937f5-42dd-40ef-962b-a7e40a828227%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>> 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/a95f89be-ea37-4bfb-902a-0687d69359dd%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/a95f89be-ea37-4bfb-902a-0687d69359dd%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> 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/CAEVJ8QOot37NwnDnjLhPFqfUXo5xTKVXpRUcdqpvuZHsdFwcmA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to