# Pre-requisite tasks

**URL:** <https://forum.ansible.com/t/pre-requisite-tasks/22341>\
**Category:** Ansible Project\
**Created:** [August 22, 2016, 9:52am UTC](https://forum.ansible.com/t/pre-requisite-tasks/22341 "2016-08-22T09:52:27Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dan\_Nestor](https://avatars.discourse-cdn.com/v4/letter/d/9fc29f/32.png) [@Dan\_Nestor](https://forum.ansible.com/u/Dan_Nestor)\
**Post date:** [August 22, 2016, 9:52am UTC](https://forum.ansible.com/t/pre-requisite-tasks/22341/1 "2016-08-22T09:52:27Z")

</div>

Hello everybody, this is my first post here.

I have a playbook that includes these tasks:

`

- name: Staging directory exists  
file:  
path: “{{ staging\_dir }}”  
recurse: yes  
state: directory

- name: “{{ java\_package }} is present in staging directory”  
copy:  
src: “{{ java\_package }}”  
dest: “{{ staging\_dir }}/{{ java\_package }}”

- name: “{{ java\_package }} is installed”  
yum:  
name: “{{ staging\_dir }}/{{ java\_package }}”  
state: present  
`

I would like to copy the file to the host only if needed, that is, the RPM in question is not already installed. Can I do this in Ansible?

Thanks!

Dan

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [August 22, 2016, 1:43pm UTC](https://forum.ansible.com/t/pre-requisite-tasks/22341/2 "2016-08-22T13:43:09Z")

</div>

- name: Check if package is installed  
&nbsp;&nbsp;&nbsp;command: rpm -q {{ java\_package }}  
&nbsp;&nbsp;&nbsp;register: package\_installed

- block:  
&nbsp;&nbsp;&nbsp;- name: Staging directory exists  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path: "{{ staging\_dir }}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;recurse: yes  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state: directory

&nbsp;&nbsp;&nbsp;- name: "{{ java\_package }} is present in staging directory"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copy:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src: "{{ java\_package }}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest: "{{ staging\_dir }}/{{ java\_package }}"

&nbsp;&nbsp;&nbsp;- name: "{{ java\_package }} is installed"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yum:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name: "{{ staging\_dir }}/{{ java\_package }}"  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state: present  
&nbsp;&nbsp;&nbsp;when: package\_installed.rc == 1
