*Scenario:* Application A needs 1) SSH access to Application B hosts and 2) 
database privileges to database on Database C hosts.

*Solution 1: Application A's SSH access and database privileges managed 
with Application B and Database C playbooks*


playbooks/a.yml
---
- hosts: a
  tasks:
    ...

playbooks/b.yml
---
- hosts: b
  tasks:
    - authorized_key: ...
    ...

playbooks/c.yml
---
- hosts: c
  tasks:
    - mysql_user: ...
    ...


This approach has security more in mind as different application / database 
owners would only have access to their hosts and thus are responsible for 
granting access.  The major downside is that playbooks for Application B 
and Database C must be performed before Application A can.


*Solution 2: Application A's SSH access and database privileges managed 
with Application A playbook separate from Application B and Database C 
playbooks*


playbooks/a.yml
---
- hosts: b
  tasks:
    - authorized_key: ...

- hosts: c
  tasks:
    - mysql_user: ...

- hosts: a
  tasks:
    ...

playbooks/b.yml
---
- hosts: b
  tasks:
    ...

playbooks/c.yml
---
- hosts: c
  tasks:    ...

This approach grants Application A access to the tangential resources it 
needs before installing and running the service at the cost of organizing 
Application B and Database C concerns.  This also assumes whoever is 
running Ansible has the ability to manage Application B and Database C 
hosts, which may not be the case.

Appreciate any insights and experiences you would share,
Andy

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/22770cd0-1881-49ac-ad32-7684934f167c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to