Linux活用レシピ > AWS活用 > Ansibleで構築作業の自動化

Ansibleで構築作業の自動化


Ansibleでの自動構築

    構成管理ツール「Ansible」を使って、「アマゾン ウェブ サービス(AWS)」のサーバーの構築を自動で行わせる環境について、ここでは、PlayBookを作成し自動構築を行う様子を説明します。


手順

  1. ansibleを実行するディレクトリを作成します。
    $ mkdir ~/ansible/
    

  2. ansibleを実行するホストの一覧が入った「hosts」ファイルを作成します。この時ローカルのawscliを使いますので、ローカルループバックアドレスの「127.0.0.1」だけ入力し保管します。
    $ vi ~/ansible/hosts
    
    127.0.0.1
    

  3. PlayBookを作成します。
    $ vi ~/ansible/playbook.yml
    
    赤文字の部分は利用者のAWS環境に合わせて変更してください。
  4. - name: Create a sandbox instance
      hosts: localhost
      gather_facts: False
      vars:
        keypair: XXX
        instance_type: t2.micro #例: t2.micro, t2.small, t2.medium ... etc
        instance_profile_name: admin-role
        instance_tags: Name='Test Ansible',Desc='Sample Ansible Playbook' # 入力例: "Name='Test Ansible',Desc='Sample Ansible Playbook"
        security_group: sg-11251375
        image: ami-3bd3c45c
        region: ap-northeast-1 #例:ap-northeast-1
      tasks:
        - name: Launch instance
          local_action: ec2 key_name={{ keypair }} group_id={{ security_group }} instance_type={{ instance_type }} instance_profile_name={{ instance_profile_name }} instance_tags={{ instance_tags }} image={{ image }} wait=true region={{ region }}
          register: ec2
    
    項目説明
    keypair:AWSで既に設定しているキーペア名を入力します。-
    instance_type:CPU、メモリの性能などのインスタンスタイプをタイプ名で指定します。t2.micro, t2.small, t2.medium
    instance_profile_name:IAM ロールをロール名で指定します。-
    instance_tagsインスタンスに設定するタグの名前を指定します。-
    security_group適用するセキュリティグループを「セキュリティグループ ID」で指定します。-
    image:ベースとなるAmazon マシンイメージ (AMI)をAMIのIDで指定します。 ami-4af5022c, ami-a07560c7
    region:リージョンを指定します。ap-northeast-1(東京)

  5. いよいよ自動構築です。カレントディレクトリをansibleのディレクトリに変更し、PlayBookを指定し実行します。
  6. $ cd ~/ansible/
    $ ansible-playbook -i hosts playbook.yml
    
    実行後、画面には以下の通り進捗が表示され始めます。
    PLAY [Create a sandbox instance] ***********************************************
    
    TASK [Launch instance] *********************************************************
    
    しばらくすると、以下の通り表示されます
    PLAY [Create a sandbox instance] ***********************************************
    
    TASK [Launch instance] *********************************************************
    changed: [127.0.0.1 -> localhost]
    
    PLAY RECAP *********************************************************************
    127.0.0.1                  : ok=1    changed=1    unreachable=0    failed=0
    
    

    実際にAWSのEC2をブラウザで見てみると、自動構築されていることが確認できます。


    以上で自動構築のレシピは終了です。さらにいろいろなPlayBookを作成し、AWSの自動化を研究してみましょう。