端くれプログラマの備忘録 Ansible [Ansible] EC2ボリュームにNameタグを付ける方法

[Ansible] EC2ボリュームにNameタグを付ける方法

AnsibleでEC2ボリュームにNameタグを付けるためには、ec2_tagモジュールを使用します。このモジュールを使うと、既存のEC2リソース(インスタンス、ボリュームなど)にタグを付けることができます。

以下に、具体的なプレイブックの例を示します。このプレイブックは、特定のボリュームIDにNameタグを付ける方法を示しています。

- name: Tag EC2 volumes
  hosts: localhost
  gather_facts: no
  tasks:
    - name: Set volume ID and desired tag
      set_fact:
        volume_id: "vol-075e042f7eb646e28"
        volume_name: "MyVolumeName"

    - name: Tag the EC2 volume
      ec2_tag:
        region: ap-northeast-1
        resource: "{{ volume_id }}"
        tags:
          Name: "{{ volume_name }}"
      register: tag_result

    - name: Debug tag result
      debug:
        var: tag_result

説明

  1. Set volume ID and desired tag:
    • set_factを使って、ボリュームID (volume_id) と付けたいタグの名前 (volume_name) を変数として設定します。
  2. Tag the EC2 volume:
    • ec2_tagモジュールを使って、指定されたボリュームIDに対してタグを付けます。この例では、Nameタグを付けています。
    • regionは、ボリュームが存在するAWSリージョンを指定します。
    • resourceには、タグを付けたいリソースのID(この場合はボリュームID)を指定します。
    • tagsには、付けたいタグをキーと値のペアで指定します。
  3. Debug tag result:
    • debugモジュールを使って、タグ付けの結果を表示します。registerを使って前のタスクの結果をtag_resultに登録し、その内容を確認します。

このプレイブックを実行すると、指定されたボリュームにNameタグが付与されます。他のタグを追加したい場合は、tags辞書に追加するだけです。

必要に応じて、複数のボリュームに対してタグを付けることもできます。その場合は、ボリュームIDのリストをループで処理するようにプレイブックを拡張します。