Ansible: рдЧрдгрд┐рдд рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рджреМрд░рд╛рди рдЪрд░ рдкреНрд░рдХрд╛рд░ int рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рджрд┐рд╕ре░ 2016  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: ansible/ansible

рд╡рд┐рд╖рдп рд╡рд░реНрдЧ

  • рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ
рдШрдЯрдХ рдХрд╛ рдирд╛рдо
рдЙрддреНрддрд░ рд╕рдВрд╕реНрдХрд░рдг
ansible 2.2.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
рд╡рд┐рдиреНрдпрд╛рд╕
рдУрдПрд╕ / рдкрд░реНрдпрд╛рд╡рд░рдг


рдЙрдмрдВрдЯреВ 14.04
рдЙрдмрдВрдЯреВ 16.04

рд╕рд╛рд░рд╛рдВрд╢

int рд╡реИрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рджреМрд░рд╛рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

- hosts: localhost
  vars:
    a: 1
    b: "{{ a }}"
    c: "{{ a+1 }}"
  tasks:
    - debug: msg="{{ a + 0 }}"
    - debug: msg="{{ b + 0 }}"
    - debug: msg="{{ c + 0 }}"
      ignore_errors: yes
    - debug: msg="{{ c + '0' }}"
рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо


3 рдХрд╛рд░реНрдп рдХреЛ рдЗрдВрдЯ 2 рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ 4 рд╡реЗрдВ рдХрд╛рд░реНрдп рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрд╕рдлрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо


рддреАрд╕рд░рд╛ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд░рд╣рд╛

$ ansible-playbook a.yml -vvvvv
Using /etc/ansible/ansible.cfg as config file
 [WARNING]: provided hosts list is empty, only localhost is available

Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7/dist-packages/ansible/plugins/callback/__init__.pyc

PLAYBOOK: a.yml ****************************************************************
1 plays in a.yml

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

TASK [setup] *******************************************************************
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/core/system/setup.py
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: yurii
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python && sleep 0'
ok: [localhost]

TASK [debug] *******************************************************************
task path: /home/yurii/sandbox/ans/a.yml:7
ok: [localhost] => {
    "msg": "1"
}

TASK [debug] *******************************************************************
task path: /home/yurii/sandbox/ans/a.yml:8
ok: [localhost] => {
    "msg": "1"
}

TASK [debug] *******************************************************************
task path: /home/yurii/sandbox/ans/a.yml:9
fatal: [localhost]: FAILED! => {
    "failed": true, 
    "msg": "Unexpected templating type error occurred on ({{ c + 0 }}): coercing to Unicode: need string or buffer, int found"
}
...ignoring

TASK [debug] *******************************************************************
task path: /home/yurii/sandbox/ans/a.yml:11
ok: [localhost] => {
    "msg": "20"
}

PLAY RECAP *********************************************************************
localhost                  : ok=5    changed=0    unreachable=0    failed=0   

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдЬрд┐рдиреНрдЬрд╛ рдордЬрд╝рд╛ рд╣реИ- рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ var рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди -e var, YAML рдЯрд╛рдЗрдк рдЗрдВрдлрд╝реЗрдХреНрд╢рди рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдореЗрд╢рд╛ рддрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ), рдЖрдкрдХреЛ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП / рдЧрдгрд┐рдд рдЧрдгрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛрд░ рджреЗрдирд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ:

- debug: msg="{{ c | int + 0 }}"

>рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл рдЬрд┐рдиреНрдЬрд╛ рдордЬрд╝рд╛ рд╣реИ- рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ var рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдирд╣реАрдВ рдЬрд╛рди рдкрд╛рдПрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди -e var, YAML рдЯрд╛рдЗрдк рдЗрдВрдлрд╝реЗрдХреНрд╢рди рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдореЗрд╢рд╛ рддрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ), рдЖрдкрдХреЛ рдЬреЛрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП / рдЧрдгрд┐рдд рдЧрдгрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛрд░ рджреЗрдирд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИ:

- debug: msg="{{ c | int + 0 }}"
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

mverwijs picture mverwijs  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RaymiiOrg picture RaymiiOrg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Pallokala picture Pallokala  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

greggilbert picture greggilbert  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rokka-n picture rokka-n  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ