AnsibleでAmazon EFSの作成からマウントするまで

AnsibleでAmazon EFSの作成からマウントするまで:


概要

Amazon EFSの作成からEC2にマウントするまでをAnsibleでやります

Ansibleのmountモジュールを使用することで、マウント済みチェック自動マウント設定もやってくれるので便利


手順


  1. EFSアクセス用のセキュリティグループの作成もしくは、既存のセキュリティグループに追加(手動)
  2. EFSボリュームの作成
  3. EC2にマウント


コード

amazon_efs.yml
--- 
# EFSボリュームの作成 
- name: create efs volume 
  hosts: localhost 
  connection: local 
  gather_facts: False 
  tasks: 
    # create EFS volume 
    - name: Create EFS 
      efs: 
        state: present 
        region: "リージョンID" 
        name: "sample_efs" 
        tags: 
          Name: "タグ名" 
        targets: 
          - subnet_id: "AZ-aのサブネットID" 
            security_groups: [ "EFS接続できるセキュリティグループID" ] 
          - subnet_id: "AZ-cのサブネットID" 
            security_groups: [ "EFS接続できるセキュリティグループID" ] 
        performance_mode: general_purpose 
        encrypt: yes 
 
# EFSボリュームのマウント 
- name: efs mount to ec2 
  hosts: my_ec2 
  tasks: 
    # EFSボリュームIDを取得する 
    - local_action: 
        module: efs_facts 
        name: "sample_efs" 
      run_once: true 
      register: _efs_fact 
 
    - set_fact: 
        _efs_fact_id: "{{ _efs_fact.ansible_facts.efs[0].file_system_id }}" 
 
    # EFSマウント用のユーティリティツールをインストール 
    # amazon-efs-utilsを使用して、マウントしないが、とりあえずインストールしておく 
    - name: install efs libs 
      yum: 
        name: "{{ item }}" 
        state: present 
      become: yes 
      with_items: 
        - "nfs-utils" 
        - "amazon-efs-utils" 
 
    # EC2にマウント用のディレクトリを作成しておく 
    - name: Create data store directory for efs mount 
      file: 
        dest: "/home/ec2-user/sample_efs" 
        state: directory 
 
    # EFSのマウント 
    - name: mount efs volume 
      mount: 
        path: "/home/ec2-user/sample_efs" 
        src: "{{ _efs_fact_id }}.efs.ap-northeast-1.amazonaws.com:/" 
        fstype: "nfs4" 
        opts: "nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport" 
        state: mounted 
      become: yes   
 
    # マウント後はrootユーザの所有権になるため、明示的に所有権を変更 
    - name: change directory owner 
      file: 
        dest: "/home/ec2-user/sample_efs" 
        owner: "ec2-user" 
        group: "ec2-user" 
        state: directory 
      become: yes 


ポイント


mountモジュール

  • stateでmountedにすることで自動マウントの設定(/etc/fstab)もやってくれます
  • optsはAmazon EFSの設定値を用いる

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)