/ / Jak przekazać parametr z jednej roli do drugiej w ansibla - ansibnie

Jak przekazać parametr z jednej roli do drugiej w ansibla - nie

Mam książeczkę, z której chciałbym nazwać dwie role:

  1. Uruchom i udostępnij moją instancję db ec2
  2. Uruchom moją instancję web ec2 i ustaw "db-ip" na ip pierwszej instancji

Tak więc w pierwszym poradniku korzystam z modułu "ec2", który zwraca wiele informacji, w tym adres IP.

Czy mogę jakoś przekazać to IP do następnej roli?

Odpowiedzi:

1 dla odpowiedzi № 1

Tak, możesz przechowywać adres IP w zmienna:

┌─[jamesph@ilmr] - [~/temp/ansible] - [Wed Sep 28, 12:28]
└─[$]> cat provision.yaml
- hosts: localhost
tasks:
- shell: echo "so cool"
register: message

- hosts: localhost
roles:
- example
┌─[jamesph@ilmr] - [~/temp/ansible] - [Wed Sep 28, 12:28]
└─[$]> tree roles
roles
└── example
└── tasks
└── main.yaml

2 directories, 1 file
┌─[jamesph@ilmr] - [~/temp/ansible] - [Wed Sep 28, 12:28]
└─[$]> cat roles/example/tasks/main.yaml
- debug:
msg: "got message: {{ message }}"
┌─[jamesph@ilmr] - [~/temp/ansible] - [Wed Sep 28, 12:28]
└─[$]> ansible-playbook provision.yaml
[WARNING]: Host file not found: /etc/ansible/hosts

[WARNING]: provided hosts list is empty, only localhost is available


PLAY [localhost] ***************************************************************

TASK [setup] *******************************************************************
ok: [localhost]

TASK [command] *****************************************************************
changed: [localhost]

PLAY [localhost] ***************************************************************

TASK [setup] *******************************************************************
ok: [localhost]

TASK [example : debug] *********************************************************
ok: [localhost] => {
"msg": "got message: {u"changed": True, u"end": u"2016-09-28 12:28:51.493133", u"stdout": u"so cool", u"cmd": u"echo "so cool"", u"start": u"2016-09-28 12:28:51.489753", u"delta": u"0:00:00.003380", u"stderr": u"", u"rc": 0, "stdout_lines": [u"so cool"], u"warnings": []}"
}

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

The Szczegółowy przewodnik AWS podaje przykłady rejestrowania wyników ec2 moduł i używanie go do późniejszych zadań.