32852
巨大なシステムのデプロイを Ansible で記述していると、多種多様な playbook を記述したくなります。各 playbook
は、デフォルトではプロジェクトルートに配置される想定ですが、数が増えてくると、サブディレクトリを切って、そこに整理していくなどを行いたくなります。

# 質問:

ansible の playbook は、プロジェクトルート以外に配置することはできますか？  
(プロジェクトルート以外配置にされた playbook を実行することはできますか？)
CC BY-SA 3.0
2017-02-17T08:57:42.810
32747
2017-02-21T14:44:23.617
754
question
ansible
playbook を、プロジェクトルート以外に配置するには？
可能だと思います。

```

    ansible/
    |  ansible.cfg
    |
    +-- hosts/
    |    |
    |    +-- production/
    |    |    | inventory
    |    |    +-- group_vars/
    |    |    +-- host_vars/
    |    |
    |    +-- staging/
    |         | inventory
    |         +-- group_vars/
    |         +-- host_vars/
    |
    +-- playbooks/
         | site1.yml
         | site2.yml
         |
         +-- files/
         +-- roles/
    
```

こんな構成で

```

    [localhost ansible] $ ansible-playbook -i hosts/staging playbooks/site1.yml
    
```

とか

playbook や hosts(inventory)は何処にあっても良いですが、その下のディレクトリ構成は、同じです。

role の場所が、サブディレクトリ(playbookのある場所）になるので、それも変えたい場合は、ansible.cfg で、roles_path
を指定すれば、playbook 配下にない role も探せるのでいろいろできると思います。

roles_path  
<http://docs.ansible.com/ansible/intro_configuration.html#roles-path>
CC BY-SA 3.0
2017-02-21T14:44:23.617
32852
2017-02-21T14:44:23.617
4419
32747
answer