рдЙрддреНрддрд░рджрд╛рдпреА рдЧрддрд┐ рдмрдврд╛рдЙрдБрджреИ

рдЙрддреНрддрд░рджрд╛рдпреА рдЧрддрд┐ рдмрдврд╛рдЙрдБрджреИ
рдпреЛ рдХреБрдиреИ рдЧреЛрдкреНрдп рдХреБрд░рд╛ рд╣реЛрдЗрди рдХрд┐ Ansible рд▓реЗ рдЖрдлреНрдиреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдзреЗрд░реИ рдЫрд┐рдЯреЛ рдЖрдлреНрдиреЛ рдХрд╛рдо рдирдЧрд░реНрди рд╕рдХреНрдЫред рдпрд╕ рд▓реЗрдЦрдорд╛, рдо рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рдХрд╛рд░рдгрд╣рд░реВ рдФрдВрд▓реНрдпрд╛рдЙрдиреЗрдЫреБ рд░ рддрдкрд╛рдИрдВрдХреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди рд╕рдХреНрдиреЗ рдЙрдкрдпреЛрдЧреА рдиреНрдпреВрдирддрдо рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрдиреЗрдЫреБред

рд╣рд╛рдореА рдпрд╣рд╛рдБ рд░ рддрд▓ Ansible 2.9.x рдмрд╛рд░реЗ рдЫрд▓рдлрд▓ рдЧрд░реНрдиреЗрдЫреМрдВ, рдЬреБрди рддрдкрд╛рдИрдВрдХреЛ рдордирдкрд░реНрдиреЗ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рднрд░реНрдЦрд░реИ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ virtualenv рдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

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

рдХрдиреНрднреЗрдпрд░рд╛рдЗрдЬреЗрд╕рди

рдХреЗрд╣реА рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реБрдиреЗрдХрд╛ рд╣реБрди рд╕рдХреНрдЫрдиреН, рдЕрд░реНрдерд╛рддреН рд▓рдХреНрд╖рд┐рдд рдкреНрд░рдгрд╛рд▓реАрдХреЛ FS рдорд╛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирдЧрд░реНрдиреЗ, рддрд░ Base64 рдорд╛ рдмреЗрд░рд┐рдПрдХреЛ zip рдЕрднрд┐рд▓реЗрдЦрд▓рд╛рдИ рд╕рд┐рдзреИ Python interpreter рдХреЛ stdin рдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ, рддрд░ рддрдереНрдп рдпреЛ рд░рд╣рдиреНрдЫ: рдпреЛ рд╕реЗрдЯрд┐рдЩ рдЕрд╡рдореВрд▓реНрдпрди рдЧрд░рд┐рдПрдХреЛ рдЫред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдХреЗрд╣реА рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рддрд░рдг Linux sudo рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩ рдкрд╣рд┐рд▓реЗ рдЕрд▓рд┐ рдХрдордЬреЛрд░ рдерд┐рдпреЛтАФрдпрд╕рд▓рд╛рдИ рдЬрдбрд╛рди рдЧрд░реНрди tty (рдЯрд░реНрдорд┐рдирд▓) рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛтАФрддреНрдпрд╕реИрд▓реЗ Ansible рд▓реЗ рдпреЛ рдзреЗрд░реИ рдЙрдкрдпреЛрдЧреА рд╕реЗрдЯрд┐рдЩрд▓рд╛рдИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реЗрдХреЛ рдерд┐рдпреЛред

pipelining = True

рддрдереНрдпрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджреИ

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

gathering = smart|explicit

ssh рдЬрдбрд╛рдирд╣рд░реВ рдкреБрди: рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

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

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

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

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

transfer_method = piped

рдЦреИрд░, рдпреЛ рд╕реЗрдЯрд┐рдЩ "рд╡рд┐рдХрд╛рд╕" рд╢рд╛рдЦрд╛рдорд╛ рдкрдирд┐ рдЕрд╡рд╕реНрдерд┐рдд рдЫред рдХрддреИ рдЧрдПрдХреЛ рдЫреИрди.

рдЪрдХреНрдХреБрд╕рдБрдЧ рдирдбрд░рд╛рдК, рдХрд╛рдБрдЯрд╛рд╕рдБрдЧ рдбрд░рд╛рдК

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

forks = 20

рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рдЪреЗрддрд╛рд╡рдиреА рджрд┐рдиреНрдЫреБ рдХрд┐ рдпрд╣рд╛рдБ рдХреЗрд╣реА рдЬрдЯрд┐рд▓рддрд╛рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН, рдирд┐рдпрдиреНрддреНрд░рдг рдореЗрд╕рд┐рдирдорд╛ рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реА рднреЛрд▓реНрдпреБрдорд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рддред рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рддрдкрд╛рдИрдВ, рдЕрд╡рд╢реНрдп рдкрдирд┐, forks=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

рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпреЛ "gathering = smart/explicit" рд░ "forks = 20" рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджреИрди: рддрд┐рдиреАрд╣рд░реВрдХреЛ YaML рд╕рдордХрдХреНрд╖рд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд рдЫреИрдирдиреНред рдпрд╛ рдд рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ ansible.cfg рдорд╛ рд╕реЗрдЯ рдЧрд░реНрдЫреМрдВ, рд╡рд╛ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд╣рд░реВ ANSIBLE_GATHERING рд░ ANSIBLE_FORKS рдорд╛рд░реНрдлрдд рдкрд╛рд╕ рдЧрд░реНрдЫреМрдВред

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

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

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

рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред рд╕рд╛рдЗрди рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реНрдХреГрдкрдпрд╛

рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди рдпреА рдордзреНрдпреЗ рдХреБрди Ansible рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ?

  • 69,6%рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ = true32

  • 34,8%рднреЗрд▓рд╛ = рд╕реНрдорд╛рд░реНрдЯ/рд╕реНрдкрд╖реНрдЯрезрем

  • 52,2%ssh_args = "-o рдХрдиреНрдЯреНрд░реЛрд▓рдорд╛рд╕реНрдЯрд░ = рд╕реНрд╡рддрдГ -o рдХрдиреНрдЯреНрд░реЛрд▓рдкрд░реНрд╕рд┐рд╕реНрдЯ =..."реирек

  • 17,4%рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг_рд╡рд┐рдзрд┐ = рдкрд╛рдЗрдк рдЧрд░рд┐рдПрдХреЛрео

  • 63,0%рдХрд╛рдБрдЯрд╛ = XXXреиреп

  • 6,5%рдпреА рдордзреНрдпреЗ рдХреЗрд╣реА рд╣реЛрдЗрди, рдХреЗрд╡рд▓ Mitogen3

  • 8,7%Mitogen + рдо рдпреА рдордзреНрдпреЗ рдХреБрди рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рек рдиреЛрдЯ рдЧрд░реНрдиреЗрдЫреБред

46 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред рез рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд░реЛрдХрд┐рдПред

Ansible рдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ?

  • 78,3%рд╣реЛ, рдЕрд╡рд╢реНрдп рдкрдирд┐ релрек

  • 21,7%рд╣реЛ, рдЕрдЭ рдзреЗрд░реИ рд╣рд╛рд░реНрдбрдХреЛрд░ рд╕рд╛рдорд╛рди рдЪрд╛рд╣рд┐рдпреЛ!резрел

  • 0,0%рд╣реЛрдЗрди, рд░ рдирд┐:рд╢реБрд▓реНрдХ рдкрдирд┐ рд╣реЛрдЗрди0

  • 0,0%рд╣реЛрдЗрди, рдпреЛ рдЬрдЯрд┐рд▓ рдЫ!!!0

69 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред 7 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред

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

DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рднрдПрдХрд╛ рд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд░рдкрд░реНрджреЛ рд╣реЛрд╕реНрдЯрд┐рдЩ рдЦрд░рд┐рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН ЁЯФе DDoS рд╕реБрд░рдХреНрд╖рд╛, VPS VDS рд╕рд░реНрднрд░рд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ рднрд░рдкрд░реНрджреЛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реЛрд╕реНрдЯрд┐рдЩ рдХрд┐рдиреНрдиреБрд╣реЛрд╕реН | ProHoster