# Create Dynamic Array Based on OS?

**URL:** <https://forum.ansible.com/t/create-dynamic-array-based-on-os/18704>\
**Category:** Ansible Project\
**Created:** [July 7, 2015, 5:33pm UTC](https://forum.ansible.com/t/create-dynamic-array-based-on-os/18704 "2015-07-07T17:33:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Joaquin\_Menchaca](https://avatars.discourse-cdn.com/v4/letter/j/d2c977/32.png) [@Joaquin\_Menchaca](https://forum.ansible.com/u/Joaquin_Menchaca)\
**Post date:** [July 7, 2015, 5:33pm UTC](https://forum.ansible.com/t/create-dynamic-array-based-on-os/18704/1 "2015-07-07T17:33:22Z")

</div>

Hello. I am new to Ansible. Is there a way to create a dynamic array called packages.

I currently have the following blow, but I would like to just have it called packages, depending on debian or redhat, and if another OS, packages is empty.

vars:

- packages\_debian:
- dash
- bash
- ksh
- tcsh
- gawk
- perl
- python
- php5-cli
- ruby
- tcl8.5
- packages\_redhat:
- dash
- bash
- ksh
- tcsh
- gawk
- perl
- python
- php-cli
- ruby
- tcl

---

<div class="post-metadata">

**Author:** ![Joaquin\_Menchaca](https://avatars.discourse-cdn.com/v4/letter/j/d2c977/32.png) [@Joaquin\_Menchaca](https://forum.ansible.com/u/Joaquin_Menchaca)\
**Post date:** [July 7, 2015, 5:47pm UTC](https://forum.ansible.com/t/create-dynamic-array-based-on-os/18704/2 "2015-07-07T17:47:58Z")

</div>

I solved it, but if there is better solution for this.

vars:

- packages:
- dash
- bash
- ksh
- tcsh
- gawk
- perl
- python
- php5-cli
- ruby
- tcl8.5  
when: ansible\_os\_family == “Debian”
- packages:
- dash
- bash
- ksh
- tcsh
- gawk
- perl
- python
- php-cli
- ruby
- tcl  
when: ansible\_os\_family == “RedHat”

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [July 7, 2015, 9:07pm UTC](https://forum.ansible.com/t/create-dynamic-array-based-on-os/18704/3 "2015-07-07T21:07:28Z")

</div>

test again, this should just make the 2nd definition overwrite the  
first, you can do this with include\_vars: "{{ansible\_os\_family}}.yml"  
and have the definition of each in a file or you can do this:

&nbsp;&nbsp;vars:  
&nbsp;&nbsp;&nbsp;&nbsp;- packages:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debian:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- dash  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- bash  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- ksh  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- tcsh  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- gawk  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- perl  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- python  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- php-cli  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- ruby  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- tcl  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Redhat:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- dash  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- bash  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- ksh  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- tcsh  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- gawk  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- perl  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- python  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- php5-cli  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- ruby  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- tcl8.5

and access it via packages[ansible\_os\_family]
