Używanie Ansible Mam problem z zarejestrowaniem zmiennej w żądany sposób. Korzystając z poniższej implementacji, zawsze będę musiał wywoływać .stdout na zmiennej - czy jest jakiś sposób, żeby zrobić to lepiej?Zarejestruj właściwość zmiennej podlegającej zmianie
Mój poradnik: Uwaga na niechciane użycie .stdout - Po prostu chcę mieć możliwość użycia zmiennej bezpośrednio, bez wywoływania propery ...?
---
- name: prepare for new deployment
hosts: all
user: ser85
tasks:
- name: init deploy dir
shell: echo ansible-deploy-$(date +%Y%m%d-%H%M%S-%N)
# http://docs.ansible.com/ansible/playbooks_variables.html
register: deploy_dir
- debug: var=deploy_dir
- debug: var=deploy_dir.stdout
- name: init scripts dir
shell: echo {{ deploy_dir.stdout }}/scripts
register: scripts_dir
- debug: var=scripts_dir.stdout
Wyjście kiedy wykonać Playbook:
TASK [init deploy dir] *********************************************************
changed: [123.123.123.123]
TASK [debug] *******************************************************************
ok: [123.123.123.123] => {
"deploy_dir": {
"changed": true,
"cmd": "echo ansible-deploy-$(date +%Y%m%d-%H%M%S-%N)",
"delta": "0:00:00.002898",
"end": "2016-05-27 10:53:38.122217",
"rc": 0,
"start": "2016-05-27 10:53:38.119319",
"stderr": "",
"stdout": "ansible-deploy-20160527-105338-121888719",
"stdout_lines": [
"ansible-deploy-20160527-105338-121888719"
],
"warnings": []
}
}
TASK [debug] *******************************************************************
ok: [123.123.123.123] => {
"deploy_dir.stdout": "ansible-deploy-20160527-105338-121888719"
}
TASK [init scripts dir] ********************************************************
changed: [123.123.123.123]
TASK [debug] *******************************************************************
ok: [123.123.123.123] => {
"scripts_dir.stdout": "ansible-deploy-20160527-105338-121888719/scripts"
}
Każda pomoc lub spostrzeżenia docenione - dziękuję :)
Dziękujemy, działa! W rzeczywistości ponownie użyłem nazwy zmiennej {{deploy.dir}}, w której użyłeś {{mój_deploy_dir}} bez żadnych problemów. Zastanawiam się, czy Ansible używa tej samej lokalizacji do przechowywania zdefiniowanych przez użytkownika faktów i zmiennych ... Bez względu na to działa - dziękuję :) –