Edited at

AnsibleでEC2を指定時間にシャットダウン


概要

個人管理しているEC2の料金を増やさないため、指定時間(深夜)に自動的に停止させたいです。

すでにcronを使って自動シャットダウンを実現している例がありましたので、Ansible化しました。


記述したいcron

SHELL=/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin:/opt/aws/bin
MAILTO=""

0 19 * * * shutdown -h now 2>&1 | logger -t shutdown -p local0.info


ansible

- name: Creates an entry "SHELL"

cron:
name: SHELL
env: yes
value: /bin/bash

- name: Creates an entry "PATH"
cron:
name: PATH
env: yes
value: /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin:/opt/aws/bin
insertafter: SHELL

- name: Creates an entry "MAILTO"
cron:
name: MAILTO
env: yes
value: ""
insertafter: PATH

- name: Create a job for shutdown
cron :
name: shutdown
user: root
minute: 0 # 停止時間を指定します
hour: 24 # 停止時間を指定します
job: shutdown -h now 2>&1 | logger -t shutdown -p local0.info


参考

CrontabでEC2を指定の時間にシャットダウンさせる - Qiita