# edX slides from NYC Ansiblefest

**URL:** <https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297>\
**Category:** Ansible Project\
**Created:** [May 21, 2014, 5:47pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297 "2014-05-21T17:47:34Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![John\_Jarvis](https://avatars.discourse-cdn.com/v4/letter/j/e47774/32.png) [@John\_Jarvis](https://forum.ansible.com/u/John_Jarvis)\
**Post date:** [May 21, 2014, 5:47pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/1 "2014-05-21T17:47:34Z")

</div>

Had a fantastic time at Ansiblefest NYC, kudos to the Ansible team!  
A few people asked me for edX slides during happy hour, here they are  
- [http://goo.gl/U3xNyL](http://goo.gl/U3xNyL)

---

<div class="post-metadata">

**Author:** ![Dick\_Davies](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Dick\_Davies](https://forum.ansible.com/u/Dick_Davies)\
**Post date:** [May 21, 2014, 6:10pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/2 "2014-05-21T18:10:06Z")

</div>

Good read John, thanks for sharing!

I particularly liked the profiling at the end of the play  
(N longest running tasks) - is that a straight Ansible plugin,  
or is there more to it than that?

---

<div class="post-metadata">

**Author:** ![John\_Jarvis](https://avatars.discourse-cdn.com/v4/letter/j/e47774/32.png) [@John\_Jarvis](https://forum.ansible.com/u/John_Jarvis)\
**Post date:** [May 21, 2014, 6:25pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/3 "2014-05-21T18:25:08Z")

</div>

It's a little bit more than just a plugin since we are controlling the  
Ansible run's output.  
What the plugin does is direct the Ansible status updates to a queue  
(SQS in AWS) and a python script pulls the messages from the queue to  
report the run status in the Jenkins console output.  
The python script that polls sqs retrieves the task details and task  
timing information so it keeps track of it and prints out a summary at  
the end.

This is the plugin that sends messages to sqs -  
[https://github.com/edx/configuration/blob/master/playbooks/callback\_plugins/sqs.py](https://github.com/edx/configuration/blob/master/playbooks/callback_plugins/sqs.py)  
poll\_sqs\_ansible() in this python script is what grabs the messages  
from sqs - [https://github.com/edx/configuration/blob/master/util/vpc-tools/abbey.py#L363](https://github.com/edx/configuration/blob/master/util/vpc-tools/abbey.py#L363)

Unfortunately sqs is not guaranteed FIFO so there is sliding window  
for messages which results in a delay for seeing the status updates.  
We are probably going to move away from SQS and switch to writing a  
callback plugin that sends messages to hipchat.

-John

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [May 21, 2014, 10:20pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/4 "2014-05-21T22:20:09Z")

</div>

This is pretty easy to get from an API script hitting Tower, for those that are inclined too 🙂

---

<div class="post-metadata">

**Author:** ![Brian\_Coca1](https://avatars.discourse-cdn.com/v4/letter/b/278dde/32.png) [@Brian\_Coca1](https://forum.ansible.com/u/Brian_Coca1)\
**Post date:** [May 21, 2014, 10:26pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/5 "2014-05-21T22:26:34Z")

</div>

I’ve been using this callback for play times:

[https://github.com/jlafon/ansible-profile/blob/master/callback\_plugins/profile\_tasks.py](https://github.com/jlafon/ansible-profile/blob/master/callback_plugins/profile_tasks.py)  
​

---

<div class="post-metadata">

**Author:** ![Brice\_Burgess](https://avatars.discourse-cdn.com/v4/letter/b/d2c977/32.png) [@Brice\_Burgess](https://forum.ansible.com/u/Brice_Burgess)\
**Post date:** [May 21, 2014, 10:58pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/6 "2014-05-21T22:58:31Z")

</div>

John,

Thanks for sharing. I especially enjoyed slide 11 ( [https://docs.google.com/presentation/d/1-AaITmG0\_d6O7NKXYb8ErOacvqBryFkEI7tHhb43uDo/pub?start=false&loop=false&delayms=3000#slide=id.g181a185a8\_06](https://docs.google.com/presentation/d/1-AaITmG0_d6O7NKXYb8ErOacvqBryFkEI7tHhb43uDo/pub?start=false&loop=false&delayms=3000#slide=id.g181a185a8_06) ) where you detail variable naming; UPPERCASE for overriding, lowercase for internal. Pretty awesome and well thought.

~ Brice

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [May 23, 2014, 12:13pm UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/7 "2014-05-23T12:13:58Z")

</div>

It’s overthinking it IMHO.

---

<div class="post-metadata">

**Author:** ![Dick\_Davies](https://avatars.discourse-cdn.com/v4/letter/d/b9e5f3/32.png) [@Dick\_Davies](https://forum.ansible.com/u/Dick_Davies)\
**Post date:** [May 27, 2014, 10:32am UTC](https://forum.ansible.com/t/edx-slides-from-nyc-ansiblefest/15297/8 "2014-05-27T10:32:01Z")

</div>

Thanks Brian, that's really helpful.
