# Based on vendor have to execute playbook

**URL:** <https://forum.ansible.com/t/based-on-vendor-have-to-execute-playbook/35364>\
**Category:** Ansible Project\
**Created:** [June 17, 2021, 12:28am UTC](https://forum.ansible.com/t/based-on-vendor-have-to-execute-playbook/35364 "2021-06-17T00:28:54Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![NAVEEN](https://avatars.discourse-cdn.com/v4/letter/n/f07891/32.png) [@NAVEEN](https://forum.ansible.com/u/NAVEEN)\
**Post date:** [June 17, 2021, 12:28am UTC](https://forum.ansible.com/t/based-on-vendor-have-to-execute-playbook/35364/1 "2021-06-17T00:28:54Z")

</div>

Hello Team ,

I am having 3 vendors Ex :HP ,DELL ,Lenovo  
i have 3 separate playbooks  
Now i want to execute those based on vendor .If it is HP it should call Hp Playbook Likewise…Can some one please help.

---

<div class="post-metadata">

**Author:** ![Wei-Yen\_Tan](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/wei-yen_tan/32/4111_2.png) [@Wei-Yen\_Tan](https://forum.ansible.com/u/Wei-Yen_Tan)\
**Post date:** [June 17, 2021, 12:32am UTC](https://forum.ansible.com/t/based-on-vendor-have-to-execute-playbook/35364/2 "2021-06-17T00:32:08Z")

</div>

Use conditionals as in when

---

<div class="post-metadata">

**Author:** ![Thanh\_Nguyen\_Duc](https://avatars.discourse-cdn.com/v4/letter/t/c89c15/32.png) [@Thanh\_Nguyen\_Duc](https://forum.ansible.com/u/Thanh_Nguyen_Duc)\
**Post date:** [June 17, 2021, 1:19am UTC](https://forum.ansible.com/t/based-on-vendor-have-to-execute-playbook/35364/3 "2021-06-17T01:19:18Z")

</div>

You can see the vendor when gather facts and set condition when vendor = hp

---

<div class="post-metadata">

**Author:** ![vbotka](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/vbotka/32/359_2.png) [@vbotka](https://forum.ansible.com/u/vbotka)\
**Post date:** [June 17, 2021, 1:55am UTC](https://forum.ansible.com/t/based-on-vendor-have-to-execute-playbook/35364/4 "2021-06-17T01:55:11Z")

</div>

> Hello Team ,
> 
> I am having 3 vendors Ex :HP ,DELL ,Lenovo  
> i have 3 separate playbooks  
> Now i want to execute those based on vendor .If it is HP it should call  
> Hp Playbook Likewise..Can some one please help.

It's not possible to conditionally run a playbook from another  
playbook. Instead, rewrite the playbooks to roles for a  
particular HW. For example

> cat roles/role2/tasks/main.yml

- debug:  
&nbsp;&nbsp;&nbsp;&nbsp;msg: Runing on Dell

The playbook

- hosts: localhost  
&nbsp;&nbsp;gather\_facts: true  
&nbsp;&nbsp;vars:  
&nbsp;&nbsp;&nbsp;&nbsp;my\_hw: "{{ ansible\_system\_vendor.split().0 }}"  
&nbsp;&nbsp;&nbsp;&nbsp;my\_roles:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HP: role1  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dell: role2  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lenovo: role3  
&nbsp;&nbsp;tasks:  
&nbsp;&nbsp;&nbsp;&nbsp;- debug:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg: "{{ my\_hw }} is in in my\_roles: {{ my\_hw in my\_roles }}"  
&nbsp;&nbsp;&nbsp;&nbsp;- include\_role:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: "{{ my\_roles[my\_hw] }}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;when: my\_hw in my\_roles

gives

&nbsp;&nbsp;msg: 'Dell is in in my\_roles: True'  
&nbsp;&nbsp;msg: Runing on Dell
