# Schedule Playbook with crontab

**URL:** <https://forum.ansible.com/t/schedule-playbook-with-crontab/24968>\
**Category:** Ansible Project\
**Created:** [July 12, 2017, 4:03pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968 "2017-07-12T16:03:51Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Phil\_F](https://avatars.discourse-cdn.com/v4/letter/p/45deac/32.png) [@Phil\_F](https://forum.ansible.com/u/Phil_F)\
**Post date:** [July 12, 2017, 4:03pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/1 "2017-07-12T16:03:51Z")

</div>

Hi,

I am attempting to schedule a playbook to run every night to backup Cisco network device configs using crontab.

The playbook is a simple ios\_command task executing show run on the Cisco Devices.

The playbook works fine when I run it manually and I have got to the point where crontab is runs the playbook.

However when crontab runs the playbook the playbook is failing and the only output I can see is this:(from ansible.log)

2017-07-12 17:52:01,981 p=6113 u=root | ERROR! Extraneous options or arguments  
2017-07-12 17:54:02,232 p=6122 u=root | ERROR! Extraneous options or arguments  
2017-07-12 17:56:01,525 p=6131 u=root | ERROR! Extraneous options or arguments

As you can see this is every 2 minutes and for testing purposes crontab is running the playbook every 2 minutes.

crontab:  
\*/2 \* \* \* \* /usr/bin/ansible /home/ansibleuser/ansible/playbooks/ansible-playbook device\_bak\_2.yml

playbook which runs perfectly manually:

---

<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 12, 2017, 4:08pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/2 "2017-07-12T16:08:10Z")

</div>

bin/ansible is for Adhoc tasks, you want bin/ansible-playbook is for  
executing playbooks

this makes no sense:  
/usr/bin/ansible /home/ansibleuser/ansible/playbooks/ansible-playbook  
device\_bak\_2.yml

I think you want:  
/usr/bin/ansible-playbook /home/ansibleuser/ansible/playbooks/device\_bak\_2.yml

---

<div class="post-metadata">

**Author:** ![mail.philfriend](https://avatars.discourse-cdn.com/v4/letter/m/34f0e0/32.png) [@mail.philfriend](https://forum.ansible.com/u/mail.philfriend)\
**Post date:** [July 12, 2017, 5:44pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/3 "2017-07-12T17:44:06Z")

</div>



---

<div class="post-metadata">

**Author:** ![mail.philfriend](https://avatars.discourse-cdn.com/v4/letter/m/34f0e0/32.png) [@mail.philfriend](https://forum.ansible.com/u/mail.philfriend)\
**Post date:** [July 12, 2017, 5:45pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/4 "2017-07-12T17:45:46Z")

</div>

Thank you so much Brian, it works perfectly.

---

<div class="post-metadata">

**Author:** ![Day\_Man](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@Day\_Man](https://forum.ansible.com/u/Day_Man)\
**Post date:** [September 24, 2017, 4:11pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/5 "2017-09-24T16:11:09Z")

</div>

I am newbie at this, i know how to setup ansible playbooks and run them but i dont know how to schedule a task like backing up cisco configs like you are trying to do here. I dont know Crontab, how do i set it up and also does it use scripts as well? Please provide details. thank you!

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [September 25, 2017, 1:31pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/6 "2017-09-25T13:31:09Z")

</div>

ansible-playbook is a 'unix command line utility' you can schedule it  
in cron as you would do any other, just pass it the options it needs:

0 4 \* \* \* /usr/bin/ansible-playbook /path/to/mybackupplay.yml ....

Also, you can make your play an 'executable script' by setting the x  
permission bits on the playbook file and having ansible-playbook in  
the shebang:

#!/usr/bin/ansible-playbook

- hosts: localhost  
&nbsp;&nbsp;....

---

<div class="post-metadata">

**Author:** ![Day\_Man](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@Day\_Man](https://forum.ansible.com/u/Day_Man)\
**Post date:** [September 25, 2017, 1:40pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/7 "2017-09-25T13:40:32Z")

</div>

Brian,  
Please pardon my question it may sound stupid but i really want to learn this but dont have a grasp of this yet as i am very new to linux,  
where do i place this command " 0 4 \* \* \* /usr/bin/ansible-playbook /path/to/mybackupplay.yml … " is it going to be a file or i run it on the command line in ubuntu. maybe an example would make this a little more clear to me. maybe a simple yaml script and a cron job to run the yaml script on a schedule. if this is not too much to ask i will appreciate it a lot. thanks

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [September 25, 2017, 1:42pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/8 "2017-09-25T13:42:44Z")

</div>

That was a 'cron tab entry' .. not really an ansible thing, but a cron  
one. Before attempting such a task, you should get familiar with cron.

---

<div class="post-metadata">

**Author:** ![Day\_Man](https://avatars.discourse-cdn.com/v4/letter/d/b487fb/32.png) [@Day\_Man](https://forum.ansible.com/u/Day_Man)\
**Post date:** [September 25, 2017, 1:47pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/9 "2017-09-25T13:47:04Z")

</div>

you are right, Thanks

---

<div class="post-metadata">

**Author:** ![andres\_pinina](https://avatars.discourse-cdn.com/v4/letter/a/e68b1a/32.png) [@andres\_pinina](https://forum.ansible.com/u/andres_pinina)\
**Post date:** [June 24, 2018, 12:21pm UTC](https://forum.ansible.com/t/schedule-playbook-with-crontab/24968/10 "2018-06-24T12:21:05Z")

</div>

crontab -e
