Ansible рдХреЛ рддреЗрдЬрд╝ рдХрд░рдирд╛

Ansible рдХреЛ рддреЗрдЬрд╝ рдХрд░рдирд╛
рдпрд╣ рдХреЛрдИ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде Ansible рдЕрдкрдирд╛ рдХрд╛рдо рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рдмрддрд╛рдКрдВрдЧрд╛ рдФрд░ рдПрдХ рдЙрдкрдпреЛрдЧреА рдиреНрдпреВрдирддрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреЗрд╢ рдХрд░реВрдВрдЧрд╛, рдЬреЛ рд╕рдВрднрд╡рддрдГ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рдПрдЧреАред

рдпрд╣рд╛рдВ рдФрд░ рдиреАрдЪреЗ рд╣рдо Ansible 2.9.x рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХреЗ рд╕реЗ рддрд╛рдЬрд╝рд╛ рдмрдирд╛рдП рдЧрдП рд╡рд░реНрдЪреБрдЕрд▓рдПрдиреНрд╡ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдмрд╛рдж, рдЕрдкрдиреА рдкреНрд▓реЗрдмреБрдХ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ "ansible.cfg" рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ - рдпрд╣ рд╕реНрдерд╛рди рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рд╕рд╛рде рд╣реА рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ

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

pipelining = True

рддрдереНрдп рдЬреБрдЯрд╛рдирд╛

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

gathering = smart|explicit

рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА Ansible рдХреЛ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб ("v" рд╡рд┐рдХрд▓реНрдк, рдПрдХ рд╕реЗ рдиреМ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛) рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ ssh рдХрдиреЗрдХреНрд╢рди рд▓рдЧрд╛рддрд╛рд░ рдмрдирддреЗ рдФрд░ рдЯреВрдЯрддреЗ рд░рд╣рддреЗ рд╣реИрдВред рддреЛ, рдпрд╣рд╛рдБ рдХреБрдЫ рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдБ рднреА рд╣реИрдВред

рдЖрдк рдПрдХ рд╕рд╛рде рджреЛ рд╕реНрддрд░реЛрдВ рдкрд░ ssh рдХрдиреЗрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ: рджреЛрдиреЛрдВ рд╕реАрдзреЗ ssh рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ, рдФрд░ рдкреНрд░рдмрдВрдзрдХ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рд╣реЛрд╕реНрдЯ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордпред
рдЦреБрд▓реЗ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрд╕рдПрд╕рдПрдЪ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдХреБрдВрдЬреА рдкрд╛рд╕ рдХрд░реЗрдВред рдлрд┐рд░ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛: рдкрд╣рд▓реА рдмрд╛рд░ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдПрдХ рддрдерд╛рдХрдерд┐рдд рдирд┐рдпрдВрддреНрд░рдг рд╕реЙрдХреЗрдЯ рдмрдирд╛рдПрдЧрд╛, рдмрд╛рдж рдХреА рд╕реНрдерд╛рдкрдирд╛рдУрдВ рдкрд░, рдпрд╣ рдЗрд╕реА рд╕реЙрдХреЗрдЯ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдореМрдЬреВрджрд╛ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рдиред рдФрд░ рдпрд╣ рд╕рдм рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВред рдЖрдк рдЗрд╕рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдПрд╕рдПрд╕рдПрдЪ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг, рдФрд░ Ansible рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ ssh рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ "рдЕрдЧреНрд░реЗрд╖рд┐рдд" рдХрд░рддреЗ рд╣реИрдВред

ssh_args = "-o ControlMaster=auto -o ControlPersist=15m"

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

transfer_method = piped

рд╡реИрд╕реЗ, "рд╡рд┐рдХрд╕рд┐рдд" рд╢рд╛рдЦрд╛ рдореЗрдВ рднреА рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдореМрдЬреВрдж рд╣реИ рдХрд╣реАрдВ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИ.

рдЪрд╛рдХреВ рд╕реЗ рдордд рдбрд░реЛ, рдХрд╛рдВрдЯреЗ рд╕реЗ рдбрд░реЛ

рдПрдХ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд╕реЗрдЯрд┐рдВрдЧ рдлреЛрд░реНрдХреНрд╕ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕рд╛рде рдореЗрдЬрдмрд╛рдиреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗрдВрдЧреА рдФрд░ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреАред рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрдерди рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдереНрд░реЗрдб рдХрд╛ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ Ansible рдЕрднреА рднреА Python 2.7 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдирд╣реАрдВ, рдпрд╣рд╛рдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ! рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ Ansible рдЪрд▓рддрд╛ рд╣реИ рдкрдВрдЬ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреВрдЫрд╛ рдЬрд╛рдП, рддреЛ рдпрд╣ рдФрд░ рдЕрдзрд┐рдХ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛:

forks = 20

рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдорд╢реАрди рдкрд░ рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдпрд╣рд╛рдВ рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдмреЗрд╢рдХ, рдЖрдк рдлреЛрд░реНрдХреНрд╕=100500 рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕рдиреЗ рдХрд╣рд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛?

рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдбрд╛рд▓реЗрдВ

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, ansible.cfg (ini рдкреНрд░рд╛рд░реВрдк) рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИрдВ:

[defaults]
gathering = smart|explicit
forks = 20
[ssh_connection]
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=15m
transfer_method = piped

рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рд╕реНрд╡рд╕реНрде рд╡реНрдпрдХреНрддрд┐ рдХреА рд╕рд╛рдорд╛рдиреНрдп YaML-рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдореЗрдВ рд╕рдм рдХреБрдЫ рдЫрд┐рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:

---
all:
  vars:
    ansible_ssh_pipelining: true
    ansible_ssh_transfer_method: piped
    ansible_ssh_args: -o ControlMaster=auto -o ControlPersist=15m

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ "рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ = рд╕реНрдорд╛рд░реНрдЯ/рд╕реНрдкрд╖реНрдЯ" рдФрд░ "рдлреЛрд░реНрдХреНрд╕ = 20" рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛: рдЙрдирдХреЗ YaML рд╕рдордХрдХреНрд╖ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред рдпрд╛ рддреЛ рд╣рдо рдЙрдиреНрд╣реЗрдВ ansible.cfg рдореЗрдВ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ ANSIBLE_GATHERING рдФрд░ ANSIBLE_FORKS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

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

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

рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдЦреЛрдЬрд╛ рдЧрдпрд╛ рдерд╛ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕реНрд╡-рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдирд╛рдо "ssh.py" рдХреЗ рддрд╣рдд рдХрдиреЗрдХреНрд╢рди рдкреНрд▓рдЧрдЗрдиред рдореИрдВ рдкрдврд╝рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ, рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдиреЗ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░реЗрдЧрд╛ - рдЖрдЦрд┐рд░рдХрд╛рд░, рджреЗрд░-рд╕рдмреЗрд░ рдпрд╣ рд╕рдм рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рд▓рд╛рдПрдЧрд╛ред рдЖрдкрдХреЛ рдХрд╛рдордпрд╛рдмреА рдорд┐рд▓реЗ!

рдХреЗрд╡рд▓ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реА рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВрдХреГрдкрдпрд╛ред

рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХреМрди рд╕реА Ansible рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

  • 69,6% рддрдХ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ=рд╕рддреНрдп32

  • 34,8% рддрдХ рдПрдХрддреНрд░реАрдХрд░рдг = рд╕реНрдорд╛рд░реНрдЯ/рд╕реНрдкрд╖реНрдЯ16

  • 52,2% рддрдХ ssh_args = "-o рдХрдВрдЯреНрд░реЛрд▓рдорд╛рд╕реНрдЯрд░=рдСрдЯреЛ -рдУ рдХрдВрдЯреНрд░реЛрд▓рдкрд░реНрд╕рд┐рд╕реНрдЯ=..."24

  • 17,4% рддрдХ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг_рд╡рд┐рдзрд┐ = рдкрд╛рдЗрдк 8

  • 63,0% рддрдХ рдХрд╛рдВрдЯреЗ = XXX29

  • 6,5% рддрдХ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ, рдХреЗрд╡рд▓ рдорд┐рдЯреЛрдЬреЗрди3

  • 8,7% рддрдХ рдорд┐рдЯреЛрдЬреЗрди + рдореИрдВ рдиреЛрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕реА рд╕реЗрдЯрд┐рдВрдЧ4

46 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛. 21 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣рд╛.

рдХреНрдпрд╛ рдЖрдк Ansible рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

  • 78,3% рддрдХ рд╣рд╛рдБ, рдмрд┐рд▓реНрдХреБрд▓54

  • 21,7% рддрдХ рд╣рд╛рдБ, рдореБрдЭреЗ рдмрд╕ рдФрд░ рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░ рдЪреАрдЬреЗрдВ рдЪрд╛рд╣рд┐рдП!15

  • 0,0% рддрдХ рдирд╣реАрдВ, рдФрд░ рдпрд╣ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ

  • 0,0% рддрдХ рдирд╣реАрдВ, рдпрд╣ рдЬрдЯрд┐рд▓ рд╣реИ!!!0

69 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ред 7 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣реЗред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ