Ansible: рд╡рд┐рде_ рд▓реВрдкреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВ

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

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

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

рдШрдЯрдХ рдХрд╛ рдирд╛рдо

рд╕рд╛рд░

рдЙрддреНрддрд░рджрд╛рдпреА рд╕рдВрд╕реНрдХрд░рдг

2.1

рд╡рд┐рдиреНрдпрд╛рд╕
рдУрдПрд╕ / рдкрд░реНрдпрд╛рд╡рд░рдг
рд╕рд╛рд░рд╛рдВрд╢
how: 
    forks: 1
    pause: 0
    squash: name
    label: "{{item.name}}"
    end: on_fail
with_items: ...
  • рдХрд╛рдВрдЯреЗ: рд▓реВрдк рдХреЗ рднреАрддрд░ рдХрд╛рдВрдЯреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЖрдЗрдЯрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ 1, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  • рд░реЛрдХреЗрдВ: рд▓реВрдк рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмреАрдЪ, рдереНрд░реЙрдЯрд▓ рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧреА _2.2_ рдореЗрдВ рд╣реЛ рдЧрдпрд╛
  • рд╕реНрдХреНрд╡реИрд╢: рд╕реВрдЪреА рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рджрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВ, рдЙрдкрдпреБрдХреНрдд, рдпрдо, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб рдСрдкреНрдЯреНрд╕ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдХреЛрдИ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП _abandon_: рдЙрд▓рдЯ рд░рд╛рдп, рд╣рдореЗрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдЕрдВрдд: рд▓реВрдк рдХреЛ рдХрдм рдмрд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ 'рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо' рд╣реИ, рд╡рд┐рдХрд▓реНрдк? on_fail, on_success (рдкрд╣рд▓рд╛ рд╡рд╛рд▓рд╛)?
  • рд▓реЗрдмрд▓: (#13710) рдЖрдЗрдЯрдо рд▓реВрдк рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╕рдордп рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ _2.2_ рдореЗрдВ рд╣реЛ рдЧрдпрд╛

рдбреЙрдХреНрд╕ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП:

http://docs.ansible.com/ansible/playbooks_loops.html#loop -control

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг
рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо
affects_2.1 affects_2.3 feature core

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

+1 рдХрд╛рдВрдЯреЗ

рдореИрдВ 100+ рдЖрдЗрдЯрдо рдкрд░ with_ рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдУрдкрдирд╕реНрдЯреИрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ...
image

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

рдХреГрдкрдпрд╛ рдЗрд╕реЗ how рди рдХрд╣реЗрдВред become: true рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдФрд░ рднреА рдмреБрд░рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд▓рдЧрддреА рд╣реИред

#10695 . рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ

рдЙрддреНрдХреГрд╖реНрдЯред рдмрд╛рдЗрдХ рд╢реЗрдбрд┐рдВрдЧ рдХреЗ рд╣рд┐рдд рдореЗрдВ, рд╢рд╛рдпрдж рдЗрд╕реЗ looping: рдХрд╣реЗрдВред

:+1:

+1

+1 рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЗрдЬрдмрд╛рди рд╕рдорд╛рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП!

:+1:

:+1:
рд▓реЗрдХрд┐рди рдЗрд╕реЗ "рдХреИрд╕реЗ" рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ

рддреЛ рдпрд╣рд╛рдБ рдкрд╣рд▓реА рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдПрдХ рд▓реВрдк рдХрд╛рд░реНрдп рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ

- hosts: localhost
  vars:
    myvar:
        - 1
        - 2
        - 3
        - 4
        - 5
  tasks:
    - name: break loop after 3
      debug: msg={{item}}
      failed_when: item == 3
      register: myresults
      when: not (myresults|default({}))|failed
      with_items: "{{myvar}}"

@bcoca рдЕрдВрдд рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЙрддреНрддрд░рджрд╛рдпреА 1.9.3 рдЙрдмрдВрдЯреВ)

рдЯрд╛рд╕реНрдХ: [3 рдХреЗ рдмрд╛рдж рд▓реВрдк рддреЛрдбрд╝реЗрдВ] * * * * * * * * * * * * * * ** *
рдареАрдХ рд╣реИ: [рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ] => (рдЖрдЗрдЯрдо = 1) => {
"рд╡рд┐рдлрд▓": рдЭреВрдард╛,
"рд╡рд┐рдлрд▓_рдХрдм_рдкрд░рд┐рдгрд╛рдо": рдЭреВрдард╛,
"рд╡рд╕реНрддреБ 1,
"рд╕рдВрджреЗрд╢": "1"
}
рдареАрдХ рд╣реИ: [рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ] => (рдЖрдЗрдЯрдо = 2) => {
"рд╡рд┐рдлрд▓": рдЭреВрдард╛,
"рд╡рд┐рдлрд▓_рдХрдм_рдкрд░рд┐рдгрд╛рдо": рдЭреВрдард╛,
"рдЖрдЗрдЯрдо": 2,
"рд╕рдВрджреЗрд╢": "2"
}
рд╡рд┐рдлрд▓: [рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ] => (рдЖрдЗрдЯрдо = 3) => {"рд╡рд┐рдлрд▓": рд╕рддреНрдп, "рд╡рд┐рдлрд▓_рдЬрдм_рдкрд░рд┐рдгрд╛рдо": рд╕рддреНрдп, "рдЖрдЗрдЯрдо": 3, "verbose_always": рд╕рддреНрдп}
рд╕рдВрджреЗрд╢: 3
рдареАрдХ рд╣реИ: [рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ] => (рдЖрдЗрдЯрдо = 4) => {
"рд╡рд┐рдлрд▓": рдЭреВрдард╛,
"рд╡рд┐рдлрд▓_рдХрдм_рдкрд░рд┐рдгрд╛рдо": рдЭреВрдард╛,
"рдЖрдЗрдЯрдо": 4,
"рд╕рдВрджреЗрд╢": "4"
}
рдареАрдХ рд╣реИ: [рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ] => (рдЖрдЗрдЯрдо = 5) => {
"рд╡рд┐рдлрд▓": рдЭреВрдард╛,
"рд╡рд┐рдлрд▓_рдХрдм_рдкрд░рд┐рдгрд╛рдо": рдЭреВрдард╛,
"рдЖрдЗрдЯрдо": 5,
"рд╕рдВрджреЗрд╢": "5"
}

рдЖрд╣, рд╣рд╛рдБ, рдпрд╣ 2.0 рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ 1.9 рдореЗрдВ рд▓реВрдк рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдХрд╛рдВрдЯреЗ рдкрд░ +1

+1
рд╢рд╛рдпрдж "рдХреИрд╕реЗ" рдХреЗ рдмрдЬрд╛рдп, loop_details рдпрд╛ рд╡рд┐рдХрд▓реНрдк?

+1

+1, wait_for рд╕реЗ localhost рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 100 EC2 рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рдЖрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдореБрдЭреЗ рдорд╛рд░ рд░рд╣рд╛ рд╣реИ ...

рдкреНрд░реЗрд╖рдХ рдХреЗ рд╕рдорд╛рди рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП +1

+1

:+1:

squash рдФрд░ forks рджреЛрдиреЛрдВ рд╣реА рдХрдорд╛рд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрдВрдЧреА рдЬреЛ рдХрд┐ Ansible рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдмрд╣реБрдд рддреЗрдЬ рдХрд░ рджреЗрдВрдЧреАред

рдореИрдВ how рдХреЛ loop_details , loop_settings , loop_options , рдпрд╛ рдХреБрдЫ рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреВрдВрдЧрд╛ред

loop_control , рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 2.1 рдореЗрдВ label рднрд╛рдЧ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

apt: name={{listofpackages}}

рдФрд░ рд▓реВрдк рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдмрдЪреЗрдВ

+1 рдХрд╛рдВрдЯреЗ

+1 рдХрд╛рдВрдЯреЗ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╢рд░реНрдд рдмреНрд░реЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рдерд╛ break_when

+1 рдХрд╛рдВрдЯреЗ рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░реЗрдЧрд╛:
- include: service.yml
with_items: "{{services|default([])}}"

рдЕрдиреНрдпрдерд╛, async/async_status рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИред

+1 рдХрд╛рдВрдЯреЗ

рдореИрдВ 100+ рдЖрдЗрдЯрдо рдкрд░ with_ рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдУрдкрдирд╕реНрдЯреИрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ ...
image

рдХрд╛рдВрдЯреЗ рдкрд░ +1ред рдПрдПрдордЖрдИ рдХреЛ рд╕рднреА рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХрд╛рдВрдЯреЗ рдкрд░ +1ред рдХреГрдкрдпрд╛! рдЗрд╕реЗ рд▓реВрдк_рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирд╛рдПрдВ

рдХрд╛рдВрдЯреЗ рдкрд░ +1

рдХрд╛рдВрдЯреЗ рдкрд░ +1

+1, рдХрд╛рдВрдЯреЗ рднреА рдЪрд╛рд╣рд┐рдП :-)

рдХрд╛рдВрдЯреЗ рдкрд░ +1

рдХрд╛рдВрдЯреЗ рдкрд░ +1

рдХрд╛рдВрдЯреЗ рдХрдорд╛рд▓ рдХреЗ рд╣реЛрдВрдЧреЗ, +1

рдореИрдВ рд╣рдореЗрд╢рд╛ рдЪреБрдкреНрдкреА рдореЗрдВ рдмреИрдарддрд╛ рд╣реВрдВ рдФрд░ рд╕реНрдкреИрдо рдореЗрдВ рдпреЛрдЧрджрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдмреАрдЪ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рдВрдЯрд╛ +1 рдЯреНрд░реЗрди рд╕реНрдЯреЗрд╢рди рд╕реЗ рдирд┐рдХрд▓ рдЧрдИ рд╣реИ!

рдХрд╛рдВрдЯреЗ рдкрд░ +1

рдХрд╛рдВрдЯреЗ рдкрд░ +1

рдХрд╛рдВрдЯреЗ рдкрд░ +1

:+1: рдХрд╛рдВрдЯреЗ рдкрд░

@bcoca рдирдорд╕реНрддреЗ! рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рдореБрджрд╛рдп рдХреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдереЛрдбрд╝реА рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рд╡реЗ рдЖрдЗрдЯрдо рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓реЗ:

  • рд╡рд┐рд╖рдп рд╡рд░реНрдЧ
  • рдЙрддреНрддрд░рджрд╛рдпреА рд╕рдВрд╕реНрдХрд░рдг
  • рдШрдЯрдХ рдХрд╛ рдирд╛рдо

рдХреГрдкрдпрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЗрд╕ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░реЗрдВ:
https://raw.githubusercontent.com/ansible/ansible/devel/.github/ISSUE_TEMPLATE.md

рдмреЙрдЯ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ

рдХрд╛рдВрдЯреЗ рдкрд░ +1

рдХрд╛рдВрдЯреЗ рдкрд░ +1!

рдлреЛрд░реНрдХреНрд╕ рдкрд░ +1!

рдХрд╛рдВрдЯреЗ рдкрд░ +1!

рдХрд╛рдВрдЯреЗ рдкрд░ +1!

рдХрд╛рдВрдЯрд╛ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдЗрд╕реЗ рдХрдм рддреИрдпрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ with_sequence рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рдЧрднрдЧ 20 рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдм рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрдореНрд░ рд▓рдЧрддреА рд╣реИ :(
рдореБрдЭреЗ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╣рд╛рде рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрдЭрд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА

@bitliner рдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреАрдЖрд░ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдк рдпрд╣реА рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдХреНрд╕ рд╣реЛрд╕реНрдЯ рдХреЛ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреИрд░реЗрд▓рд▓ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП with_ $ рдХреЗ рдмрдЬрд╛рдп hosts: рд╕реЗ рдЕрдзрд┐рдХ рд▓реВрдк рдХрд░реЗрдВред

рд╕реВрдЪреА:

[containers]
container[000:020]
hosts: containers
gather_facts: false
tasks:
   - container: state=present name={{inventory_hostname}}

рдпрд╛рдиреА рдХрдВрдЯреЗрдирд░ рдПрдХ 'рдмрдирд╛ рд╣реБрдЖ' рдореЙрдбреНрдпреВрд▓ рд╣реИред

@bcoca рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдпрд╣реА рдорддрд▓рдм рд╣реИ?

рдореЗрдЬрдмрд╛рди рдлрд╝рд╛рдЗрд▓

[containers]
192.168.1.100
192.168.1.100
192.168.1.100
192.168.1.100
... and so on based on the degree of parallelism I want to get ...

main.yml рдлрд╝рд╛рдЗрд▓

hosts: containers
gather_facts: false
tasks:
   - container: state=present name={{inventory_hostname}}

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд▓реВрдк рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХреНрдпрд╛ рдЪреБрдиреМрддрд┐рдпрд╛рдБ рд╣реИрдВ?

рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:

- name: "Start clients"
  docker_container:
    name: "mycontainer-{{ item }}"
    image: myimage
    links: 
      - server-{{item}}:server-{{item}}
  with_sequence: count={{ scale }}

рдореИрдВ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рд╕реНрдХреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рд░реВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП with_sequence рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред

рдореИрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреА рдШреЛрд╖рдгрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдХрдИ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рддреБрд░рдВрдд рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЕрд░реНрде рдмрдирддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХреЛрдИ рдорджрдж рд╣реИ рдХрд┐ myModule docker_container рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреЙрд▓/рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдПрдкреАрдЖрдИ рдХреНрдпрд╛ рд╣реИрдВ рдЬреЛ Ansible рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХреБрдЫ рдЪрд▓рд╛рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИ?

@bitliner рдЖрдкрдиреЗ рдореЗрд░реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛, рдореЗрд░реЗ рдкрд╛рд╕ рд╕реВрдЪреА рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рдереЗ (рд╕реАрдХреНрд╡реЗрдВрд╕ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдВрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛)ред рдЪреВрдВрдХрд┐ рдирд╛рдо рд╕реВрдЪреА рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИрдВ, рдЖрдкрдиреЗ рдЕрднреА рдПрдХ рд╣реА рдирд╛рдо рдПрди рдмрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдПрдХ рд╣реЛрд╕реНрдЯ рд╣реИ, рдЬреЛ рдЖрдкрдХреЗ рджреВрд╕рд░реЗ рдореБрджреНрджреЗ рдХреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдбреБрдкреНрд▓реА рдирд╛рдореЛрдВ рдкрд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХреЗрд╡рд▓ 1 рд╣реЛрд╕реНрдЯ рдкрд░ рд▓реВрдк рдХрд░рддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдордПрд▓ рдпрд╛ рдЖрдИрдЖрд░рд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╡рд┐рд╖рдп рд╣реЛрдЧрд╛ред

@bcoca рдпрджрд┐ рдЖрдкрдиреЗ 20 рд╣реЛрд╕реНрдЯ рдШреЛрд╖рд┐рдд рдХрд┐рдП рд╣реИрдВ рддреЛ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реЛрд╕реНрдЯ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

[containers]
container[000:020]

container001 , container002 , рдЖрджрд┐ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдЕрджреНрд╡рд┐рддреАрдп рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рдХреНрдпреЛрдВ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдПрдХ рдореЗрдЬрдмрд╛рди рд╣реИ (20 рдХреЗ рдмрдЬрд╛рдп)ред
hosts:containers рдХрд╛ рдорддрд▓рдм рдореЗрд░реЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ 20 рдореЗрдЬрдмрд╛рди рд╣реИрдВред рдореИрдВ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХреНрдпрд╛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ?

@bitliner рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ:

[containers]
192.168.1.100
192.168.1.100
192.168.1.100
192.168.1.100

4 рдореЗрдЬрдмрд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди 1

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

рдореИрдВрдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ

[containers]
ip[000:020] ansible_host=192.168.1.100

рддрдерд╛

- name: "Start containers"
  docker_container:
    name: "my-container-{{ inventory_hostname }}"

рдПрдХ рдкреНрд░рд╢реНрди: fork рдХрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬрд┐рдВрдЧ, рдХреНрдпрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рд░рди_рд▓реВрдк рд╡рд┐рдзрд┐ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдЗрд╕реЗ рд╕рдорд╛рдВрддрд░рддрд╛ рдФрд░ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЗ рд╕реНрддрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ?

рдФрд░ рдлрд┐рд░ рдЙрд╕реЗ 'рдордЬрд╝рд╛' рдорд┐рд▓рдиреЗ рд▓рдЧрддрд╛ рд╣реИ...:

  • рдХреНрдпрд╛ рд▓реВрдк рдХрд╛рдВрдЯрд╛ рд╡реИрд╢реНрд╡рд┐рдХ --forks рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рддрд┐ рд░рд┐рдореЛрдЯ рдмрдирд╛рдПрдВ?
  • рд▓реВрдк рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдЬрдм рдЖрдЗрдЯрдо рдкрд┐рдЫрд▓реА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ (рди рдХреЗрд╡рд▓ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди, рдмрд▓реНрдХрд┐ рд╕рд╢рд░реНрдд, рдЖрджрд┐)?
  • рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдкрд░ рдПрдХрд╛рдзрд┐рдХ рдХрд╛рдВрдЯреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рд╕рдорд╡рд░реНрддреА рдореБрджреНрджреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВ? рдпрд╛рдиреА рд╡реЗ рдПрдХ рд╣реА рдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ
  • рд╣рдо рд╕рдлрд╛рдИ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ? рдЕрднреА рд╡реЗ tmp dirs рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ .. рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд╖реНрдкрд╛рджрди рдЕрдкрдиреЗ рдЖрдк рд╕рд╛рдл рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдм рдпрд╣ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдореБрджреНрджреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ .. рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ рдЬреЛ рдореБрдЭреЗ рддрдм рддрдХ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣рд╛рде рд╕реЗ рдирд┐рдХрд▓рдиреЗ рд▓рдЧрддрд╛ рд╣реИред

@bcoca рд▓реВрдк рдлреЛрд░реНрдХрд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯ рдХреЛ 1 рдкрд░ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ forks рдпрд╛ serial рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛ред рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрддреНрд╕реБрдХ рд╣реВрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдХреЗ рд▓рд┐рдП delegate_to рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)

рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдП +1 (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд)

+1 рдХрд╛рдВрдЯреЗ

+1 рдХрд╛рдВрдЯреЗ

+1 рдХрд╛рдВрдЯреЗ

+1 рдХрд╛рдВрдЯреЗ

+1 рдХрд╛рдВрдЯреЗ

рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдП рднреА +1, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдмреАрдЪ рдПрдХ рдирдпрд╛ Ansible рд░рдгрдиреАрддрд┐ рдкреНрд▓рдЧрдЗрди рднреА рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рджрд░реНрд╢рди рд╡реГрджреНрдзрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ with_items рд▓реВрдк рдХреЗ рд▓рд┐рдП рднреАред рд╢рд╛рдпрдж рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдХрд╛рдВрдЯреЗ рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИ:

https://github.com/dw/mitogen
https://mitogen.readthedocs.io/hi/latest/ansible.html

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдареАрдХ рд╕реЗ with_items рд▓реВрдк рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдкреНрд▓рдЧрдЗрди
рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ ssh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд▓рдВрдмреА рджреВрд░реА рдФрд░ рдЧреБрдкреНрдд рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ
рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ред

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

рдпрд╣ рд▓реЗрдЦ рдореЗрдВ with_items рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдХреИрд╕реЗ
рдпрд╣ рдЫреЛрдЯреЗ рд╕реЗ рдЫреЛрдЯреЗ рдореЗрдВ рднреА рдорджрдж рдХрд░реЗрдЧрд╛ред рдХреНрдпрд╛ рдЖрдк рдереЛрдбрд╝рд╛ рдФрд░ рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ
рдпрд╣ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореИрдВ рд▓рд╛рдкрддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХреНрдпрд╛ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ
рдпрд╣рд╛рдБ рдХреБрдЫред

рд╢рдирд┐рд╡рд╛рд░, 10 рдорд╛рд░реНрдЪ 2018 рдХреЛ 21:58 рдмрдЬреЗ, NielsH [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдП рднреА +1, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдмреАрдЪ рдПрдХ рдирдпрд╛ Ansible рднреА рд╣реИ
рд░рдгрдиреАрддрд┐ рдкреНрд▓рдЧрдЗрди рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд░рджрд░реНрд╢рди рд╡реГрджреНрдзрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рднреА
with_items рд▓реВрдк рдХреЗ рд▓рд┐рдПред рд╢рд╛рдпрдж рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдВрдЯреЗ рдЪрд╛рд╣рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП
рдХрд╛рд░рдг рдпрд╣ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИ:

https://github.com/dw/mitogen
https://mitogen.readthedocs.io/hi/latest/ansible.html

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ansible/ansible/issues/12086#issuecomment-372070418 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AJd59qWI9n_DNmUqpmZYiIOMZAyjJy3uks5tdEyQgaJpZM4Fx8zF
.

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ рдореИрдВ with_items рдореЗрдВ рдХрд╛рдВрдЯреЗ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдзреАрдореЗрдкрди рдХреЗ рдХрд╛рд░рдг рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рдХреЗ рд╕рд╛рде)ред рдХрднреА-рдХрднреА рдореБрдЭреЗ host_vars рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ (рдХрдИ рд╕реМ) рдмрдирд╛рдиреА рдкрдбрд╝рддреА рд╣реИ, рдпрд╛ рдХреБрдЫ рд╕реМ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рддреЛ рдореИрдВ рдЬреНрдпрд╛рджрд╛рддрд░ file рдФрд░ template рдореЙрдбреНрдпреВрд▓ рдкрд░ рд▓реВрдкрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рдЬрд┐рдиреНрдЬрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдЖрдЗрдЯрдореНрд╕ рдкрд░ рд▓реВрдкрд┐рдВрдЧ рдмрдирд╛рдо with_items рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 100 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ 100 рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдмрдбрд╝реА рдлрд╛рдЗрд▓ рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдПрдХ рдлрд╛рдЗрд▓ рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдореЗрдВ 5 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди 100 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ 30 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред

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

рдЪреВрдВрдХрд┐ рд▓реВрдк рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрд╛рд░реНрдп рдХреЛ рдкреНрд░рддрд┐ рдЖрдЗрдЯрдо рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрди рдЧрддрд┐ рдореЗрдВ рдХреЛрдИ рднреА рд╕реБрдзрд╛рд░ рддреЗрдЬреА рд╕реЗ рд▓реВрдк рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдХреЗрд╡рд▓ 'рджреВрд░рд╕реНрде рдХрд╛рд░реНрдпреЛрдВ' рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдХреБрдЫ рднреА рд▓рд╛рдн рдирд╣реАрдВ рджреЗрдЦ рдкрд╛рдПрдЧрд╛ред

рдорд╛рдирд╛ред рдореИрдВ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рджрд░реНрдЬрди рдпрд╛ рддреЛ рдбреЛрдХрд░ рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдлрд┐рд▓рд╣рд╛рд▓, ansible рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдорд▓реНрдЯреА-рдХреЛрд░ CPU рдХреЛ рдХрдо рдХрд░рдХреЗ рдЖрдВрдХрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдбреЛрдХрд░ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@gjcarneiro рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рди рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╣реЛрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП delegate_to: localhost

рд╣рд╛, рд╕рд╛рдл-рд╕реБрдерд░реА рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :) рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ) рддреЛ рдпрд╣ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдЬрдЯрд┐рд▓ рддрд░реАрдХрд╛ рд╣реИред

рдлрд┐рд░ рдлрд┐рд░, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдПрдХ рддрд░рд╣ рд╕реЗ рдпрд╣ рдореЗрд░реА рдЕрдкрдиреА рдЧрд▓рддреА рд╣реИ :(

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

рд╣рд╛рдБ, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдБ, рдпрд╣ Ansible рдХреА рдЧрд▓рддреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп), рдХреНрдпреЛрдВрдХрд┐ Ansible рдЕрдзрд┐рдХрд╛рдВрд╢ рддрд░реАрдХреЛрдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЗ рдлреНрд░реЗрдо рдореЗрдВ, рдПрдХ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдиреЗ рдкрд░, "рдореЗрдЬрдмрд╛рди" рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред "рдореЗрдХ" рдЬреИрд╕реА рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо "рд╣реЛрд╕реНрдЯ" рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдлрд╛рдЗрд▓реЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреА рд╣реИред рдореИрдВ Ansible рдХреЛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рдереЛрдбрд╝рд╛ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдЕрд╕рдВрдЧрддрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдмрд╕ред

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

Ansible рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ
рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдЖрднрд╛рд╕реА рджреЛрдиреЛрдВ рддрд░рд╣ рдХреЗ рдЙрдкрдХрд░рдг рдЬреИрд╕реЗ
рдбреЗрдЯрд╛рдмреЗрд╕, рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдВ рдЬреИрд╕реЗ рдХрд┐ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ, рд▓реИрдореНрдмреНрдбрд╛ рдФрд░ рд╕рднреА
рдШрдЯрдХ рдЬреЛ рдЙрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ IAM рд╕реБрд░рдХреНрд╖рд╛ рдШрдЯрдХ, рдЬрдмрдХрд┐ Ansible рд╣реИ
рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдЕрдЪреНрдЫрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЕрдзрд┐рдХрддрд░ рд╡реАрдПрдо/рд╣реЛрд╕реНрдЯ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣реИрдВ
2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЖрдИ.рдЯреА. рдпрд╣рд╛рдВ рдХрд┐рд╕реА рдХреЛ рдареЗрд╕ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдирд╛ рдХрднреА-рдХрднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддреЗ рд╣реИрдВ
VMs рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ
рд╡рд┐рд░рд╛рд╕рдд рдХрд╛рд░рдгред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдЬрдмрд╛рди рдХрдо рд╣реЛрддреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣ рдХреНрдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред IMO рдпрджрд┐ рд╣рдореЗрдВ_items рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдХреНрд░реИрдк ansible рд╕рднреА рдПрдХ рд╕рд╛рдеред

рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕реЛрдЪреВрдВрдЧрд╛ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛
рдХреБрдЫ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реАрдЧреЗрдЯ_to рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА 200+ . рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдХреНрд▓рд╛рдЙрдб рдШрдЯрдХ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рд╕реВрдЪреА рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ
рдФрд░ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЗрдЬрдмрд╛рди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ ansible рдХреЗ рд╕рд╛рде рдбрдВрдк рдХрд░реЗрдВ, рдлрд┐рд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреЛ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдореИрдВ рдпрд╣рд╛рдВ рдЕрдкрдиреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреВрдВрдЧрд╛ред рдЕрдЧрд░ рдпрд╣ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдХрдо рд╕реЗ рдХрдо рд╣рдо рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ
with_item рд▓реВрдк рд╕реАрд░рд┐рдпрд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ
рдЙрдиреНрд╣реЗрдВ рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрднрд╛рдЧреЛрдВ рдФрд░ рдЕрдиреБрднрд╛рдЧреЛрдВ рдкрд░ред

рд╕реЛрдо, 12 рдорд╛рд░реНрдЪ 2018 рдХреЛ 18:49 рдмрдЬреЗ, рдмреНрд░рд╛рдпрди рдХреЛрдХрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

Ansible рдХреЗрд╡рд▓ рдореЗрдЬрд╝рдмрд╛рдиреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдЙрди рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдк рд╣реИрдВ
'рдореЗрдЬрдмрд╛рди' рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЕрдЪрд╛рдирдХ рдпрд╣ рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ansible/ansible/issues/12086#issuecomment-372422169 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AJd59nhLIM3s3BL_xM_WwbJS6-uROzjSks5tdsNCgaJpZM4Fx8zF
.

@gjcarneiro рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рди рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ рд╣реЛрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреЛ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ serial=1 рд╕рд┐рдореБрд▓реЗрд╢рди (#12170) рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдЕрдВрджрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ рд╕рдорд╛рдирд╛рдВрддрд░рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред

рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдПрдХ рдмрдбрд╝реА рдкрд░рдд рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдкрд░ рд╕рдорд╡рд░реНрддреА рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ hosts:all + lineinfile + delegate_to: localhost

Hrrm рдЕрдм рддрдХ рдореИрдВрдиреЗ рдбреЗрд▓рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдпрд╛ рд╣реИ: 127.0.0.1 for
рд╣рдЯрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднреА рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдПрдХ рджрд░реНрдж рд╣реИред

рдореЗрд░реА рдкреНрд▓реЗрдмреБрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  • рдореЗрдЬрдмрд╛рди: "{{ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдореВрд╣ }}"

    рдХрд╛рд░реНрдп:

    • рдирд╛рдо: рд╡реАрдПрдо рдФрд░ рд╕рднреА рд╕рдВрдмрджреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
      azure_rm_virtualmachine:
      Resource_group: "{{host_vars[item]['resource_group'] }}"
      рдирд╛рдо: "{{рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА_рд╣реЛрд╕реНрдЯрдирд╛рдо}}"
      рд░рд╛рдЬреНрдп: рдЕрдиреБрдкрд╕реНрдерд┐рдд

    рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреВ: 127.0.0.1


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдорд╢реАрдиреЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ
рдиреАрд▓рд╛ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ azure_rm_virtualmachine.
рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА
рдкрд╣рд▓реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рддреЛ рдмрд╕ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ
рдпрд╣ред

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рднреА рдХрд░рддрд╛ рд╣реИ? рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдХреБрдЫ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдореБрджреНрджрд╛ рд╣реИред

рд╕реЛрдо, рдорд╛рд░реНрдЪ 12, 2018 рдХреЛ рд╢рд╛рдо 7:55 рдмрдЬреЗ, рдЖрдЗрдЬрд╝реИрдХ рдПрдЧреНрд▓рд╕реНрдЯреЛрди < [email protected]

рд▓рд┐рдЦрд╛ рдерд╛:

Ansible рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рд╣реИ,
рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рд╡рд╛рдЗрд╕, рджреЛрдиреЛрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдЖрднрд╛рд╕реА
рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реА рд╕реЗрд╡рд╛рдПрдВ, рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдВ рдЬреИрд╕реЗ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ, рд▓реИрдореНрдмреНрдбрд╛
рдФрд░ рд╕рднреА рдШрдЯрдХ рдЬреЛ рдЙрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ IAM рд╕реБрд░рдХреНрд╖рд╛ рдШрдЯрдХ, рдЬрдмрдХрд┐
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЕрдзрд┐рдХрддрд░ VMs/рд╣реЛрд╕реНрдЯ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ Ansible рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ
рдореВрд▓ рд░реВрдк рд╕реЗ 2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЖрдИрдЯреАред рдпрд╣рд╛рдВ рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдХреЛ рдареЗрд╕ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рддреЗ
VMs рдпрд╛ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдг рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА
рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░рдгреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рд╕реНрдЯреЗрдоред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдЬрдмрд╛рди рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред IMO рдЕрдЧрд░ рд╣рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ
with_items рд╣рдо рд╕рднреА рдПрдХ рд╕рд╛рде ansible рдХреЛ рд╕реНрдХреНрд░реИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕реЛрдЪреВрдВрдЧрд╛ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛
рдХреБрдЫ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реАрдЧреЗрдЯ_to рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА 200+ . рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдХреНрд▓рд╛рдЙрдб рдШрдЯрдХ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рд╕реВрдЪреА рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ
рдФрд░ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЗрдЬрдмрд╛рди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ ansible рдХреЗ рд╕рд╛рде рдбрдВрдк рдХрд░реЗрдВ, рдлрд┐рд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреЛ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдореИрдВ рдпрд╣рд╛рдВ рдЕрдкрдиреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреВрдВрдЧрд╛ред рдЕрдЧрд░ рдпрд╣ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдХрдо рд╕реЗ рдХрдо рд╣рдо рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ
with_item рд▓реВрдк рд╕реАрд░рд┐рдпрд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ
рдЙрдиреНрд╣реЗрдВ рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрднрд╛рдЧреЛрдВ рдФрд░ рдЕрдиреБрднрд╛рдЧреЛрдВ рдкрд░ред

рд╕реЛрдо, 12 рдорд╛рд░реНрдЪ 2018 рдХреЛ 18:49 рдмрдЬреЗ, рдмреНрд░рд╛рдпрди рдХреЛрдХрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

Ansible рдХреЗрд╡рд▓ рдореЗрдЬрд╝рдмрд╛рдиреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдЙрди рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдк рд╣реИрдВ
'рдореЗрдЬрдмрд╛рди' рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЕрдЪрд╛рдирдХ рдпрд╣ рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ansible/ansible/issues/12086#issuecomment-372422169 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AJd59nhLIM3s3BL_xM_WwbJS6-uROzjSks5tdsNCgaJpZM4Fx8zF
.

рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддрдереНрдп рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рдПрдХ рдФрд░, host_vars рдореЗрдВ рдЕрдм рд╕реЗ рдиреАрд▓рд╛ рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ
рдореЗрдВ рдорд╛рдирдХред

рддреЛ рд░рд┐рд╕реЛрд░реНрд╕_рдЧреНрд░реБрдк: "{{host_vars[item]['resource_group'] }}" рдирд╣реАрдВ
рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд╕рдореВрд╣ рдХреЗ рдирд╛рдо рдкрд░ рд╣рд╛рд░реНрдб рдХреЛрдб рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕реВрд░реНрдп рдкрд░, рдорд╛рд░реНрдЪ 18, 2018 рдкреВрд░реНрд╡рд╛рд╣реНрди 11:14 рдмрдЬреЗ, рдЗрд╕рд╣рд╛рдХ рдПрдЧрд▓рд╕реНрдЯреЛрди <
[email protected]> рдиреЗ рд▓рд┐рдЦрд╛:

Hrrm рдЕрдм рддрдХ рдореИрдВрдиреЗ рдбреЗрд▓рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдпрд╛ рд╣реИ: 127.0.0.1 for
рд╣рдЯрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднреА рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдПрдХ рджрд░реНрдж рд╣реИред

рдореЗрд░реА рдкреНрд▓реЗрдмреБрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  • рдореЗрдЬрдмрд╛рди: "{{ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдореВрд╣ }}"

    рдХрд╛рд░реНрдп:

    • рдирд╛рдо: рд╡реАрдПрдо рдФрд░ рд╕рднреА рд╕рдВрдмрджреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
      azure_rm_virtualmachine:
      Resource_group: "{{host_vars[item]['resource_group'] }}"
      рдирд╛рдо: "{{рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА_рд╣реЛрд╕реНрдЯрдирд╛рдо}}"
      рд░рд╛рдЬреНрдп: рдЕрдиреБрдкрд╕реНрдерд┐рдд

    рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреВ: 127.0.0.1


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдорд╢реАрдиреЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ
рдиреАрд▓рд╛ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ azure_rm_virtualmachine.
рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХреА
рдкрд╣рд▓реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рддреЛ рдмрд╕ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ
рдпрд╣ред

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рднреА рдХрд░рддрд╛ рд╣реИ? рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдХреБрдЫ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдореБрджреНрджрд╛ рд╣реИред

рд╕реЛрдо, рдорд╛рд░реНрдЪ 12, 2018 рдХреЛ рд╢рд╛рдо 7:55 рдмрдЬреЗ, рдЗрд╕рд╣рд╛рдХ рдПрдЧрд▓рд╕реНрдЯреЛрди <
[email protected]> рдиреЗ рд▓рд┐рдЦрд╛:

Ansible рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рд╣реИ,
рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рд╡рд╛рдЗрд╕, рджреЛрдиреЛрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдЖрднрд╛рд╕реА
рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реА рд╕реЗрд╡рд╛рдПрдВ, рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдВ рдЬреИрд╕реЗ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ, рд▓реИрдореНрдмреНрдбрд╛
рдФрд░ рд╕рднреА рдШрдЯрдХ рдЬреЛ рдЙрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ IAM рд╕реБрд░рдХреНрд╖рд╛ рдШрдЯрдХ, рдЬрдмрдХрд┐
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЕрдзрд┐рдХрддрд░ VMs/рд╣реЛрд╕реНрдЯ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ Ansible рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ
рдореВрд▓ рд░реВрдк рд╕реЗ 2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЖрдИрдЯреАред рдпрд╣рд╛рдВ рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдХреЛ рдареЗрд╕ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рддреЗ
VMs рдпрд╛ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдг рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА
рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░рдгреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рд╕реНрдЯреЗрдоред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдЬрдмрд╛рди рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред IMO рдЕрдЧрд░ рд╣рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ
with_items рд╣рдо рд╕рднреА рдПрдХ рд╕рд╛рде ansible рдХреЛ рд╕реНрдХреНрд░реИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕реЛрдЪреВрдВрдЧрд╛ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛
рдХреБрдЫ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реАрдЧреЗрдЯ_to рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА 200+ . рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдХреНрд▓рд╛рдЙрдб рдШрдЯрдХ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рд╕реВрдЪреА рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ
рдФрд░ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЗрдЬрдмрд╛рди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ ansible рдХреЗ рд╕рд╛рде рдбрдВрдк рдХрд░реЗрдВ, рдлрд┐рд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреЛ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдореИрдВ рдпрд╣рд╛рдВ рдЕрдкрдиреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреВрдВрдЧрд╛ред рдЕрдЧрд░ рдпрд╣ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдХрдо рд╕реЗ рдХрдо рд╣рдо рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ
with_item рд▓реВрдк рд╕реАрд░рд┐рдпрд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ
рдЙрдиреНрд╣реЗрдВ рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрднрд╛рдЧреЛрдВ рдФрд░ рдЕрдиреБрднрд╛рдЧреЛрдВ рдкрд░ред

рд╕реЛрдо, 12 рдорд╛рд░реНрдЪ 2018 рдХреЛ 18:49 рдмрдЬреЗ, рдмреНрд░рд╛рдпрди рдХреЛрдХрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

Ansible рдХреЗрд╡рд▓ рдореЗрдЬрд╝рдмрд╛рдиреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдЙрди рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдк рд╣реИрдВ
'рдореЗрдЬрдмрд╛рди' рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЕрдЪрд╛рдирдХ рдпрд╣ рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ansible/ansible/issues/12086#issuecomment-372422169 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AJd59nhLIM3s3BL_xM_WwbJS6-uROzjSks5tdsNCgaJpZM4Fx8zF
.

рдареАрдХ рд╣реИ рддреЛ рдореИрдВрдиреЗ рдХрдИ рдЪреАрдЬреЛрдВ рдХреЛ рдЖрдЬрдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдкреНрд▓реЗрдмреБрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдкрд╣рд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдбреЗрд▓рд┐рдЧреЗрдЯ_рдлреИрдХреНрдЯреНрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА: рд╕рдЪ рд╣реИ рдЕрдЧрд░ рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реА рд▓реЗрдХрд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереАред
рджреВрд╕рд░рд╛ рдореИрдВрдиреЗ рдЧреИрджрд░_рдлреИрдХреНрдЯреНрд╕ рд╕реЗрдЯ рдХрд┐рдпрд╛: рдирд╣реАрдВ рдФрд░ рддрдереНрдп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдХрд┐ рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХрдиреЗрдХреНрдЯ рди рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗ, рд▓реЗрдХрд┐рди
рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдпрд╣ рдЕрднреА рднреА рдорд╢реАрди рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред
рддреАрд╕рд░рд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдиреЗрдХреНрд╢рди рд╕реЗрдЯрд┐рдВрдЧ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд▓реЗрдХрд┐рди рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдЪрд╛рд╣рддрд╛ рд╣реИ
рддрдереНрдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╢реАрди рд╕реЗ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ, рднрд▓реЗ рд╣реА рд╡рд╣ рдЗрд╕реЗ рдЬрд╛рдирддрд╛ рд╣реЛ
рдирд╛рдЯрдХ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛, рд╡рд╣рд╛рдВ рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рддрд░реНрдХ рдорд┐рд▓рддрд╛ рд╣реИ
рдпрд╣ рдмрд┐рдирд╛ рдХреБрдЫ рдХрд┐рдП рдореЗрдЬрдмрд╛рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдФрд░ рдХреИрд╕реЗ рдЬрд╛рдиреЗрдЧрд╛
рдпрд╣..

рдореИрдВ рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рдорд╢реАрдиреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдмреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЪрд▓реЛ
рдЙрдирдХреЗ рд▓рд┐рдП ansible рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрдереНрдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВред рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдХрд┐
рдореИрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП host_vars рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдорд╢реАрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдпрд╣рд╛рдВ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднреА рдПрдХ рдмрдбрд╝рд╛ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ
рдкреНрд░рдпрд╛рд╕ рдЬрдм рдореЗрд░реЗ рдкрд╛рд╕ рд╕реМ рдпрд╛ рдЕрдзрд┐рдХ рдорд╢реАрдиреЗрдВ рд╣реЛрдВ рдФрд░ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдмрд┐рдЬрд▓реА рджреЗрдиреА рдкрдбрд╝реЗ
рд╕рдм рдХреБрдЫ рдмрд╕ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВред

рдЕрдм рддрдХ рдореИрдВ рдЗрд╕реЗ with_items рд╕рдорд╛рдирд╛рдВрддрд░ рдХреЗ рдмрдЬрд╛рдп рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ
рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдХрд┐рди рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдорд╢реАрдиреЛрдВ рдХреЛ рдЕрднреА рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдпрджрд┐ рдЖрдкрдХреЛ azure_rm.py рд╕реЗ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рддрдереНрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ
рдРрд╕рд╛ рдХрд░реЗрдВ рддрд╛рдХрд┐ рд╡рд╣рд╛рдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реЛред рд╡рд╣ рддрдм рддрдХ рд╣реИ рдЬрдм рддрдХ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛
рдорд╛рдирдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рдиреАрд▓рд╛ рд╕реЗ host_vars рддрдХ рдкрд╣реБрдВрдЪ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдЬрдм рдЗрдХрдЯреНрдард╛_рддрдереНрдп: рдирд╣реАрдВ

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм рдореИрдВ рдпрд╣ рд╕рдм a . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ
with_items рд╕реВрдЪреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЙрд╕ рдХрд╛рдо рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдЕрдЧрд░ рдореИрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдлрд┐рд░ рд╕реЗ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЖрд╕-рдкрд╛рд╕ рдХрд╛ рдХрд╛рд░реНрдп azure_rm.py рдХреЛ a . рдкрд░ рдбрдВрдк рдХрд░ рд░рд╣рд╛ рд╣реИ
рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдЬреЗрд╕рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдореЗрдВ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдлрд┐рд░ рд╕реЗ рдЙрди рддрдХ рдкрд╣реБрдБрдЪреЗрдВред

рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рдЕрдВрддрд┐рдо рд▓рдХреНрд╖реНрдп рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рд╕реИрдХрдбрд╝реЛрдВ рдпрд╛ рд╣рдЬрд╛рд░реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реВрдВ
рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ, рд╢рд╛рдпрдж рдпрд╣ рдареАрдХ рд░рд╣реЗрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ
azure_rm_functionapp_facts . рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
http://docs.ansible.com/ansible/latest/azure_rm_functionapp_facts_module.html
рдкреНрд░рддрд┐
рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрдереНрдп рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдирд╛рдЯрдХ рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣
рдЕрднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХреЛрдИ рдорд╣рд╛рди рддрд░реНрдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП a
рдкреНрд░рд▓реЗрдЦрди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд┐ рдЕрдм рддрдХ рдХрд╛рдлреА рд╣рдж рддрдХ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ
рдЖрдк рдЬреЛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ json рдбрдВрдк рд╣реИрдХред

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


  • рдореЗрдЬрдмрд╛рди: "{{ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдореВрд╣ }}"
    рдЗрдХрдЯреНрдард╛_рддрдереНрдп: рдирд╣реАрдВ
    рдХрд╛рд░реНрдп:

    • рд╕реЗрдЯ рдЕрдк:

      рдЗрдХрдЯреНрдард╛_рд╕рдмрд╕реЗрдЯ=!рд╕рдм,!рдорд┐рдирдЯ

    • рдирд╛рдо: рд╡реАрдПрдо рдФрд░ рд╕рднреА рд╕рдВрдмрджреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ

      azure_rm_virtualmachine:

      рд╕рдВрд╕рд╛рдзрди_рд╕рдореВрд╣: "{{host_vars[inventory_hostname]['resource_group']

      }}"

      рдирд╛рдо: "{{рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА_рд╣реЛрд╕реНрдЯрдирд╛рдо}}"

      рд░рд╛рдЬреНрдп: рдЕрдиреБрдкрд╕реНрдерд┐рдд

      рдбреЗрд▓рд┐рдЧреЗрдЯ_рдЯреВ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ

      рдкреНрд░рддрд┐рдирд┐рдзрд┐_рддрдереНрдп: рд╕рддреНрдп


рд╕реВрд░реНрдп рдкрд░, рдорд╛рд░реНрдЪ 18, 2018 рдЕрдкрд░рд╛рд╣реНрди 12:04 рдмрдЬреЗ, рдЗрд╕рд╣рд╛рдХ рдПрдЧрд▓рд╕реНрдЯреЛрди <
[email protected]> рдиреЗ рд▓рд┐рдЦрд╛:

рдареАрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рддрдереНрдп рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рдПрдХ рдФрд░, host_vars рдореЗрдВ рдЕрдм рд╕реЗ рдиреАрд▓рд╛ рдЧрддрд┐рд╢реАрд▓ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реИ
рдореЗрдВ рдорд╛рдирдХред

рддреЛ рд░рд┐рд╕реЛрд░реНрд╕_рдЧреНрд░реБрдк: "{{host_vars[item]['resource_group'] }}"
рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд╕рдореВрд╣ рдХреЛ рд╣рд╛рд░реНрдб рдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдирд╛рдоред

рд╕реВрд░реНрдп рдкрд░, рдорд╛рд░реНрдЪ 18, 2018 рдкреВрд░реНрд╡рд╛рд╣реНрди 11:14 рдмрдЬреЗ, рдЗрд╕рд╣рд╛рдХ рдПрдЧрд▓рд╕реНрдЯреЛрди <
[email protected]> рдиреЗ рд▓рд┐рдЦрд╛:

Hrrm рдЕрдм рддрдХ рдореИрдВрдиреЗ рдбреЗрд▓рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдпрд╛ рд╣реИ: 127.0.0.1 for
рд╣рдЯрд╛рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рднреА рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдПрдХ рджрд░реНрдж рд╣реИред

рдореЗрд░реА рдкреНрд▓реЗрдмреБрдХ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

  • рдореЗрдЬрдмрд╛рди: "{{ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕рдореВрд╣ }}"

    рдХрд╛рд░реНрдп:

    • рдирд╛рдо: рд╡реАрдПрдо рдФрд░ рд╕рднреА рд╕рдВрдмрджреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
      azure_rm_virtualmachine:
      Resource_group: "{{host_vars[item]['resource_group'] }}"
      рдирд╛рдо: "{{рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА_рд╣реЛрд╕реНрдЯрдирд╛рдо}}"
      рд░рд╛рдЬреНрдп: рдЕрдиреБрдкрд╕реНрдерд┐рдд

    рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреВ: 127.0.0.1


рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЕрднреА рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдорд╢реАрдиреЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ
рдиреАрд▓рд╛ рдХрд╛рд░реНрдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП azure_rm_virtualmachine.
рдХреНрдпрд╛ рдореИрдВ рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ? рд▓рдЧрддрд╛ рд╣реИ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА
рдпрд╣ рдкрд╣рд▓реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣реБрдЖ рдерд╛, рдЗрд╕рд▓рд┐рдП рдмрд╕ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рд╕рдХреНрд╖рдо рд╣реИрдВ
рдпрд╣ рдХрд░реЛред

рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рднреА рдХрд░рддрд╛ рд╣реИ? рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдХреБрдЫ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдореБрджреНрджрд╛ рд╣реИред

рд╕реЛрдо, рдорд╛рд░реНрдЪ 12, 2018 рдХреЛ рд╢рд╛рдо 7:55 рдмрдЬреЗ, рдЗрд╕рд╣рд╛рдХ рдПрдЧрд▓рд╕реНрдЯреЛрди <
[email protected]> рдиреЗ рд▓рд┐рдЦрд╛:

Ansible рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рд╣реИ,
рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреНрд▓рд╛рдЙрдб рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рд╡рд╛рдЗрд╕, рджреЛрдиреЛрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдЖрднрд╛рд╕реА
рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реА рд╕реЗрд╡рд╛рдПрдВ, рд╡реЗрдм рд╕реЗрд╡рд╛рдПрдВ рдЬреИрд╕реЗ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреАрдирд╕реНрдЯреЙрдХ, рд▓реИрдореНрдмреНрдбрд╛
рдФрд░ рд╕рднреА рдШрдЯрдХ рдЬреЛ рдЙрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ IAM рд╕реБрд░рдХреНрд╖рд╛ рдШрдЯрдХ, рдЬрдмрдХрд┐
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЕрдзрд┐рдХрддрд░ VMs/рд╣реЛрд╕реНрдЯ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рддреЛ Ansible рдореЗрдЬрдмрд╛рдиреЛрдВ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ
рдореВрд▓ рд░реВрдк рд╕реЗ 2000 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЖрдИрдЯреАред рдпрд╣рд╛рдВ рдХрднреА-рдХрднреА рдХрд┐рд╕реА рдХреЛ рдареЗрд╕ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рддреЗ
VMs рдпрд╛ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдг рд▓реЗрдХрд┐рди рд╡реЗ рд╕рднреА
рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░рдгреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рд╕реНрдЯреЗрдоред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдЬрдмрд╛рди рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред IMO рдЕрдЧрд░ рд╣рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ
with_items рд╣рдо рд╕рднреА рдПрдХ рд╕рд╛рде ansible рдХреЛ рд╕реНрдХреНрд░реИрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╕реЛрдЪреВрдВрдЧрд╛ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛
рдХреБрдЫ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрд▓реАрдЧреЗрдЯ_to рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрднреА рднреА 200+ . рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдХреНрд▓рд╛рдЙрдб рдШрдЯрдХ рдЬрд┐рдирдХреА рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╕ рд╕реВрдЪреА рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░реЗрдВ
рдФрд░ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдореЗрдЬрдмрд╛рди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ ansible рдХреЗ рд╕рд╛рде рдбрдВрдк рдХрд░реЗрдВ, рдлрд┐рд░ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
рдбреЗрд▓реАрдЧреЗрдЯ_рдЯреЛ: рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдореИрдВ рдпрд╣рд╛рдВ рдЕрдкрдиреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреВрдВрдЧрд╛ред рдЕрдЧрд░ рдпрд╣ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдХрдо рд╕реЗ рдХрдо рд╣рдо рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ
with_item рд▓реВрдк рд╕реАрд░рд┐рдпрд▓ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ
рдЙрдиреНрд╣реЗрдВ рдбреЙрдХрд░ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рдореЙрдбреНрдпреВрд▓ рдЕрдиреБрднрд╛рдЧреЛрдВ рдФрд░ рдЕрдиреБрднрд╛рдЧреЛрдВ рдкрд░ред

рд╕реЛрдо, 12 рдорд╛рд░реНрдЪ 2018 рдХреЛ 18:49 рдмрдЬреЗ, рдмреНрд░рд╛рдпрди рдХреЛрдХрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

Ansible рдХреЗрд╡рд▓ рдореЗрдЬрд╝рдмрд╛рдиреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдЙрди рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдЖрдк рд╣реИрдВ
'рдореЗрдЬрдмрд╛рди' рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЕрдЪрд╛рдирдХ рдпрд╣ рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рдереАред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/ansible/ansible/issues/12086#issuecomment-372422169 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AJd59nhLIM3s3BL_xM_WwbJS6-uROzjSks5tdsNCgaJpZM4Fx8zF
.

рдореЗрд░реЗ рдкрд╛рд╕ рдХрд╛рдВрдЯреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред рдкреНрд▓реЗрдмреБрдХ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЙрдард╛рдП рдЧрдП рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдУрдкрдирд╕реНрдЯреИрдХ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рддреИрдирд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдлрд┐рд░ рдореИрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП ips рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмрдирд╛рдП рдЧрдП рд╣реЛрд╕реНрдЯ рдкрд░ рдкреЛрд░реНрдЯ 22 рдЦреБрд▓рд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рд╡рд░реНрддрдорд╛рди рд╡рд┐рдзрд┐ рдПрдХ рдорд▓реНрдЯреАрдкреНрд▓реЗ рдкреНрд▓реЗрдмреБрдХ рдХреЗ рд╕рд╛рде рд╣реИ:

- hosts: localhost
  connection: local
  gather_facts: no
  tasks:
...
  - name: Run terraform
    terraform:
      plan_file: '{{tf_plan | default(omit)}}'
      project_path: '{{terraform_path}}/{{infra}}'
      state: '{{state}}'
      state_file: '{{stat_tfstate.stat.exists | ternary(stat_tfstate.stat.path, omit)}}'
      variables: '{{terraform_vars | default(omit)}}'
    register: tf_output

  - name: Add new hosts
    with_items: '{{tf_output.outputs.ip.value}}' # configued this in terraform to output a list of assigned ips.
    add_host:
      name: '{{item}}'
      groups: new_hosts

- hosts: new_hosts
  gather_facts: no
  connection: local
  tasks:
   - name: Wait for port 22 to become available
     wait_for:
       host: '{{ansible_host}}'
       port: 22
       state: started
       timeout: 60

рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: ansible-playbook -i localhost, deploy-test-clients.yml --extra-vars="infra=terraform_os_instances state=present"
рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реАрдорд┐рдд рдХрд╛рдордХрд╛рдЬ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ ips рдХреА рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реВрдЪреА-рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реВрдЪреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

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

30+ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП 100 рдлрд╛рдЗрд▓реЗрдВ рдЬреЛ рдЬрд┐рдВрдЬрд╛ рдХреЗ рд╕рд╛рде 5 рдПрд╕ рдореЗрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИред

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

рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдлреАрдб рдХрд░рдирд╛, рдпрд╛ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, k8s рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ kubectl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреИрдирд╛рдд рдХрд░рдирд╛ред

рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЖрд╡рд░рдг рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд┐рдВрдЬрд╛ рдХреЛ рд▓реВрдкрд┐рдВрдЧ рдФрд░ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рдХреЛ рдЙрддрд╛рд░рдирд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рдХреБрдЫ рд╕рдВрджрд░реНрдн рдФрд░ рд▓реВрдк рдкрд░рд┐рднрд╛рд╖рд╛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ with_nested рдФрд░ рджреЛрд╕реНрддреЛрдВ рдореЗрдВ рдХреНрдпрд╛ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛) рдФрд░ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрддреНрддрд░рджрд╛рдпреА рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╢рд╛рдпрдж рд░реИрдкрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЬрд┐рдиреНрдЬрд╛ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИ) .

рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

    template_parallel:
      src: "{{ item[0] }}"
      dest: "{{ tempdir }}/{{ item[1] }}-{{ item[0] | basename }}"
      context: "{{ hostvars[inventory_hostname] }}"
      nested:
      - "{{ templates.stdout_lines }}"
      - "{{ namespaces.stdout_lines }}"

рдЙрдкрд░реНрдпреБрдХреНрдд рдЙрджрд╛рд╣рд░рдг рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ ansible рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕рднреА рдЪрд░ рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡реНрдпрд╡рд╣рд╛рд░реНрдп @bcoca рд▓рдЧрддрд╛ рд╣реИ?

рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рд╣рдореЗрд╢рд╛ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЖрдк рд╡рд░реНрддрдорд╛рди рдЖрдЗрдЯрдо рдорд╛рди рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдФрд░/рдпрд╛ рдкрд┐рдЫрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд╡реЗ рдХреЗрд╡рд▓ рд╕рдВрдЪрдпреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

рд╕рд╛рде рд╣реА, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╛рдирд╛рдВрддрд░ рд╣реИрдВ, рд╣реЛрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛, рдХреЗрд╡рд▓ рдЖрдЗрдЯрдо рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВред

рдареАрдХ рд╣реИ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдХреБрдЫ рдмрд╛рдЗрдирд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рджрд╛рдпреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реИ (рдХреБрдмреЗрдХреНрдЯрд▓, рд╣реЗрд▓реНрдо, рдЖрджрд┐)ред рдореИрдВ рдПрдХ рдореГрдд-рд╕рд░рд▓, рд╣рд▓реНрдХреЗ рдЯреЗрдВрдкрд▓реЗрдЯрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЦреБрд╢ рд░рд╣реВрдВрдЧрд╛ рдпрджрд┐ рдпрд╣ рдЗрддрдирд╛ рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рдерд╛ рдХрд┐ рдпрд╣ рдорд┐рдирдЯреЛрдВ рд╕реЗ рд╕реЗрдХрдВрдб рддрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд┐рдВрдЧ рд╕рдордп рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕реЗ рддрдм рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬрдм рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдмрди рдЬрд╛рдП, рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдореЗрд░реА рдкрд┐рдЯрд╛рдИ рди рдХрд░реЗред

рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ # 10695 рджрд╛рдпрд░ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рдЖрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрди рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рдмрд╕ рдХрд╣реЗрдВ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдореЗрдЬрдмрд╛рди рдкрд░ 50 рдЧрд┐рдЯ рд░реЗрдкреЛ рдкрд░ рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ, рдореИрдВ Ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдПрдХ рдмрд╛рд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ 50 рдмрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЬреЛ рдЖрдкрдХреЛ Ansible рдХреЗ рд╕рд╛рде рдореБрдлреНрдд рдореЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдмрд╣реБрдд рдмрд╛рд░реАрдХ рдкрд░рд┐рд╡рд░реНрддрди рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ, рдФрд░ рдЖрдкрдХреЛ рд╕рднреА "рд░рди рдУрдирд▓реА рдЗрдл" рд▓реЙрдЬрд┐рдХ рдХреЛ рднреА рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдпрдж рдкрд░рд┐рдорд╛рдг рдХреЗ рджреЛ рдХреНрд░рдо рддреЗрдЬ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рднрд▓реЗ рд╣реА рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ "рд╕рдорд╛рдирд╛рдВрддрд░" рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓рдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рдП, рдпрд╣ рдореЗрд░реА рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рддрдиреА рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдФрд░ рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдКрдВрдЧрд╛ред

@wincent рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рд▓реВрдк рд╢рд╛рдпрдж рд╣рдореЗрд╢рд╛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ/рд╕рдорд░реНрдкрд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ Ansible рд╕рд┐рд░реНрдл 'рдХрд╛рд░реНрд░рд╡рд╛рдИ рд▓рд╛рдЧреВ рдХрд░рдиреЗ' рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрд░рддрд╛ рд╣реИред

@bcoca : рд╣рд╛рдБ, рдпрд╣ рдореЗрд░реА рд╕рдордЭ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред

@saplla k8s_raw рдЗрд╕рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЖрдк рдЕрдкрдиреА рд╕реВрдЪреА рдореЗрдВ yaml рдХреЛ рдЗрдирд▓рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ :) (рдпрд╣ рдЗрд╕ рдкреАрдЖрд░ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ)
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдо 2.6 @bcoca рдореЗрдВ рдХреБрдЫ рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВ рдЕрдкрдиреЗ рдбреАрдмреА рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рд╣рдЬрд╛рд░реЛрдВ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реНрдХреНрд▓ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ 25 рдорд┐рдирдЯ рджрд░реНрджрдирд╛рдХ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИ

@nerzhul рдзрдиреНрдпрд╡рд╛рдж рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИред рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдЬрд╛рджреВред рд╣рдореЗрдВ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@ рд╕рдкрд┐рд▓рд╛ рдЖрдк рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдЬрдмрд╛рди рд▓рдХреНрд╖реНрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдЪрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдж рдХреЗ рдирд╛рдЯрдХреЛрдВ рдпрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@bcoca рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реИрдХреА :)

рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ, рдпрд╣ рдмрд╣реБрдд рд╣реИрдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

https://github.com/ansible/proposals/issues/140 . рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рд╕рдорд╛рдкрди

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

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

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

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

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

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

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