Ansible рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА



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

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

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

рд╣рдо рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╕рднреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреБрдирд┐рдпрд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рдПрдирдПрд╕ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдореМрдЬреВрджрдЧреА рдХреЗ 10 рдмрд┐рдВрджреБ рд╣реИрдВред рдЙрди рдкрд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ: рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рд╡рд┐рднрд┐рдиреНрди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдирд╛ рдЖрджрд┐ред рд╣рдордиреЗ рджреВрд░рд╕реНрде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдЙрдкрд▓рдмреНрдз рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ Ansible рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛ред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдЗрд╕ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рдХреА рдЗрд╕рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВрдЧреЗред

Ansible рдХреНрдпрд╛ рд╣реИ?


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

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

рдХреНрдпреЛрдВ?


рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ Ansible рдХреЗ рдлрд╛рдпрджреЗ (рдХрдардкреБрддрд▓реА, рдмрд╛рд╡рд░реНрдЪреА рдФрд░ рдирдордХ рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП) рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:


рд╕реНрдерд╛рдкрдирд╛


Ansible рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рдиреНрдпреВрдирддрдо рд╣реИрдВред рдЬрд┐рд╕ рдорд╢реАрди рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕ рдкрд░ рдкрд╛рдпрдерди 2.6 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рдмрдВрдзрд┐рдд рдиреЛрдбреНрд╕ рдкрд░, рдХреЗрд╡рд▓ рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг 2.4 рдпрд╛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред MS Windows рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рдЖрдкрдХреЛ рдкрд╛рдЗрдк рдпрд╛ рдЖрдкрдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:



рдЙрдмрдВрдЯреВ рдореЗрдВ, рдЦреБрдж рдХреЛ рдФрд░ рднрд░реЛрд╕реЗрдордВрдж рдХреА рд╕реНрдерд╛рдкрдирд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдФрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИ:

sudo add-apt-repository -y ppa:rquillo/ansible sudo apt-get update sudo apt-get install ansible -y 

рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рд░реНрд╡рд░ рд╕рдореВрд╣


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


рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓


рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рди / etc / ansible / рдореЗрдЬрдмрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ $ ANSIBLE_HOSTS рдкрд░реНрдпрд╛рд╡рд░рдг рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ -i рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм ansible рдФрд░ ansible-playbook рдЪрд▓ рд░рд╣рд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦ рд╕рдХрддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ (рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдиреЛрдбреНрд╕ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рдирд╛рдо рд╣реИрдВ, рдЗрди рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рд░реНрд╡рд░ рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ):

 [dbservers] one.example.com two.example.com three.example.com [dnsservers] rs1.example.com ansible_ssh_port=5555 ansible_ssh_host=192.168.1.50 rs2.example.com ns[01:50].example.com 

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

рдЖрдк рдореЗрдЬрдмрд╛рди рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЗрд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЛрдб рд╕реВрдЪрдирд╛ (рддрдереНрдп)


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

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


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ ansible рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рддрдереНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛) рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рдореЙрдбреНрдпреВрд▓


рдЕрдиреНрд╕рд┐рдмрд▓ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреА рддреИрдирд╛рддреА, рдирд┐рдпрдВрддреНрд░рдг рдФрд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдХреЛрд╖реНрдардХ рдореЗрдВ рдХреБрдЫ рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдирд╛рдо рд╣реИрдВ):


рдХреНрдпрд╛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ , рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╕реВрдЪреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред

рд╕рд░рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг


Ansible рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдореВрд╣ рдкрд░ рдПрдХ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрдпрдирд┐рдд рд╕рдореВрд╣ рдХреЗ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдПрдХ рдкрд┐рдВрдЧ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ:

 $ ansible dnsservers -m ping dns1.example.com | success >> { "changed": false, "ping": "pong" } dns2.example.com | success >> { "changed": false, "ping": "pong" } 


рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдореЗрдЬрдмрд╛рди рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛:
 $ ansible dnsservers -m setup 

рдирд┐рд╖реНрдХрд░реНрд╖
 dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.35" ], "ansible_all_ipv6_addresses": [ "fe80::ac2a:eaff:fe96:ea53" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "barrier": "off", "console": "ttyS0", "panic": "15", "ro": true, "root": "UUID=c5412437-f80e-4db4-81bc-75f751a60792", "xencons": "ttyS" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891466", "hour": "16", "iso8601": "2013-10-04T12:57:46Z", "iso8601_micro": "2013-10-04T12:57:46.130144Z", "minute": "57", "month": "10", "second": "46", "time": "16:57:46", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.35", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ae:aa:ea:96:ea:53", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "16482304", "sectorsize": 512, "size": "7.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Ubuntu", "ansible_distribution_release": "precise", "ansible_distribution_version": "12.04", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.35", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::ac2a:eaff:fe96:ea53", "prefix": "64", "scope": "link" } ], "macaddress": "ae:aa:ea:96:ea:53", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns1.example.com", "ansible_hostname": "dns1", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "precise", "description": "Ubuntu 12.04.3 LTS", "id": "Ubuntu", "major_release": "12", "release": "12.04" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 181, "ansible_memtotal_mb": 1061, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext4", "mount": "/", "options": "rw,errors=panic,barrier=0", "size_available": 6332063744, "size_total": 7798611968 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw", "size_available": 110679040, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3NzdC1kc3MAAACBAI09PTx0Jv2dAhmwGoPV45G6ZEiZ84TwjVm6HYbGOHUZe+CKnYwWThD8ZqXYzRyvVxCcVefiS6m0PKY6a5id2GySyQlTM952bDaifd09ot9pCWjwNp5q4/EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn+7BvP0Kn6AtAAAAFQDIeO7uTIVR/kzNTV9xHN/uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq+vCDOp+2rE/dIkcBcd+xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ/NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA+sJa7Sw/HF88ag/gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA43NTYAAABBBH3b5e6ZUbR+gMLMiOwcQzwuEPE+KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5WKsJ0UJ8LDQMDBCcbkbdDVXcG2lhdBOmxCVm128ztp3PJrHQoNwy1njit/Sty34HYvwjVXvuaT8ksCSAGhi8VPvRo+oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT/NWT0Ub5yHBJCWK+mYAwq0M2tK+QSrsukmG93flGLboVlWTfMIM+UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0+pEvTGr9ucNMbXoZzAhX3hPN+KG8hbZ+AX3z0TXn", "ansible_swapfree_mb": 482, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.43" ], "ansible_all_ipv6_addresses": [ "fe80::cc2b:97ff:fe7b:d221" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "autorun": "fsck", "barrier": "off", "console": "xvc0", "ro": true, "root": "/dev/mapper/system-root" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891479", "hour": "16", "iso8601": "2013-10-04T12:57:59Z", "iso8601_micro": "2013-10-04T12:57:59.276859Z", "minute": "57", "month": "10", "second": "59", "time": "16:57:59", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.43", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ce:cb:97:7b:d2:21", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "12288000", "sectorsize": 512, "size": "5.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "12582912", "sectorsize": "512", "size": "6.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Debian", "ansible_distribution_release": "NA", "ansible_distribution_version": "7.0", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.43", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::cc2b:97ff:fe7b:d221", "prefix": "64", "scope": "link" } ], "macaddress": "ce:cb:97:7b:d2:21", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns2.example.com", "ansible_hostname": "dns2", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "wheezy", "description": "Debian GNU/Linux 7.0 (wheezy)", "id": "Debian", "major_release": "7", "release": "7.0" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 9, "ansible_memtotal_mb": 547, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext3", "mount": "/", "options": "rw,relatime,errors=panic,barrier=0,data=ordered", "size_available": 3733434368, "size_total": 5684838400 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw,relatime,user_xattr,acl,barrier=1", "size_available": 112991232, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3szaC1kc3MAAACBAJFX2aR1G5QM57/3vLSlLmPR46nXNPAx0jtf6fPWkit/64W5FFBH7BW9YtPHGrucAagz1drKd9SiE+U5GlVqg/4xXOLMHmWUHitivVV9obtkyF2BM/+1OKTwxGIBP6Vu3YP/Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno+ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br+Zk3peQRf6rie7QWV/lAXyDfInbGxgklFX6yAcd+JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx+4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU/Wr+YeyKtJ3IHDz0hLRO+ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB/Fg/GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC//XAn9ir7AmANUCeXSz1Fg==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM70PfnLbbXU+cJ27tWcKoom+P+TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqltJwL3ThbfWbwBSuaZ2zZNRtcrjld0Z/ulAM6sygWTjHIeIuxT1lbJJFfKZneyo29nPho1q/HAlYGDRdcDZhKufNqDN/c9iFDbjnuPvCetUxxf+t9jKnUHnqDpO+fLYbosIEio9cmS/pOEwAU4+VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un+V6B7fTcfoZcPDrMsPj/NpOVh3egCJGg5VRJ2D3Fmoapg/R3ZPrMD/AW+PNQLa+1GSIVTc3cNu4ctXgnwQJwSjWL", "ansible_swapfree_mb": 412, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } / EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn + 7BvP0Kn6AtAAAAFQDIeO7uTIVR / kzNTV9xHN / uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq + vCDOp + 2rE / dIkcBcd + xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ / NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA + sJa7Sw / HF88ag / gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ ==", dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.35" ], "ansible_all_ipv6_addresses": [ "fe80::ac2a:eaff:fe96:ea53" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "barrier": "off", "console": "ttyS0", "panic": "15", "ro": true, "root": "UUID=c5412437-f80e-4db4-81bc-75f751a60792", "xencons": "ttyS" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891466", "hour": "16", "iso8601": "2013-10-04T12:57:46Z", "iso8601_micro": "2013-10-04T12:57:46.130144Z", "minute": "57", "month": "10", "second": "46", "time": "16:57:46", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.35", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ae:aa:ea:96:ea:53", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "16482304", "sectorsize": 512, "size": "7.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Ubuntu", "ansible_distribution_release": "precise", "ansible_distribution_version": "12.04", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.35", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::ac2a:eaff:fe96:ea53", "prefix": "64", "scope": "link" } ], "macaddress": "ae:aa:ea:96:ea:53", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns1.example.com", "ansible_hostname": "dns1", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "precise", "description": "Ubuntu 12.04.3 LTS", "id": "Ubuntu", "major_release": "12", "release": "12.04" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 181, "ansible_memtotal_mb": 1061, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext4", "mount": "/", "options": "rw,errors=panic,barrier=0", "size_available": 6332063744, "size_total": 7798611968 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw", "size_available": 110679040, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3NzdC1kc3MAAACBAI09PTx0Jv2dAhmwGoPV45G6ZEiZ84TwjVm6HYbGOHUZe+CKnYwWThD8ZqXYzRyvVxCcVefiS6m0PKY6a5id2GySyQlTM952bDaifd09ot9pCWjwNp5q4/EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn+7BvP0Kn6AtAAAAFQDIeO7uTIVR/kzNTV9xHN/uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq+vCDOp+2rE/dIkcBcd+xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ/NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA+sJa7Sw/HF88ag/gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA43NTYAAABBBH3b5e6ZUbR+gMLMiOwcQzwuEPE+KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5WKsJ0UJ8LDQMDBCcbkbdDVXcG2lhdBOmxCVm128ztp3PJrHQoNwy1njit/Sty34HYvwjVXvuaT8ksCSAGhi8VPvRo+oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT/NWT0Ub5yHBJCWK+mYAwq0M2tK+QSrsukmG93flGLboVlWTfMIM+UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0+pEvTGr9ucNMbXoZzAhX3hPN+KG8hbZ+AX3z0TXn", "ansible_swapfree_mb": 482, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.43" ], "ansible_all_ipv6_addresses": [ "fe80::cc2b:97ff:fe7b:d221" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "autorun": "fsck", "barrier": "off", "console": "xvc0", "ro": true, "root": "/dev/mapper/system-root" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891479", "hour": "16", "iso8601": "2013-10-04T12:57:59Z", "iso8601_micro": "2013-10-04T12:57:59.276859Z", "minute": "57", "month": "10", "second": "59", "time": "16:57:59", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.43", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ce:cb:97:7b:d2:21", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "12288000", "sectorsize": 512, "size": "5.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "12582912", "sectorsize": "512", "size": "6.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Debian", "ansible_distribution_release": "NA", "ansible_distribution_version": "7.0", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.43", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::cc2b:97ff:fe7b:d221", "prefix": "64", "scope": "link" } ], "macaddress": "ce:cb:97:7b:d2:21", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns2.example.com", "ansible_hostname": "dns2", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "wheezy", "description": "Debian GNU/Linux 7.0 (wheezy)", "id": "Debian", "major_release": "7", "release": "7.0" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 9, "ansible_memtotal_mb": 547, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext3", "mount": "/", "options": "rw,relatime,errors=panic,barrier=0,data=ordered", "size_available": 3733434368, "size_total": 5684838400 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw,relatime,user_xattr,acl,barrier=1", "size_available": 112991232, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3szaC1kc3MAAACBAJFX2aR1G5QM57/3vLSlLmPR46nXNPAx0jtf6fPWkit/64W5FFBH7BW9YtPHGrucAagz1drKd9SiE+U5GlVqg/4xXOLMHmWUHitivVV9obtkyF2BM/+1OKTwxGIBP6Vu3YP/Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno+ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br+Zk3peQRf6rie7QWV/lAXyDfInbGxgklFX6yAcd+JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx+4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU/Wr+YeyKtJ3IHDz0hLRO+ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB/Fg/GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC//XAn9ir7AmANUCeXSz1Fg==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM70PfnLbbXU+cJ27tWcKoom+P+TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqltJwL3ThbfWbwBSuaZ2zZNRtcrjld0Z/ulAM6sygWTjHIeIuxT1lbJJFfKZneyo29nPho1q/HAlYGDRdcDZhKufNqDN/c9iFDbjnuPvCetUxxf+t9jKnUHnqDpO+fLYbosIEio9cmS/pOEwAU4+VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un+V6B7fTcfoZcPDrMsPj/NpOVh3egCJGg5VRJ2D3Fmoapg/R3ZPrMD/AW+PNQLa+1GSIVTc3cNu4ctXgnwQJwSjWL", "ansible_swapfree_mb": 412, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } + KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s =", dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.35" ], "ansible_all_ipv6_addresses": [ "fe80::ac2a:eaff:fe96:ea53" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "barrier": "off", "console": "ttyS0", "panic": "15", "ro": true, "root": "UUID=c5412437-f80e-4db4-81bc-75f751a60792", "xencons": "ttyS" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891466", "hour": "16", "iso8601": "2013-10-04T12:57:46Z", "iso8601_micro": "2013-10-04T12:57:46.130144Z", "minute": "57", "month": "10", "second": "46", "time": "16:57:46", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.35", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ae:aa:ea:96:ea:53", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "16482304", "sectorsize": 512, "size": "7.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Ubuntu", "ansible_distribution_release": "precise", "ansible_distribution_version": "12.04", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.35", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::ac2a:eaff:fe96:ea53", "prefix": "64", "scope": "link" } ], "macaddress": "ae:aa:ea:96:ea:53", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns1.example.com", "ansible_hostname": "dns1", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "precise", "description": "Ubuntu 12.04.3 LTS", "id": "Ubuntu", "major_release": "12", "release": "12.04" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 181, "ansible_memtotal_mb": 1061, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext4", "mount": "/", "options": "rw,errors=panic,barrier=0", "size_available": 6332063744, "size_total": 7798611968 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw", "size_available": 110679040, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3NzdC1kc3MAAACBAI09PTx0Jv2dAhmwGoPV45G6ZEiZ84TwjVm6HYbGOHUZe+CKnYwWThD8ZqXYzRyvVxCcVefiS6m0PKY6a5id2GySyQlTM952bDaifd09ot9pCWjwNp5q4/EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn+7BvP0Kn6AtAAAAFQDIeO7uTIVR/kzNTV9xHN/uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq+vCDOp+2rE/dIkcBcd+xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ/NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA+sJa7Sw/HF88ag/gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA43NTYAAABBBH3b5e6ZUbR+gMLMiOwcQzwuEPE+KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5WKsJ0UJ8LDQMDBCcbkbdDVXcG2lhdBOmxCVm128ztp3PJrHQoNwy1njit/Sty34HYvwjVXvuaT8ksCSAGhi8VPvRo+oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT/NWT0Ub5yHBJCWK+mYAwq0M2tK+QSrsukmG93flGLboVlWTfMIM+UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0+pEvTGr9ucNMbXoZzAhX3hPN+KG8hbZ+AX3z0TXn", "ansible_swapfree_mb": 482, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.43" ], "ansible_all_ipv6_addresses": [ "fe80::cc2b:97ff:fe7b:d221" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "autorun": "fsck", "barrier": "off", "console": "xvc0", "ro": true, "root": "/dev/mapper/system-root" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891479", "hour": "16", "iso8601": "2013-10-04T12:57:59Z", "iso8601_micro": "2013-10-04T12:57:59.276859Z", "minute": "57", "month": "10", "second": "59", "time": "16:57:59", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.43", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ce:cb:97:7b:d2:21", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "12288000", "sectorsize": 512, "size": "5.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "12582912", "sectorsize": "512", "size": "6.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Debian", "ansible_distribution_release": "NA", "ansible_distribution_version": "7.0", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.43", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::cc2b:97ff:fe7b:d221", "prefix": "64", "scope": "link" } ], "macaddress": "ce:cb:97:7b:d2:21", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns2.example.com", "ansible_hostname": "dns2", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "wheezy", "description": "Debian GNU/Linux 7.0 (wheezy)", "id": "Debian", "major_release": "7", "release": "7.0" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 9, "ansible_memtotal_mb": 547, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext3", "mount": "/", "options": "rw,relatime,errors=panic,barrier=0,data=ordered", "size_available": 3733434368, "size_total": 5684838400 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw,relatime,user_xattr,acl,barrier=1", "size_available": 112991232, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3szaC1kc3MAAACBAJFX2aR1G5QM57/3vLSlLmPR46nXNPAx0jtf6fPWkit/64W5FFBH7BW9YtPHGrucAagz1drKd9SiE+U5GlVqg/4xXOLMHmWUHitivVV9obtkyF2BM/+1OKTwxGIBP6Vu3YP/Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno+ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br+Zk3peQRf6rie7QWV/lAXyDfInbGxgklFX6yAcd+JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx+4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU/Wr+YeyKtJ3IHDz0hLRO+ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB/Fg/GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC//XAn9ir7AmANUCeXSz1Fg==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM70PfnLbbXU+cJ27tWcKoom+P+TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqltJwL3ThbfWbwBSuaZ2zZNRtcrjld0Z/ulAM6sygWTjHIeIuxT1lbJJFfKZneyo29nPho1q/HAlYGDRdcDZhKufNqDN/c9iFDbjnuPvCetUxxf+t9jKnUHnqDpO+fLYbosIEio9cmS/pOEwAU4+VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un+V6B7fTcfoZcPDrMsPj/NpOVh3egCJGg5VRJ2D3Fmoapg/R3ZPrMD/AW+PNQLa+1GSIVTc3cNu4ctXgnwQJwSjWL", "ansible_swapfree_mb": 412, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } + oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT / NWT0Ub5yHBJCWK + mYAwq0M2tK + QSrsukmG93flGLboVlWTfMIM + UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0 + pEvTGr9ucNMbXoZzAhX3hPN + KG8hbZ + AX3z0TXn", dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.35" ], "ansible_all_ipv6_addresses": [ "fe80::ac2a:eaff:fe96:ea53" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "barrier": "off", "console": "ttyS0", "panic": "15", "ro": true, "root": "UUID=c5412437-f80e-4db4-81bc-75f751a60792", "xencons": "ttyS" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891466", "hour": "16", "iso8601": "2013-10-04T12:57:46Z", "iso8601_micro": "2013-10-04T12:57:46.130144Z", "minute": "57", "month": "10", "second": "46", "time": "16:57:46", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.35", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ae:aa:ea:96:ea:53", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "16482304", "sectorsize": 512, "size": "7.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Ubuntu", "ansible_distribution_release": "precise", "ansible_distribution_version": "12.04", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.35", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::ac2a:eaff:fe96:ea53", "prefix": "64", "scope": "link" } ], "macaddress": "ae:aa:ea:96:ea:53", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns1.example.com", "ansible_hostname": "dns1", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "precise", "description": "Ubuntu 12.04.3 LTS", "id": "Ubuntu", "major_release": "12", "release": "12.04" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 181, "ansible_memtotal_mb": 1061, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext4", "mount": "/", "options": "rw,errors=panic,barrier=0", "size_available": 6332063744, "size_total": 7798611968 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw", "size_available": 110679040, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3NzdC1kc3MAAACBAI09PTx0Jv2dAhmwGoPV45G6ZEiZ84TwjVm6HYbGOHUZe+CKnYwWThD8ZqXYzRyvVxCcVefiS6m0PKY6a5id2GySyQlTM952bDaifd09ot9pCWjwNp5q4/EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn+7BvP0Kn6AtAAAAFQDIeO7uTIVR/kzNTV9xHN/uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq+vCDOp+2rE/dIkcBcd+xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ/NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA+sJa7Sw/HF88ag/gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA43NTYAAABBBH3b5e6ZUbR+gMLMiOwcQzwuEPE+KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5WKsJ0UJ8LDQMDBCcbkbdDVXcG2lhdBOmxCVm128ztp3PJrHQoNwy1njit/Sty34HYvwjVXvuaT8ksCSAGhi8VPvRo+oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT/NWT0Ub5yHBJCWK+mYAwq0M2tK+QSrsukmG93flGLboVlWTfMIM+UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0+pEvTGr9ucNMbXoZzAhX3hPN+KG8hbZ+AX3z0TXn", "ansible_swapfree_mb": 482, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.43" ], "ansible_all_ipv6_addresses": [ "fe80::cc2b:97ff:fe7b:d221" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "autorun": "fsck", "barrier": "off", "console": "xvc0", "ro": true, "root": "/dev/mapper/system-root" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891479", "hour": "16", "iso8601": "2013-10-04T12:57:59Z", "iso8601_micro": "2013-10-04T12:57:59.276859Z", "minute": "57", "month": "10", "second": "59", "time": "16:57:59", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.43", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ce:cb:97:7b:d2:21", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "12288000", "sectorsize": 512, "size": "5.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "12582912", "sectorsize": "512", "size": "6.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Debian", "ansible_distribution_release": "NA", "ansible_distribution_version": "7.0", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.43", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::cc2b:97ff:fe7b:d221", "prefix": "64", "scope": "link" } ], "macaddress": "ce:cb:97:7b:d2:21", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns2.example.com", "ansible_hostname": "dns2", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "wheezy", "description": "Debian GNU/Linux 7.0 (wheezy)", "id": "Debian", "major_release": "7", "release": "7.0" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 9, "ansible_memtotal_mb": 547, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext3", "mount": "/", "options": "rw,relatime,errors=panic,barrier=0,data=ordered", "size_available": 3733434368, "size_total": 5684838400 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw,relatime,user_xattr,acl,barrier=1", "size_available": 112991232, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3szaC1kc3MAAACBAJFX2aR1G5QM57/3vLSlLmPR46nXNPAx0jtf6fPWkit/64W5FFBH7BW9YtPHGrucAagz1drKd9SiE+U5GlVqg/4xXOLMHmWUHitivVV9obtkyF2BM/+1OKTwxGIBP6Vu3YP/Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno+ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br+Zk3peQRf6rie7QWV/lAXyDfInbGxgklFX6yAcd+JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx+4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU/Wr+YeyKtJ3IHDz0hLRO+ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB/Fg/GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC//XAn9ir7AmANUCeXSz1Fg==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM70PfnLbbXU+cJ27tWcKoom+P+TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqltJwL3ThbfWbwBSuaZ2zZNRtcrjld0Z/ulAM6sygWTjHIeIuxT1lbJJFfKZneyo29nPho1q/HAlYGDRdcDZhKufNqDN/c9iFDbjnuPvCetUxxf+t9jKnUHnqDpO+fLYbosIEio9cmS/pOEwAU4+VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un+V6B7fTcfoZcPDrMsPj/NpOVh3egCJGg5VRJ2D3Fmoapg/R3ZPrMD/AW+PNQLa+1GSIVTc3cNu4ctXgnwQJwSjWL", "ansible_swapfree_mb": 412, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } / 64W5FFBH7BW9YtPHGrucAagz1drKd9SiE + U5GlVqg / 4xXOLMHmWUHitivVV9obtkyF2BM / + 1OKTwxGIBP6Vu3YP / Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno + ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br + Zk3peQRf6rie7QWV / lAXyDfInbGxgklFX6yAcd + JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx + 4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU / Wr + YeyKtJ3IHDz0hLRO + ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB / Fg / GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC // XAn9ir7AmANUCeXSz1Fg ==", dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.35" ], "ansible_all_ipv6_addresses": [ "fe80::ac2a:eaff:fe96:ea53" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "barrier": "off", "console": "ttyS0", "panic": "15", "ro": true, "root": "UUID=c5412437-f80e-4db4-81bc-75f751a60792", "xencons": "ttyS" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891466", "hour": "16", "iso8601": "2013-10-04T12:57:46Z", "iso8601_micro": "2013-10-04T12:57:46.130144Z", "minute": "57", "month": "10", "second": "46", "time": "16:57:46", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.35", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ae:aa:ea:96:ea:53", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "16482304", "sectorsize": 512, "size": "7.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Ubuntu", "ansible_distribution_release": "precise", "ansible_distribution_version": "12.04", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.35", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::ac2a:eaff:fe96:ea53", "prefix": "64", "scope": "link" } ], "macaddress": "ae:aa:ea:96:ea:53", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns1.example.com", "ansible_hostname": "dns1", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "precise", "description": "Ubuntu 12.04.3 LTS", "id": "Ubuntu", "major_release": "12", "release": "12.04" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 181, "ansible_memtotal_mb": 1061, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext4", "mount": "/", "options": "rw,errors=panic,barrier=0", "size_available": 6332063744, "size_total": 7798611968 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw", "size_available": 110679040, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3NzdC1kc3MAAACBAI09PTx0Jv2dAhmwGoPV45G6ZEiZ84TwjVm6HYbGOHUZe+CKnYwWThD8ZqXYzRyvVxCcVefiS6m0PKY6a5id2GySyQlTM952bDaifd09ot9pCWjwNp5q4/EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn+7BvP0Kn6AtAAAAFQDIeO7uTIVR/kzNTV9xHN/uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq+vCDOp+2rE/dIkcBcd+xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ/NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA+sJa7Sw/HF88ag/gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA43NTYAAABBBH3b5e6ZUbR+gMLMiOwcQzwuEPE+KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5WKsJ0UJ8LDQMDBCcbkbdDVXcG2lhdBOmxCVm128ztp3PJrHQoNwy1njit/Sty34HYvwjVXvuaT8ksCSAGhi8VPvRo+oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT/NWT0Ub5yHBJCWK+mYAwq0M2tK+QSrsukmG93flGLboVlWTfMIM+UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0+pEvTGr9ucNMbXoZzAhX3hPN+KG8hbZ+AX3z0TXn", "ansible_swapfree_mb": 482, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.43" ], "ansible_all_ipv6_addresses": [ "fe80::cc2b:97ff:fe7b:d221" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "autorun": "fsck", "barrier": "off", "console": "xvc0", "ro": true, "root": "/dev/mapper/system-root" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891479", "hour": "16", "iso8601": "2013-10-04T12:57:59Z", "iso8601_micro": "2013-10-04T12:57:59.276859Z", "minute": "57", "month": "10", "second": "59", "time": "16:57:59", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.43", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ce:cb:97:7b:d2:21", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "12288000", "sectorsize": 512, "size": "5.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "12582912", "sectorsize": "512", "size": "6.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Debian", "ansible_distribution_release": "NA", "ansible_distribution_version": "7.0", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.43", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::cc2b:97ff:fe7b:d221", "prefix": "64", "scope": "link" } ], "macaddress": "ce:cb:97:7b:d2:21", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns2.example.com", "ansible_hostname": "dns2", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "wheezy", "description": "Debian GNU/Linux 7.0 (wheezy)", "id": "Debian", "major_release": "7", "release": "7.0" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 9, "ansible_memtotal_mb": 547, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext3", "mount": "/", "options": "rw,relatime,errors=panic,barrier=0,data=ordered", "size_available": 3733434368, "size_total": 5684838400 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw,relatime,user_xattr,acl,barrier=1", "size_available": 112991232, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3szaC1kc3MAAACBAJFX2aR1G5QM57/3vLSlLmPR46nXNPAx0jtf6fPWkit/64W5FFBH7BW9YtPHGrucAagz1drKd9SiE+U5GlVqg/4xXOLMHmWUHitivVV9obtkyF2BM/+1OKTwxGIBP6Vu3YP/Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno+ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br+Zk3peQRf6rie7QWV/lAXyDfInbGxgklFX6yAcd+JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx+4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU/Wr+YeyKtJ3IHDz0hLRO+ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB/Fg/GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC//XAn9ir7AmANUCeXSz1Fg==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM70PfnLbbXU+cJ27tWcKoom+P+TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqltJwL3ThbfWbwBSuaZ2zZNRtcrjld0Z/ulAM6sygWTjHIeIuxT1lbJJFfKZneyo29nPho1q/HAlYGDRdcDZhKufNqDN/c9iFDbjnuPvCetUxxf+t9jKnUHnqDpO+fLYbosIEio9cmS/pOEwAU4+VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un+V6B7fTcfoZcPDrMsPj/NpOVh3egCJGg5VRJ2D3Fmoapg/R3ZPrMD/AW+PNQLa+1GSIVTc3cNu4ctXgnwQJwSjWL", "ansible_swapfree_mb": 412, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } + рдкреА + TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y =", dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.35" ], "ansible_all_ipv6_addresses": [ "fe80::ac2a:eaff:fe96:ea53" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "barrier": "off", "console": "ttyS0", "panic": "15", "ro": true, "root": "UUID=c5412437-f80e-4db4-81bc-75f751a60792", "xencons": "ttyS" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891466", "hour": "16", "iso8601": "2013-10-04T12:57:46Z", "iso8601_micro": "2013-10-04T12:57:46.130144Z", "minute": "57", "month": "10", "second": "46", "time": "16:57:46", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.35", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ae:aa:ea:96:ea:53", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "16482304", "sectorsize": 512, "size": "7.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Ubuntu", "ansible_distribution_release": "precise", "ansible_distribution_version": "12.04", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.35", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::ac2a:eaff:fe96:ea53", "prefix": "64", "scope": "link" } ], "macaddress": "ae:aa:ea:96:ea:53", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns1.example.com", "ansible_hostname": "dns1", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "precise", "description": "Ubuntu 12.04.3 LTS", "id": "Ubuntu", "major_release": "12", "release": "12.04" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 181, "ansible_memtotal_mb": 1061, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext4", "mount": "/", "options": "rw,errors=panic,barrier=0", "size_available": 6332063744, "size_total": 7798611968 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw", "size_available": 110679040, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3NzdC1kc3MAAACBAI09PTx0Jv2dAhmwGoPV45G6ZEiZ84TwjVm6HYbGOHUZe+CKnYwWThD8ZqXYzRyvVxCcVefiS6m0PKY6a5id2GySyQlTM952bDaifd09ot9pCWjwNp5q4/EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn+7BvP0Kn6AtAAAAFQDIeO7uTIVR/kzNTV9xHN/uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq+vCDOp+2rE/dIkcBcd+xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ/NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA+sJa7Sw/HF88ag/gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA43NTYAAABBBH3b5e6ZUbR+gMLMiOwcQzwuEPE+KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5WKsJ0UJ8LDQMDBCcbkbdDVXcG2lhdBOmxCVm128ztp3PJrHQoNwy1njit/Sty34HYvwjVXvuaT8ksCSAGhi8VPvRo+oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT/NWT0Ub5yHBJCWK+mYAwq0M2tK+QSrsukmG93flGLboVlWTfMIM+UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0+pEvTGr9ucNMbXoZzAhX3hPN+KG8hbZ+AX3z0TXn", "ansible_swapfree_mb": 482, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.43" ], "ansible_all_ipv6_addresses": [ "fe80::cc2b:97ff:fe7b:d221" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "autorun": "fsck", "barrier": "off", "console": "xvc0", "ro": true, "root": "/dev/mapper/system-root" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891479", "hour": "16", "iso8601": "2013-10-04T12:57:59Z", "iso8601_micro": "2013-10-04T12:57:59.276859Z", "minute": "57", "month": "10", "second": "59", "time": "16:57:59", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.43", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ce:cb:97:7b:d2:21", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "12288000", "sectorsize": 512, "size": "5.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "12582912", "sectorsize": "512", "size": "6.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Debian", "ansible_distribution_release": "NA", "ansible_distribution_version": "7.0", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.43", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::cc2b:97ff:fe7b:d221", "prefix": "64", "scope": "link" } ], "macaddress": "ce:cb:97:7b:d2:21", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns2.example.com", "ansible_hostname": "dns2", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "wheezy", "description": "Debian GNU/Linux 7.0 (wheezy)", "id": "Debian", "major_release": "7", "release": "7.0" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 9, "ansible_memtotal_mb": 547, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext3", "mount": "/", "options": "rw,relatime,errors=panic,barrier=0,data=ordered", "size_available": 3733434368, "size_total": 5684838400 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw,relatime,user_xattr,acl,barrier=1", "size_available": 112991232, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3szaC1kc3MAAACBAJFX2aR1G5QM57/3vLSlLmPR46nXNPAx0jtf6fPWkit/64W5FFBH7BW9YtPHGrucAagz1drKd9SiE+U5GlVqg/4xXOLMHmWUHitivVV9obtkyF2BM/+1OKTwxGIBP6Vu3YP/Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno+ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br+Zk3peQRf6rie7QWV/lAXyDfInbGxgklFX6yAcd+JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx+4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU/Wr+YeyKtJ3IHDz0hLRO+ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB/Fg/GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC//XAn9ir7AmANUCeXSz1Fg==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM70PfnLbbXU+cJ27tWcKoom+P+TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqltJwL3ThbfWbwBSuaZ2zZNRtcrjld0Z/ulAM6sygWTjHIeIuxT1lbJJFfKZneyo29nPho1q/HAlYGDRdcDZhKufNqDN/c9iFDbjnuPvCetUxxf+t9jKnUHnqDpO+fLYbosIEio9cmS/pOEwAU4+VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un+V6B7fTcfoZcPDrMsPj/NpOVh3egCJGg5VRJ2D3Fmoapg/R3ZPrMD/AW+PNQLa+1GSIVTc3cNu4ctXgnwQJwSjWL", "ansible_swapfree_mb": 412, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } / HAlYGDRdcDZhKufNqDN / c9iFDbjnuPvCetUxxf + t9jKnUHnqDpO + fLYbosIEio9cmS / pOEwAU4 + VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un + V6B7fTcfoZcPDrMsPj / NpOVh3egCJGg5VRJ2D3Fmoapg / R3ZPrMD / рдРрдбрд╡рд░реНрдбреНрд╕ + PNQLa + 1GSIVTc3cNu4ctXgnwQJwSjWL", dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.35" ], "ansible_all_ipv6_addresses": [ "fe80::ac2a:eaff:fe96:ea53" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "barrier": "off", "console": "ttyS0", "panic": "15", "ro": true, "root": "UUID=c5412437-f80e-4db4-81bc-75f751a60792", "xencons": "ttyS" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891466", "hour": "16", "iso8601": "2013-10-04T12:57:46Z", "iso8601_micro": "2013-10-04T12:57:46.130144Z", "minute": "57", "month": "10", "second": "46", "time": "16:57:46", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.35", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ae:aa:ea:96:ea:53", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "16482304", "sectorsize": 512, "size": "7.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "16777216", "sectorsize": "512", "size": "8.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Ubuntu", "ansible_distribution_release": "precise", "ansible_distribution_version": "12.04", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.35", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::ac2a:eaff:fe96:ea53", "prefix": "64", "scope": "link" } ], "macaddress": "ae:aa:ea:96:ea:53", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns1.example.com", "ansible_hostname": "dns1", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "precise", "description": "Ubuntu 12.04.3 LTS", "id": "Ubuntu", "major_release": "12", "release": "12.04" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 181, "ansible_memtotal_mb": 1061, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext4", "mount": "/", "options": "rw,errors=panic,barrier=0", "size_available": 6332063744, "size_total": 7798611968 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw", "size_available": 110679040, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3NzdC1kc3MAAACBAI09PTx0Jv2dAhmwGoPV45G6ZEiZ84TwjVm6HYbGOHUZe+CKnYwWThD8ZqXYzRyvVxCcVefiS6m0PKY6a5id2GySyQlTM952bDaifd09ot9pCWjwNp5q4/EQdIG3R9Kt96DfsraVrvmJWG1qQMaUlnsiZzxHWv4Fn+7BvP0Kn6AtAAAAFQDIeO7uTIVR/kzNTV9xHN/uW6KJ8wAAAIALATT5RMZUQhtwz42ek8254hrlEqSyMnWyq+vCDOp+2rE/dIkcBcd+xnfV2lTkeizAMTzYETOE8IES4rXWKFf2AlBTk9IQDnZI0ABlpUmXQVZvHxl8pKwLwzRPA7XeW4f4bXQXimUPHzCdnrwxLj7Qht4JaspL2znMCKOtpwWBrAAAAIB45bgP1JIlVpWaj1FJ/NKhDDv5D9yM7GXaljsUXL1T7KGtZ9yMA+sJa7Sw/HF88ag/gjxe6kUwmkrsvtrsza3WpfaMYupKFZtJwmQabxYPM1QWAtVONxeSo30IimFLQuaj6tgzfD1faJVyDdFydWNDUfZ3cn5iNsCz6khsc241zQ==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHA43NTYAAABBBH3b5e6ZUbR+gMLMiOwcQzwuEPE+KIXHmzywNcOIltWY4ZiGRXlQZMyEFMENiOSivFHByMBV0wJj8VMxJocHd7s=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDH5WKsJ0UJ8LDQMDBCcbkbdDVXcG2lhdBOmxCVm128ztp3PJrHQoNwy1njit/Sty34HYvwjVXvuaT8ksCSAGhi8VPvRo+oqGaSdt3T39Ew5DsKeJTOZDqL1Vz1jNbPvvVjsdB7v34zTgEdnjuTzlwPvtNtXyTJonXC0KDlLl5WAiYSb9XpLB0rjjKAGNautp0Mgx6olWadpMT/NWT0Ub5yHBJCWK+mYAwq0M2tK+QSrsukmG93flGLboVlWTfMIM+UUR2MH3OxI7ew6Oc5P2ligH3rcHhcAWwXLIAsMJ5vcmH0+pEvTGr9ucNMbXoZzAhX3hPN+KG8hbZ+AX3z0TXn", "ansible_swapfree_mb": 482, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } dns1.example.com | success >> { "ansible_facts": { "ansible_all_ipv4_addresses": [ "192.168.1.43" ], "ansible_all_ipv6_addresses": [ "fe80::cc2b:97ff:fe7b:d221" ], "ansible_architecture": "x86_64", "ansible_bios_date": "", "ansible_bios_version": "", "ansible_cmdline": { "autorun": "fsck", "barrier": "off", "console": "xvc0", "ro": true, "root": "/dev/mapper/system-root" }, "ansible_date_time": { "date": "2013-10-04", "day": "04", "epoch": "1380891479", "hour": "16", "iso8601": "2013-10-04T12:57:59Z", "iso8601_micro": "2013-10-04T12:57:59.276859Z", "minute": "57", "month": "10", "second": "59", "time": "16:57:59", "tz": "MSK", "year": "2013" }, "ansible_default_ipv4": { "address": "192.168.1.43", "alias": "eth0", "gateway": "192.168.1.1", "interface": "eth0", "macaddress": "ce:cb:97:7b:d2:21", "mtu": 1500, "netmask": "255.255.255.0", "network": "192.168.1.0", "type": "ether" }, "ansible_default_ipv6": {}, "ansible_devices": { "xvda": { "holders": [], "host": "", "model": null, "partitions": { "xvda1": { "sectors": "290816", "sectorsize": 512, "size": "142.00 MB", "start": "2048" }, "xvda2": { "sectors": "12288000", "sectorsize": 512, "size": "5.86 GB", "start": "292864" } }, "removable": "0", "rotational": "0", "scheduler_mode": "cfq", "sectors": "12582912", "sectorsize": "512", "size": "6.00 GB", "support_discard": "0", "vendor": null } }, "ansible_distribution": "Debian", "ansible_distribution_release": "NA", "ansible_distribution_version": "7.0", "ansible_domain": "", "ansible_eth0": { "active": true, "device": "eth0", "ipv4": { "address": "192.168.1.43", "netmask": "255.255.255.0", "network": "192.168.1.0" }, "ipv6": [ { "address": "fe80::cc2b:97ff:fe7b:d221", "prefix": "64", "scope": "link" } ], "macaddress": "ce:cb:97:7b:d2:21", "module": "xennet", "mtu": 1500, "type": "ether" }, "ansible_form_factor": "", "ansible_fqdn": "dns2.example.com", "ansible_hostname": "dns2", "ansible_interfaces": [ "lo", "eth0" ], "ansible_kernel": "3.1.0-1.2-xen", "ansible_lo": { "active": true, "device": "lo", "ipv4": { "address": "127.0.0.1", "netmask": "255.0.0.0", "network": "127.0.0.0" }, "ipv6": [ { "address": "::1", "prefix": "128", "scope": "host" } ], "mtu": 16436, "type": "loopback" }, "ansible_lsb": { "codename": "wheezy", "description": "Debian GNU/Linux 7.0 (wheezy)", "id": "Debian", "major_release": "7", "release": "7.0" }, "ansible_machine": "x86_64", "ansible_memfree_mb": 9, "ansible_memtotal_mb": 547, "ansible_mounts": [ { "device": "/dev/mapper/system-root", "fstype": "ext3", "mount": "/", "options": "rw,relatime,errors=panic,barrier=0,data=ordered", "size_available": 3733434368, "size_total": 5684838400 }, { "device": "/dev/xvda1", "fstype": "ext2", "mount": "/boot", "options": "rw,relatime,user_xattr,acl,barrier=1", "size_available": 112991232, "size_total": 139539456 } ], "ansible_os_family": "Debian", "ansible_pkg_mgr": "apt", "ansible_processor": [ "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz", "Intel(R) Xeon(R) CPU E5620 @ 2.40GHz" ], "ansible_processor_cores": 1, "ansible_processor_count": 8, "ansible_processor_threads_per_core": 1, "ansible_processor_vcpus": 8, "ansible_product_name": "", "ansible_product_serial": "", "ansible_product_uuid": "", "ansible_product_version": "", "ansible_python_version": "2.7.3", "ansible_selinux": false, "ansible_ssh_host_key_dsa_public": "AAAAB3szaC1kc3MAAACBAJFX2aR1G5QM57/3vLSlLmPR46nXNPAx0jtf6fPWkit/64W5FFBH7BW9YtPHGrucAagz1drKd9SiE+U5GlVqg/4xXOLMHmWUHitivVV9obtkyF2BM/+1OKTwxGIBP6Vu3YP/Wbpbv5TDCxjClWpZs3kCWrqRsScTdZTkk66YDTmbAAAAFQCEEjs6jtnyfF45scSgIxy60we9bQAAAIAzlb3pno+ljpE7yEjh6oBvl1RgUeYzwJZxHkBRMfOt30DyaCuXhNVhykhGYFqybv66BSu3C2br+Zk3peQRf6rie7QWV/lAXyDfInbGxgklFX6yAcd+JYj4u2vJ9j2k3GinnN9TLL3kafn0oqduy8sujozTCFZcG7dJx+4NZY29ZgAAAIBB94cFFAxC56HApvuRAcU/Wr+YeyKtJ3IHDz0hLRO+ziyuMgr2ajG80LNBGzG3rV2AEXSlH6egXaLfzcn9iPlB7VFpB/Fg/GZGOSpIUCFSSpEke6AoO8Z19Y5uR2EfcegyHhWVXGkIsaIon5KnH1bC//XAn9ir7AmANUCeXSz1Fg==", "ansible_ssh_host_key_ecdsa_public": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBM70PfnLbbXU+cJ27tWcKoom+P+TC08EncjB71bF4zp7Kw46YrWVjtPoFqAy3b1E2KkzUNcSrbJyEoCIgfzCC3Y=", "ansible_ssh_host_key_rsa_public": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqltJwL3ThbfWbwBSuaZ2zZNRtcrjld0Z/ulAM6sygWTjHIeIuxT1lbJJFfKZneyo29nPho1q/HAlYGDRdcDZhKufNqDN/c9iFDbjnuPvCetUxxf+t9jKnUHnqDpO+fLYbosIEio9cmS/pOEwAU4+VBB8mdNAj9fjqrE08xcdEgt8QnAjIRlKDCdtTuYbisyt96GR10RrLPkr0epqGmHE6vzC1PyidqmQkGuCrcJHPJiS40J7S8QVP11TRS4Un+V6B7fTcfoZcPDrMsPj/NpOVh3egCJGg5VRJ2D3Fmoapg/R3ZPrMD/AW+PNQLa+1GSIVTc3cNu4ctXgnwQJwSjWL", "ansible_swapfree_mb": 412, "ansible_swaptotal_mb": 487, "ansible_system": "Linux", "ansible_system_vendor": "", "ansible_user_id": "root", "ansible_userspace_architecture": "x86_64", "ansible_userspace_bits": "64", "ansible_virtualization_role": "guest", "ansible_virtualization_type": "xen" }, "changed": false } 



рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЖрдк рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╡реЙрд▓реНрдпреВрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛, рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЖрдХрд╛рд░ рджреЗрдВ) рдЙрджрд╛рд╣рд░рдг рд╕рдореВрд╣ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде:
 $ ansible dnsservers -m lvol -a "vg=examplegroup lv=examplevolume size=1024 state=present" dns1.example.com | success >> { "changed": true, "msg": "" } dns2.example.com | success >> { "changed": false, "msg": "" } 

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

рдЕрдиреБрд▓реЗрдЦ (рдкреНрд▓реЗрдмреБрдХ)


Ansible рдХреА рд╕рднреА рд▓рд┐рдкрд┐рдпрд╛рдБ YAML рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИрдВред рдпрд╣ рдПрдХ рдорд╛рдирд╡-рдкрдардиреАрдп рдХреНрд░рдордмрджреНрдз рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рд╣реИ, рдЬреЛ XML рдпрд╛ JSON рд╕реЗ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде ansible-playbook рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 ansible-playbook <__.yml> ... [ ] 

рд╡рд░реНрдгреЛрдВ рдХрд╛ рдХреНрд░рдо "тАУтАУтАУ" рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╣ YAML рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╢реБрд░реБрдЖрдд рд╣реИ)ред рд╕реВрдЪреА рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рднрд╛рдЧ рдПрдХ рд╣рд╛рдЗрдлрд╝рди (-) рд╕реЗ рдкрд╣рд▓реЗ рд╣реИ:

 --- - hosts: webservers 

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░ / рд╕рдореВрд╣ рд╣реИрдВ:


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рднреА, рдирд┐рдореНрди рдорд╛рдкрджрдВрдбреЛрдВ рдпрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд┐рд╡рд░рдг рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рдЖрдЗрдП рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рд╣реЛрд╕реНрдЯреНрд╕ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ, рдкреНрд░рдмрдВрдзрд┐рдд рдиреЛрдбреНрд╕ рдХреЗ рд╕рдореВрд╣ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рд╣реЛрдВрдЧреЗред

рддреЛ, рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ:

 hosts: webservers 

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди webservers рд╕рдореВрд╣ рд╕реЗ рдиреЛрдбреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдВрдЧреЗред

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

 --- - hosts: webservers user: yourname sudo: yes 

рдпрджрд┐ рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ" рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдХрд╛рд░реНрдп рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

Vars рдЕрдиреБрднрд╛рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЪрд░ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ:

 - hosts: webservers vars: http_port: 80 max_clients: 200 

рдкреНрд░рдмрдВрдзрд┐рдд рдиреЛрдб рдкрд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ / рд░рд╛рдЬреНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛рд░реНрдп рдЦрдВрдб рдореЗрдВ рджреА рдЧрдИ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рдирд╛рдо рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдЕрдиреБрд░рдХреНрд╖рдг рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛:

 - hosts: webservers user: yourname tasks: - service: name=nginx state=started 

рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:

 --- - hosts: webservers user: yourname tasks: - service: name=nginx state=started sudo: yes 


рдорд╛рдирдХреАрдХрд░рдг


Ansbile Jinja2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ( рдкрд╛рд╡рд░рдбрд╛рдиреНрд╕ рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛):

 #       gpgsql-password={{ lookup('password', 'credentials/' + inventory_hostname + '/postgresql/powerdns', length=15) }} # IPv4-,   тАЬтАЭ powerdns local-address={{ ansible_default_ipv4.address }} # IPv6-,   тАЬтАЭ powerdns local-ipv6={{ ansible_default_ipv6.address }} # nsid dns- (EDNS option 3, rfc5001) server-id={{ ansible_hostname }} 

рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

рдЯреЗрдореНрдкрд▓реЗрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдкреАрдврд╝реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рд╡рд╣ рдЖрд╡рд╢реНрдпрдХ рдкрд╣реБрдБрдЪ рдЕрдзрд┐рдХрд╛рд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рд╛рдореА / рд╕рдореВрд╣ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ:

 - name: generate powerdns config template: src=pdns.conf.j2 dest=/etc/powerdns/pdns.conf owner=powerdns group=powerdns mode=600 

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

рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░


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

 --- - hosts: webservers vars: max_clients: 200 tasks: #       #  ,     тАЬrestart apacheтАЭ #    - name: write the apache config file template: src=/srv/httpd.j2 dest=/etc/httpd.conf notify: - restart apache - name: ensure apache is running service: name=httpd state=started #    handlers: - name: restart apache #   service   - service: name=httpd state=restarted 


рдирд┐рд╖реНрдкрд╛рджрди рдирд┐рдпрдВрддреНрд░рдг


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХрд┐рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдХреБрдЫ рдЪрд░ рдпрд╛ рд░рд╛рдЬреНрдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░, рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдпрд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдЬрдм" рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 tasks: #        #   last_result - template: src=/templates/foo.j2 dest=/etc/foo.conf register: last_result #   last_result.changed     #  true -   ,  -   - command: echo 'the file has changed' when: last_result.changed 


рдХрд┐рд╕реА рдЕрдиреНрдп рд╣реЛрд╕реНрдЯ рдХреЛ рдПрдХ рдХрд╛рд░реНрдп рд╕реМрдВрдкрдирд╛


рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдиреЛрдб рдкрд░ рдПрдХ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдиреЛрдб рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЛрдб рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдЕрд▓рдЧ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рдд рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдирд┐рдзрд┐ate_to рдирд┐рдпрдВрддреНрд░рдг рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 - name: disable nagios alerts for this host webserver service nagios: action=disable_alerts host={{inventory_hostname}} services=dnsserver delegate_to: mon_host.example.com 

рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд╛рдЧреЛрдЗрд╕ рдореЗрдВ dnsserver рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдЕрдХреНрд╖рдо рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рднреВрдорд┐рдХрд╛


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

 --- - name: check and apply basic configuration to all hosts hosts: all roles: - common - name: check and apply configuration to group1 hosts: group1 roles: - pgsql - name: check and apply configuration to group2 hosts: group2 roles: - fooapp 


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛


 тФЬтФАтФА production #    - тФЬтФАтФА stage #    stage- тФВ тФЬтФАтФА group_vars/ тФВ тФЬтФАтФА group1 #     тФВ тФФтФАтФА group2 #   тФЬтФАтФА host_vars/ тФВ тФЬтФАтФА hostname1 #      тФВ тФФтФАтФА hostname2 #     тФВ тФЬтФАтФА site.yml #   тФЬтФАтФА webservers.yml #   - тФЬтФАтФА dbservers.yml #      тФВ тФФтФАтФА roles/ тФЬтФАтФА common/ #    тФВ тФЬтФАтФА tasks/ # тФВ тФВ тФФтФАтФА main.yml # -   ,    тФВ тФВ #   тФВ тФЬтФАтФА handlers/ # тФВ тФВ тФФтФАтФА main.yml # -    (handlers) тФВ тФЬтФАтФА templates/ # -   ,   тФВ тФВ тФФтФАтФА ntp.conf.j2 #  -   ntp тФВ тФЬтФАтФА files/ # тФВ тФВ тФЬтФАтФА bar.txt # - -     тФВ тФВ тФФтФАтФА foo.sh # -       тФВ тФФтФАтФА vars/ # тФВ тФФтФАтФА main.yml # -     тФВ тФЬтФАтФА pgsql/ #   ,  ,   pgsql тФФтФАтФА fooapp/ #   ,  ,   fooapp 



, , : PostgreSQL 9.3 debian-based . .

 --- - name: install postgresql 9.3 #  playbook'a # ,  ,         vars_prompt: hosts: "Please enter hosts group name" #       (    $ANSIBLE_HOSTS) username: "Please enter username for auth" #        hosts: $hosts # user: $username sudo: True accelerate: true vars: app_username: 'app_user' #    ,      app_host_ip: '192.168.0.100' # ip-    ,         app_database_name: 'appdb' #     tasks: #       python-software-properties #     apt.  : # pkg -     # state -    , # update_cache -       - name: check add-apt-repository apt: pkg=python-software-properties state=latest update_cache=yes #    apt-  postgresql #  : # url - URL     # state -   - name: add apt key apt_key: url=http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc state=present #  ,         - name: add apt repo apt_repository: repo='deb http://apt.postgresql.org/pub/repos/apt/ ${ansible_lsb.codename}-pgdg main' #          - name: install pgdg-key apt: pkg=pgdg-keyring state=latest update_cache=yes #   postgresql-9.3 (    ) #  python-psycopg2 -    postgresql_user, postgresql_db, postgresql_privs - name: install packages apt: pkg=$item state=latest with_items: - postgresql-9.3 - python-psycopg2 - python-keyczar #        c  LOGIN #      credentials/_/postgres/_ - name: create postresql user for some app #        postgres (   postgresql) sudo: yes sudo_user: postgres postgresql_user: user=${app_username} password="{{ lookup('password','example/credentials/' + inventory_hostname + '/postgres/' + app_username, length=15) }}" role_attr_flags=LOGIN #            - name: create db for our app sudo: yes sudo_user: postgres action: postgresql_db name=${app_database_name} owner=${app_username} encoding='UTF8' lc_collate='en_US.UTF-8' lc_ctype='en_US.UTF-8' template='template0' state=present #      ,       - name: add app_user password to .pg_pass file on server with our app sudo: yes sudo_user: ${app_username} delegate_to: ${app_host_ip} lineinfile: dest=/home/${app_username}/.pgpass regexp='^{{ inventory_hostname }}\:\*\:${app_database_name}\:${app_username}' line='{{ inventory_hostname }}:*:${app_database_name}:${app_username}:{{ lookup('password','example/credentials/' + inventory_hostname + '/postgres/' + app_username, length=15) }}' create=yes state=present backup=yes #   pg_hba.conf ,     ip-        - name: add entry to pg_hba.conf lineinfile: dest=/etc/postgresql/9.3/main/pg_hba.conf regexp='host ${app_database_name} ${app_username} ${app_host_ip}/32 md5' line='host ${app_database_name} ${app_username} ${app_host_ip}/32 md5' state=present #   ,       postgresql #    ansible   "/ "  , #      playbook'a     notify: - reload postgres #   postgresql   localhost #     postgresql.conf  ip-  - name: add entry to postgresql lineinfile: dest=/etc/postgresql/9.3/main/postgresql.conf regexp='^listen_addresses' line="listen_addresses = '${ansible_default_ipv4.address}'" state=present #   ,      postgresql, .. #  listen_addresses      postgresql notify: - restart postgres #   handlers: #   postgresql - name: reload postgres sudo: yes action: service name=postgresql state=reloaded #  postgresql - name: restart postgres sudo: yes action: service name=postgresql state=restarted 



Ansible AWX


Ansible . Ansibleworks AWX , . , : ( 10) , тАФ . тАФ Puppet Chef .

рдирд┐рд╖реНрдХрд░реНрд╖


Ansible тАФ , . , . Ansible . .

тАФ :

https://github.com/ansible/ тАФ github c

http://www.ansibleworks.com/docs/ тАФ ( );

http://jpmens.net/2012/06/06/configuration-management-with-ansible/ тАФ Ansible ( ).

https://gist.github.com/marktheunissen/2979474 тАФ , .

www.ansibleworks.com/docs/contrib.html тАФ , .

рдЬреЛ рд▓реЛрдЧ рд╣рдмреЗрд░рд╛ рдХреЗ рдкрджреЛрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдЙрдирдХреЗ рд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдкрд░ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In196620/


All Articles