Ansible を始めてみる

ansible-galaxy を使うことで role の雛形が作られます。Rails で言うと Scaffold みたいなものです。

$ ansible-galaxy --offline init sample
- sample was created successfully

インベントリファイルを作ります。ファイル名は inventory にしました。

[target]
localhost

sample role を呼び出すための playbook を書きます。playbook.yml としました。

---
- hosts: all
  roles:
    - sample

sample にはまだタスクがありませんが、実行できるようになりました。

$ ansible-playbook -i inventory playbook.yml 

PLAY [all] ***************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************
ok: [localhost]

PLAY RECAP ***************************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0   

実際にタスクを書いてみます。sample/tasks/main.yml を編集します。

---
# tasks file for sample

- name: hello ansible!
  debug:
    msg: "Hello Ansible!"

実行してみます。

$ ansible-playbook -i inventory playbook.yml 

PLAY [all] ***************************************************************************************************************************************

TASK [Gathering Facts] ***************************************************************************************************************************
ok: [localhost]

TASK [sample : hello ansible!] *******************************************************************************************************************
ok: [localhost] => {
    "msg": "Hello Ansible!"
}

PLAY RECAP ***************************************************************************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0   

ここでは localhost を対象に debug メッセージを出してみただけでしたが、対象を動的に変えてみたり、モジュールを使って実際にサーバの設定をしてみたりなど、ここからいろんなことができるようになります。

最初の一歩になればと思います。