9

Clearing Rails Log Files on AWS with Ansible

 3 years ago
source link: https://fuzzyblog.io/blog/aws/2016/12/02/clearing-rails-log-files-on-aws-with-ansible.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Clearing Rails Log Files on AWS with Ansible

Dec 2, 2016

If you are reading this and you've read more than a few things I've written then you know that I'm, well, a wordy son of a bitch. I mean come on – did you see the post on AWS Partition Resizing? I took like 7800 words to say "can't do it" – apologies.

Anyway the digression into wordiness is because like me, Rails log files are wordy son's of bitches – the number of times in my career that I've had to log into a box and do the log dance:

bundle exec rake log:clear

has to be measured in the hundreds if not thousands. This morning I finally got mad enough to automate it with Ansible. Here's how:

playbook: playbook_logs_clear_rails_logs.yml

#
# MONDAY ansible-playbook -i ec2.py playbook_logs_clear_rails_logs.yml
# ansible-playbook -i inventories/production2 playbook_logs_clear_rails_logs.yml
#
---
  
- hosts: worker
  become: yes
  remote_user: ubuntu
  gather_facts: true
  vars: 
    - app_path: /var/www/apps/banks/current
  roles:
    - { role: logs_clear_rails_logs, tags: logs}

role: 
folder: logs_clear_rails_logs
file: tasks/main.yml

---
- name: logs_clear_rails_logs
  shell: "cd  && bundle exec rake log:clear"

Here are the results:

ansible-playbook -i inventories/production2 playbook_logs_clear_rails_logs.yml

PLAY [worker] ******************************************************************

TASK [setup] *******************************************************************
ok: [fiworkerbig]
ok: [fiworker5]
ok: [fiworker3]
ok: [fiworker6]
ok: [fiworker4]
ok: [fiworker9]
ok: [fiworker8]
ok: [fiworker11]
ok: [fiworker10]
ok: [fiworker7]

TASK [logs_clear_rails_logs : logs_clear_rails_logs] ***************************
changed: [fiworker3]
changed: [fiworker6]
changed: [fiworker5]
changed: [fiworker4]
changed: [fiworkerbig]
changed: [fiworker7]
changed: [fiworker8]
changed: [fiworker9]
changed: [fiworker10]
changed: [fiworker11]

PLAY RECAP *********************************************************************
fiworker10                 : ok=2    changed=1    unreachable=0    failed=0
fiworker11                 : ok=2    changed=1    unreachable=0    failed=0
fiworker3                  : ok=2    changed=1    unreachable=0    failed=0
fiworker4                  : ok=2    changed=1    unreachable=0    failed=0
fiworker5                  : ok=2    changed=1    unreachable=0    failed=0
fiworker6                  : ok=2    changed=1    unreachable=0    failed=0
fiworker7                  : ok=2    changed=1    unreachable=0    failed=0
fiworker8                  : ok=2    changed=1    unreachable=0    failed=0
fiworker9                  : ok=2    changed=1    unreachable=0    failed=0
fiworkerbig                : ok=2    changed=1    unreachable=0    failed=0

Right now this is working with a static inventory file. If anyone expresses interest, on Monday, I'll publish a revised version which uses the python boto module to clear log files based on all boxes on EC2 dynamically matching a criteria like a name tag.


Posted In: #aws #ansible #logs #rails


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK