Ansible: рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдп рдкрд░ "рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ" рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 31 рдЕрдЧре░ 2015  ┬╖  65рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ansible/ansible

(рдлреАрдЪрд░ рдЖрдЗрдбрд┐рдпрд╛)

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдпрд╛ рдЕрдиреНрдп рдЕрдкрдбреЗрдЯ рдЬрд┐рдиреНрд╣реЗрдВ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рд╛рдХреГрддрд┐рдХ рддрд░реАрдХрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдлрд┐рд░ рдПрдХ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ serial рд╕рд╛рде рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдпрд╛ рддреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдпрд╛ рдмрджрд╕реВрд░рдд рд╣реИрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреЗрдЦреЗрдВ https://groups.google.com/forum/#!topic/ansible -project/rBcWzXjt-Xc

affects_2.1 feature

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

@bcoca , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд░реВрд░реА рд╣реИ, рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рдЬрд░реВрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрд▓рдиреЗ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЗрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рддрдХрдиреАрдХреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

:+1:

+1
рдпрд╣ рд╣рдорд╛рд░реА ansible-ceph рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛!

:+1:

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдПрдХ рдЗрдирд╛рдо рд╣реИ: https://www.bountysource.com/issues/26342862-support-for-serial-on-an-individual-task

+1

+1

+1; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЛ рд╢реЗрд╖ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдирд╛рдЯрдХ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдореЗрдВ рд╕рднреА рдореЗрдЬрдмрд╛рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, 50+ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ рд╕рд░реНрд╡рд░ред рдЬрдм рд╕рд░реНрд╡рд░ 3 рдкрд░ рдирд╛рдЯрдХ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдмреЗрдХрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ 3 рдореЗрдВ рдХреБрдЫ рдЕрдЬреАрдм рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕реНрдерд┐рддрд┐ рдереА рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдкреБрдирд░рд╛рд░рдВрдн рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ред max_failpercent рдХреЛ 100% рд╕реЗ рдЕрдзрд┐рдХ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ ansible рдХреЛ рд╢реЗрд╖ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

+1

+1!

+1

+1

:+1:

+1

+1

+1

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рди рдХреЗрд╡рд▓ рдкреНрд▓реЗрдмреБрдХ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрд▓реНрдХрд┐ рд╕рднреА рдЖрд╢реНрд░рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдЬреИрд╕реЗ max_fail_percentage рдФрд░ run_once рд╕рд╣рд┐рдд рдмреНрд▓реЙрдХ рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдкрдбреЗрдЯ-рд░рд┐рдмреВрдЯ рдЙрджрд╛рд╣рд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдХрд╛рд░реНрдп: рдЕрджреНрдпрддрди рд╕рд░реНрд╡рд░ (рд╕рднреА рд╕рдорд╛рдирд╛рдВрддрд░)
  • рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдп: рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  • рдмреНрд▓реЙрдХ: (рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ)

    • рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ

    • рд╕рд░реНрд╡рд░ рдХреЗ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ

  • рдЕрддрд┐рд░рд┐рдХреНрдд рдХрджрдо (рд╕рднреА рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ)

+1

рдЗрд╕рдХреЗ рд▓рд┐рдП +1ред

+1

+1, рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕рднреА рдПрдХ рд╕рд╛рде рдЬрдВрдЬреАрд░ рд╕реЗ рдмрдВрдзреЗ рд╣реЛрддреЗ рд╣реИрдВред рд╕реЗрдл рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рд╕реНрдЯреЛрд░реЗрдЬ рдбреЗрдореЙрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдХреНрдпреЛрдВрдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИред

+1

+1

+1

рд╕рдорд╛рдзрд╛рди:

- name: service restart
  # serial: 1 would be the proper solution here, but that can only be set on play level
  # upstream issue: https://github.com/ansible/ansible/issues/12170
  run_once: true
  with_items: "[{% for h in play_hosts  %}'{{ h }}'{% if not loop.last %} ,{% endif %}{% endfor %}]"
  delegate_to: "{{ item }}"
  command: "/bin/service restart"

@alvaroaleman рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЗрд╕ рдмрдЧ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ: https://github.com/ansible/ansible/issues/15103
рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЖрдкрдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЗрд╕ рддрд░рд╣ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛: with_items: "[{% for h in groups[mon_group_name] %}'{{ h }}'{% if not loop.last %} ,{% endif %}{% endfor %}]" ред

рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?

рдирд┐рдлреНрдЯреА рдЖрдЗрдбрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ Ansible 1.9 рдХреЗ рд╕рд╛рде, рдЗрд╕реЗ рдХрд░рдХреЗ рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

with_items: '{{play_hosts}}'

@alvaroaleman рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ: 30%?

рдХреВрд▓ рдЖрдЗрдбрд┐рдпрд╛ред

рдорд╛рди рд▓реЗрдВ рдХрд┐ рдХреЛрдИ рдХрд╛рд░реНрдп рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреМрди рд╕реЗ рдореЗрдЬрдмрд╛рди рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╛рдЯрдХ рд╕реЗ рд╕рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдПрдХ рднреВрдорд┐рдХрд╛ рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рд╣реИ (рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдкрд░ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛) рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдЖрдк рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдореВрд╣ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдк рдХреБрдЫ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рджреЛ рдмрд╛рд░ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЙрд╕ рдХрд╛рд░реНрдп рдХреЛ рджреЛ рдмрд╛рд░ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗред

'рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ' рдФрд░ рдирд╛рдЯрдХреЛрдВ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо Ansible рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВред рдЖрдкрдХреЗ рдкрд╛рд╕ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рдХрдИ рдЕрдиреНрдп рдкрд░ рдКрдкрд░ рдФрд░ рдЕрдиреНрдп рдЬрдЧрд╣реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рдЙрди 2 рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддреЗ рд╣реИрдВред

  • рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдирд╛рдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ):
- hosts: all 
  tasks:
   - anything:...
  ....

- hosts: all
  serial: 1
  tasks: 
   - singletask:

- hosts: all 
  tasks:
   - morestuff:...
  ....
  • рдПрдХ рдмрд╛рд░ рдЪрд▓рд╛рдПрдВ + рд▓реВрдк + рдкреНрд░рддрд┐рдирд┐рдзрд┐ (рд╕реАрд░рд┐рдпрд▓ = 1 рд╡реНрдпрд╡рд╣рд╛рд░ рддрдХ рд╕реАрдорд┐рдд):
- mytask: ..
  delegate_to: "{{item}}"
  run_once: true
  # many diff ways to make the loop
  with_inventory_hostnames: all

рдореИрдВ рдПрдХ рд░рдгрдиреАрддрд┐ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ 1/2 Ansible рдХреЛрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдиреНрдп рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди рдЕрднреА рднреА рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреА (рдЬреИрд╕реЗ рдХреЙрд▓рдмреИрдХ )

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдКрдкрд░ рдХреЗ рдХрд┐рд╕реА рднреА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХреЛрд░ рдореЗрдВ рдХреЛрдИ рднреА рдЗрд╕рд╕реЗ рдирд┐рдкрдЯреЗрдЧрд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдмреЗрд╢рдХ, рдЕрдЧрд░ рдХреЛрдИ рдХреЛрдб рд╕рдмрдорд┐рдЯ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдПрдХ рд╕рдордЭрджрд╛рд░ рддрд░реАрдХреЗ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрднрд╡ рд╣реИ (рдпрд╛ рдореИрдВ рдПрдХ рд░рд╛рд╕реНрддрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рдирд╣реАрдВ рд╣реВрдВ)ред

@bcoca , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд░реВрд░реА рд╣реИ, рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рдЬрд░реВрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрд▓рдиреЗ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЗрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рддрдХрдиреАрдХреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@ pando85 рдЖрдк рд╢рд╛рдпрдж рдПрдХ рдХрд╕реНрдЯрдо рд░рдгрдиреАрддрд┐ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рдХрд░реАрдм рдХреБрдЫ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

@detiber рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреИрд╢ рд╣реИ рдФрд░ рдЬрдм рдореИрдВ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдПрдХ рдорд╢реАрди рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╢ рдХрд┐рдП рдЧрдП рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдореИрдВ рдЕрдиреНрдп рдорд╢реАрдиреЛрдВ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВред

- name: Update all packages
  # serial: 1 would be the proper solution here, but that can only be set on play level
  # upstream issue: https://github.com/ansible/ansible/issues/12170
  run_once: true
  delegate_to: "{{ play_hosts[0] }}"
  yum: name=* state=latest

- yum: name=* state=latest

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ porpoises рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ seria: рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╣реИред

@bcoca рд╣рдо рд╕реАрд░рд┐рдпрд▓ = 1 рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрдкрдХреЗ рджреВрд╕рд░реЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рдпрд╣ рд╣реИ рдХрд┐ рдирд╛рдЯрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рд╛рд░рд╛рдВрд╢ рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдареАрдХ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкрд╣рд▓реЗ рдореЗрдЬрдмрд╛рди рдХреА рдУрд░ рд╣реЛрддрд╛ рд╣реИ рди рдХрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐ред рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ?

рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реИрдВ рдФрд░ рдЯреИрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╢реБрд░реБрдЖрдд рдФрд░ рд╕рдорд╛рдкреНрддрд┐ рджреЛрдиреЛрдВ рдореЗрдВ рднреВрдорд┐рдХрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдзрдиреНрдпрд╡рд╛рдж

@ kami8607 рдЖрдк рдЗрд╕реЗ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд╡реАрдирддрдо ansible рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

- hosts: all
  tasks:

    - name: set fact
      set_fact:
        marker: marker

    - name: group by marker
      group_by: key=marker
      changed_when: no

    - name: target task
      debug: msg="Performing task on {{ inventory_hostname }}, item is {{ item }}"
      with_items: "{{ groups['marker'] }}"
      when: "hostvars[item].inventory_hostname == inventory_hostname"

@hryamzik рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдЬрд╛рджреВ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
(FYI рдХрд░реЗрдВ рд╣рдо ansible 2.0.2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)

@ kami8607 рдЖрдк рдорд╛рд░реНрдХрд░ рд╣реИрдХ рдХреЛ play_hosts рд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@hryamzik ред рдЕрдм рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛, рд╕рд╣реА рд╕рдорд╛рдзрд╛рдиред рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж :)

рдирдорд╕реНрддреЗред рд╣рдордиреЗ @hryamzik тАЛтАЛрджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ рдХреАред
рдпрджрд┐ рдЗрд╕ "рдЫрджреНрдо-рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ" рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдп рддреБрд░рдВрдд рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдордиреЗ рдХрд┐рддрдиреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣рдо рдЕрд╕рдлрд▓ рдореЗрдЬрдмрд╛рди рдХреЗ рдмрд╛рдж рд╕реАрдзреЗ рдкреНрд▓реЗрдмреБрдХ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝ рд╕рдХреЗред

рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрд╛рдп рд╣реЛред рд╢реБрдХреНрд░рд┐рдпрд╛

рдирдорд╕реНрддреЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рднреВрдорд┐рдХрд╛ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд╛рдЯрдХреЛрдВ рдХреЛ рднреВрдорд┐рдХрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдорджрдж рд╕реЗ рдореЙрдбрд▓ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЫреЛрдЯреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдардиреАрдп рдкреНрд▓реЗрдмреБрдХ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рджреЛрд╣рд░рд╛рд╡ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред

рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рднреВрдорд┐рдХрд╛ рдП рд╣реИ рдЬреЛ рднреВрдорд┐рдХрд╛ рдмреА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рд╕рд╛рде рдХрдИ рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдмреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЦрддрд░рдирд╛рдХ рд╣реИ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд░реНрдерд┐рдд рддрд░реАрдХрд╛ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдЙрд╕ рдирд╛рдЯрдХ рдХреЗ рд▓рд┐рдП serial: 1 рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рднреВрдорд┐рдХрд╛ рдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ . рдпрд╣ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореЗрдЬрдмрд╛рди рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реА рднреВрдорд┐рдХрд╛рдПрдБ рдЬреЛ B рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВред

рд╣рдо рдЕрднреА рднреА @hryamzik рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ @ kami8607 рдиреЗ рдХрд╣рд╛, рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдкрд░ ansible рдмрдВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ @bcoca , рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд▓рдХреНрд╖реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдПрдХ рдЙрдкрдХрд░рдг рдЬреИрд╕реЗ рдХрд┐ ansible рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рди рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╡рд╛рд▓реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ @ pando85 рдиреЗ рдХрд╣рд╛, рддрдХрдиреАрдХреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реА рдУрд░ рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рд░рд╛рдЬрднрд╛рд╖рд╛ +1... рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЪреАрдЬреЗрдВ рд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдХрд┐рд╕реА рднреА рдкреБрдирд░рд╛рд░рдВрдн рд╣реИрдВрдбрд▓рд░ рдореЗрдВ serial: 1 рдЬреЛрдбрд╝рдХрд░ рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░, рдХрд┐рд╕реА рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди, рд╕рдВрд╕реНрдХрд░рдг рдЕрджреНрдпрддрди, рдЖрджрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдЧрд╛ред

+1

+1

+1

рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рднреВрдорд┐рдХрд╛рдПрдБ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИрдВред

+1 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░

рдЗрд╕рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ рднреАред рд╣рдо рднреВрдорд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдХреНрд░рдордмрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд╛рдЯрдХ рдпрд╛ рдЙрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдПрдХ рдХрд╛рд░реНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднреВрдорд┐рдХрд╛ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХреЛ рддреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

+1

+1

рдпрджрд┐ рдЗрд╕ "рдЫрджреНрдо-рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ" рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдХрд╛рд░реНрдп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдп рддреБрд░рдВрдд рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╣рдордиреЗ рдХрд┐рддрдиреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣рдо рдЕрд╕рдлрд▓ рдореЗрдЬрдмрд╛рди рдХреЗ рдмрд╛рдж рд╕реАрдзреЗ рдкреНрд▓реЗрдмреБрдХ рдХреЛ рдирд╣реАрдВ рдЫреЛрдбрд╝ рд╕рдХреЗред

@ kami8607 рдореБрдЭреЗ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░реЛрд▓рд┐рдВрдЧ рдЕрдкрдбреЗрдЯ рдФрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдкрд░ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдкреНрд▓реЗрдмреБрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред any_errors_fatal: true рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдореИрдВ рдпрд╣ рднреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди include_tasks рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ check рдореЛрдб рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

- name: install and configure alive servers
  include_tasks: "install_configure.yml"
  with_items: "{{ healthy_servers }}"
  when: "hostvars[host_item].inventory_hostname == inventory_hostname"
  loop_control:
      loop_var: host_item

рдпрджрд┐ рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ ЁЯСО рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╡реНрдпрд░реНрде рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА "+1" рдХрд╣ рд░рд╣реА рд╣реИред

рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдПрдХ рдХрд╛рдордХрд╛рдЬреА рд╕рдорд╛рдзрд╛рди рднреА рд╣реИред

рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ

рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдХреЛрдИ рдХрд╛рдордХрд╛рдЬреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
register рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░ рд╣реЛрдЧрд╛) - рдореЗрд░рд╛ рдЕрдиреБрдорд╛рди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

@jonhatalla рдореБрдЭреЗ register рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЬрд┐рд╕реНрдЯ рдпрд╛ рд░реЗрдкреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?

рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рдХрд▓рд╛рдХреГрддрд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛рд░реНрдп (рдХреБрдЫ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг) рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓реЗрдХрд░ рдЖрдпрд╛ рд╣реВрдВ рдЬреЛ рдЕрднреА рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд╕ рдХреЗ рд▓рд┐рдП рд╡рд╛рдВрдЫрд┐рдд рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 2 рд╡рд╛рдВрдЫрд┐рдд рд╕рдорд╡рд░реНрддреА рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рд╣реИред

    - name: Download at ratio three at most
      win_get_url:
        url: http://ipv4.download.thinkbroadband.com/100MB.zip
        dest: c:/ansible/100MB.zip
        force: yes
      with_sequence: start=0 end={{ (( play_hosts | length ) / 2 ) | round (0, 'floor') | int }}
      when: "(( ansible_play_batch.index(inventory_hostname) % (( play_hosts | length ) / 2 )) | round) == (item | int)"

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ when рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛, рдпрджрд┐ рдХреБрдЫ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрднреА рднреА рд╕рднреА рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдПрдХ рд╕рдВрджреЗрд╢ рдбреАрдмрдЧ рдХрд░рдирд╛ рдФрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╡рд┐рд▓рдВрдм рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдпрд╣ рддрд░реАрдХрд╛ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

    - debug:
        msg: "Item {{ item }} with modulus {{ (( ansible_play_batch.index(inventory_hostname) % (( play_hosts | length ) / 2 )) | round) }}"
      with_sequence: start=0 end={{ (( play_hosts | length ) / 2 ) | round (0, 'floor') | int }}
      loop_control:
        pause: 2
      when: "(( ansible_play_batch.index(inventory_hostname) % (( play_hosts | length ) / 2 )) | round) == (item | int)"

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЦреЛрдЬ рдХреА рдзрд╛рдЧрд╛ рдЗрд╕ SO рдкреНрд░рд╢реНрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рдбрд╛рдЙрдирд▓реЛрдб рдбреАрдмрдЧ рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореБрдЭреЗ рдХреЛрдИ рднреА рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЙрдкрд░реЛрдХреНрдд рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЯрд┐рдкреНрдкрдгреАрдХрд╛рд░реЛрдВ рдиреЗ рдХрд╣рд╛ рдерд╛, рдореБрдЭреЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рддреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЙрдкрдпреЛрдЧрдХреЗрд╕ рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ ... рдпрд╣ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдХрд╛рд░ рд╣реИрдВрдбрд▓рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдФрд░ рдЕрдиреНрдп рд╕рднреА рдХрд╛рдордХрд╛рдЬ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд╕рдорд╡рд░реНрддреА рд▓рд┐рдЦрдирд╛) рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡реЗ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд╣реИрдВ ...

рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдПрдХ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд╣реИ ...

@zwindler рдЖрдк рд╣реИрдВрдбрд▓рд░ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдкреАрдЖрдИ рдЬрд╛рдВрдЪ рдХреЗ рд╕рд╛рде рд░реЛрд▓рд┐рдВрдЧ рдкреБрдирд░рд╛рд░рдВрдн рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╕реАрдзреЗ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ include_task, works as expected. You can even try рд╢рд╛рдорд┐рд▓_рдЯрд╛рд╕реНрдХ` рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред

  • рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП include_task рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ when: рдХреНрд▓реЙрдЬ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЗрд╕ рдиреЛрдб рдкрд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?
  • рдЖрдк рдХреИрд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдиреЛрдб рдиреЗ рдЕрдкрдиреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ (рдпрд╣реА рдкреВрд░рд╛ рдореБрджреНрджрд╛ рдпрд╣рд╛рдВ рд╣реИ)? рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк serial рд╕рд╛рде include_task рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?
- name: install and configure alive servers
  include_tasks: "install_configure.yml"
  with_items: "{{ healthy_servers }}"
  when: "hostvars[host_item].inventory_hostname == inventory_hostname"
  loop_control:
      loop_var: host_item

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ serial=1 рдЕрдВрджрд░ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирдХрд▓реА рд╣реИ install_configure.yml ред

рд╕реНрд╡рд╕реНрде_рд╕рд░реНрд╡рд░ рдХреЛ рдХреИрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдореИрдВ рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЙрди рд╕рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХрд╛рд░реНрдп рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд┐рдирдХреЗ рдЦрд┐рд▓рд╛рдл рдкреНрд▓реЗрдмреБрдХ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

@erpadmin рдЖрдк рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ play_hosts рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ?

рдирдорд╕реНрддреЗ,
рд╣рдордиреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдФрд░ рд╣рдо рдкреНрд▓реЗрдмреБрдХ рдореЗрдВ рддрд░реНрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЛ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕реАрд░рд┐рдпрд▓: ${serial_mode}
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ:
ValueError: рдЖрдзрд╛рд░ 10 рдХреЗ рд╕рд╛рде int () рдХреЗ рд▓рд┐рдП рдЕрдорд╛рдиреНрдп рд╢рд╛рдмреНрджрд┐рдХ: 'serial_mode'

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдмрдЧ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ:

  • рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ ??
  • рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреНрдпрд╛ рд╣реИ?

рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░рддреЗ рд░рд╣реЗрдВред

рд╕рд╛рджрд░, рдкрд╛рдмреНрд▓реЛред

рд╣рд╛рдБ, рдЗрд╕ рдФрд░ рдЗрд╕реА рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред

рдзрдиреНрдпрд╡рд╛рдж, рдкрд╛рдмреНрд▓реЛред

01/08/2018 11:02 рдХреЛ, рдЬреЛрд╣рд╛рдиреНрд╕ рдирдЬреНрдЬрд░ рдиреЗ рд▓рд┐рдЦрд╛:
>

рдХреНрдпрд╛ рдЖрдкрдиреЗ {{serial_mode}} рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_ansible_ansible_issues_12170-23issuecomment-2D409504564&d=DwMCaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=S57T0QaaR3U1-rdS92VizJ7MMFzQcmoa9SvsdavdKz0&m=yK7T1nGurRdoVF74pYsp2Ww-gi_wzcik9FOhvfi0AO4&s=xx2w8JlL7xtYCFCYV2SVe6ghMflP4n0oJ1XT8yRJiK4&e= ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_notifications_unsubscribe-2Dauth_AoC2bq84TS9DNhwP7QHo2lN6rwu6K2fjks5uMW6dgaJpZM4F1SdA&d=DwMCaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=S57T0QaaR3U1-rdS92VizJ7MMFzQcmoa9SvsdavdKz0&m=yK7T1nGurRdoVF74pYsp2Ww-gi_wzcik9FOhvfi0AO4&s=0mncwDiylOIi-1VOf_7Bp6ltumjR5pCnTNSjqh_SWjU&e= ред

--
рдУрд░реЗрдХрд▓ http://www.oracle.com
рдкрд╛рдмреНрд▓реЛ рдлреБрдПрдВрдЯреЗрд╕ | Oracle рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╕рд▓рд╛рд╣рдХрд╛рд░
рдореЛрдмрд╛рдЗрд▓: +34653961879
Oracle Oracle рдкрд░рд╛рдорд░реНрд╢

рдУрд░реЗрдХрд▓ рд╕реНрдкреЗрди | рдУрд░реЗрдХрд▓ рд╕реНрдкреЗрди рд▓рд╛рд╕ рд░реЛрдЬрд╛рд╕ рдореИрдбреНрд░рд┐рдб
рдЧреНрд░реАрди рдУрд░реЗрдХрд▓ http://www.oracle.com/commitment Oracle рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ
рдРрд╕реА рдкреНрд░рдерд╛рдУрдВ рдФрд░ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░рдирд╛ рдЬреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рд░рдХреНрд╖рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВ

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ run once + loop + delegate (limited to serial=1 behavior): рджреГрд╖реНрдЯрд┐рдХреЛрдг include_tasks рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдореЗрдВ рджреЛ "рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рд╣реЛрд╕реНрдЯ" рд╣реЛрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдореВрд▓реНрдп рд╣реЛрддрд╛ рд╣реИ ansible_host ред

рд╕рдорд╛рди ansible_host рд╕рд╛рде рджреЛ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рд╣реЛрд╕реНрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рджреГрд╖реНрдЯрд┐рдХреЛрдг _does рд░рди рдЯреВ рдмрд╛рд░_; рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреЛрдиреЛрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИрдВред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рд╕реАрдкреАрдпреВ рдФрд░ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рддреИрдирд╛рддреА рдореЗрдВ рдордВрджреАред рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ inventory_hostname == item рдПрдХ with_items рд▓реВрдк рдореЗрдВ O(n^2) рд╣реИ, рдЬреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣реЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдореЗрдореЛрд░реА рдФрд░ рд╕реАрдкреАрдпреВ рд▓реЛрдб рдХреЛ рдмрд╣реБрдд рдмрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИред

200 рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ include_tasks рдмреНрд▓реЙрдХ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 20GB RAM рдФрд░ 70 рд▓реЛрдб рдФрд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рджреЗрдЦрд╛ рд╣реИред рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧ рдЧрдП рдХрд┐ рдХрд┐рди рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИред

+1

рдХрд┐рд╕реА рдХреЛ рднреА рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП #42528 рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рд╕реНрд╡реАрдХреГрддрд┐ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдкреАрдЖрд░ рдореЗрдВ :+1: рдЬреЛрдбрд╝реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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