<project-root>/ansible/roles
配下にお好きなAnsibleロールを配置してください。
ロールは入れ子にすることができます。
ここでは、sky-touch
という名前のロールを作成して、EC2インスタンスに適用する例を説明します。
sky-touch
ロールの中身は、パラメータで渡されたパスにtouchをするという内容になります。
なお、Ansible自体の使い方は解説しません。
-
<project-root>/ansible/roles
配下にロールのディレクトリを作ります。
例では、sky-touch
を作成します。 -
作成したロールのディレクトリの中に、ロールの中身を実装します。
例では、tasks/main.yml
として、下記の内容のファイルを作成します。- name: touch file: path: "{{ touch_file_path }}" state: touch
-
これで準備は完了です。
例では、フォルダ構成は以下のようになっています。$ tree ansible/roles/ ansible/roles/ └── sky-touch └── tasks └── main.yml
-
インフラストラクチャ一覧画面から、スタックを選択し、Ansibleを適用したいEC2インスタンスを表示します。
EC2インスタンスが起動していない場合は、起動させてください。 -
playbookの編集
ボタンを押下します。 -
playbook編集画面が表示されます。
playbook roles
に表示されているロールが適用されるロールとなります。
適用したいロールをplaybook roles
に設定してください。
Ansible role
に表示されているロールを選択し+
ボタンを押下することで、playbook roles
に追加することができます。
例ではplaybook roles
にsky-touch
を設定します。 -
extra-vars
に渡したいパラメータをJSONで指定します。
例では、下記を設定してください。(touch_file_path
に/hello-world.txt
を設定する内容となります。){"touch_file_path": "/hello-world.txt"}
-
設定の保存
ボタンを押下します。
正常に設定が保存されたことを表すダイアログが表示されたことを確認して、OK
ボタンを押下します。
- インフラストラクチャ一覧画面から、スタックを選択し、Ansibleを適用したいEC2インスタンスを表示します。
- Ansibleの
▲
ボタンを押下し、run ansible-playbook
を押下します。 - playbookの適用が開始されたことを表すダイアログが表示されたことを確認して、
OK
ボタンを押下します。 - しばらくしたのち、playbookの適用が正常に終了したことを確認してください。