Ansibleで構築作業の自動化
◆Ansibleでの自動構築◆
構成管理ツール「Ansible」を使って、「アマゾン ウェブ サービス(AWS)」のサーバーの構築を自動で行わせる環境について、ここでは、PlayBookを作成し自動構築を行う様子を説明します。
◆手順◆
- ansibleを実行するディレクトリを作成します。
- ansibleを実行するホストの一覧が入った「hosts」ファイルを作成します。この時ローカルのawscliを使いますので、ローカルループバックアドレスの「127.0.0.1」だけ入力し保管します。
- PlayBookを作成します。
$ vi ~/ansible/playbook.yml
|
赤文字の部分は利用者のAWS環境に合わせて変更してください。
- 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(東京) |
- いよいよ自動構築です。カレントディレクトリをansibleのディレクトリに変更し、PlayBookを指定し実行します。
$ 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の自動化を研究してみましょう。
|