Ansible は、環境を変更して、定義されたように見えるように構成するためのツールです。そのため、それが行うほとんどすべては純粋に前述の変更を実行するためのものであり、他のモジュールが変更できるようにするための事実収集以外に変更を行わないモジュールはほとんどありません。
そのため、Ansible を使用して資産を管理している場合は、資産を完全にバックアップする必要があります。誰かが Ansible の外部で変更を行った場合、Ansible に元に戻すのは良いことです。誰かが手動で変更を行う必要がある時間外の緊急事態が発生した場合、その人は、変更が自動化コードにフィードバックされるまで、Ansible の実行を防止する何らかのメカニズムを持っている必要があります (私の会社では、Jenkins を使用してすべての私たちの自動化により、関連するジョブを簡単に無効にすることができます)。
これが選択肢にならない場合は、変更前にいつでもシェルアウトしてグループを説明し、ec2_group
モジュールが何かを変更したかどうかをタスクチェックし、変更された場合はセキュリティグループが以前のように出力することができます:
- hosts: localhost
connection: local
vars:
security_group_name: testing
tasks:
- name: describe ec2 security group before change
shell: "aws ec2 describe-security-groups --group-names {{ security_group_name }}"
register: before
changed_when: false
- name: create ec2 security group
ec2_group:
name: "{{ security_group_name }}"
description: "{{ security_group_name }}"
rules:
- proto: tcp
from_port: 22
to_port: 22
cidr_ip: 0.0.0.0/0
- proto: udp
from_port: 123
to_port: 123
cidr_ip: 10.0.0.0/8
rules_egress:
- proto: all
cidr_ip: 0.0.0.0/0
register: ec2_group
- name: security group changed
debug: var=before
when: ec2_group.changed
もう 1 つのオプションは、単純にCloudTrailを使用して、AWS アカウントで何が変更されたかを確認することです。