Mam książeczkę, z której chciałbym nazwać dwie role:
- Uruchom i udostępnij moją instancję db ec2
- 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 № 1Tak, 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ń.