рд╡реИрдЧреНрд░рд╛рдВрдд рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЧрддрд┐ рджреЗрдВ

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

рд╡реИрдЧреНрд░рдВрдЯ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЖрд╡рд░рдг рд╣реИ рдпрд╛, рдпрджрд┐ рдЖрдк рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреАрдПрд╕рдПрд▓ред рдЬреНрдпрд╛рджрд╛рддрд░ рд╡реЗ VirtualBox рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди VmWare рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ Amazon EC2 рдХреЗ рд▓рд┐рдП рднреАред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЖрд░рдВрдн рдХрд░реЗрдВ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ - www.vagrantup.com рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╡реИрдЧреНрд░рд╛рдВрдд рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░реАрдХреНрд╖рдг


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

рдЖрдЗрдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡реИрдЧреНрд░рдВрдЯ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреЛрдЬрдирд╛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛:


рд╡рд░реНрд▓реНрдбрдлреНрд▓реЛ рдХрд╛ рд╡рд┐рд╡рд░рдг:

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

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

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

рдмрд╛рдж рдореЗрдВ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдпреЛрдЬрдирд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрдЧреНрд░рдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдирд╛


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

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

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

Vagrantfile:
# -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # All Vagrant configuration is done here. The most common configuration # options are documented and commented below. For a complete reference, # please see the online documentation at vagrantup.com. # Every Vagrant virtual environment requires a box to build off of. config.vm.box = "precise64" # The url from where the 'config.vm.box' box will be fetched if it # doesn't already exist on the user's system. # config.vm.box_url = "http://domain.com/path/to/above.box" config.vm.box_url = "http://files.vagrantup.com/precise64.box" # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # config.vm.network :forwarded_port, guest: 3000, host: 3000 # Create a private network, which allows host-only access to the machine # using a specific IP. # config.vm.network :private_network, ip: "192.168.33.10" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network :public_network # If true, then any SSH connections made will enable agent forwarding. # Default value: false config.ssh.forward_agent = true ### Define VM for RabbitMQ config.vm.define "rmq", primary: true do |rmq| # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. # Example for VirtualBox: # rmq.vm.provider :virtualbox do |vb| # Don't boot with headless mode vb.gui = false # Use VBoxManage to customize the VM. For example to change memory: vb.customize ["modifyvm", :id, "--memory", "1024"] end # Networking options rmq.vm.network :private_network, ip: "192.168.100.5" rmq.vm.hostname = "rmq.example.com" end end 


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

Vagrantfile рдореЗрдВ рдиреЛрдб рд╡рд┐рд╡рд░рдг рдореЗрдВ рдПрдХ рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ:

 rmq.vm.provision :puppet do |puppet| puppet.manifests_path = "./vagrant.d/manifests" puppet.manifest_file = "site-rmq.pp" puppet.module_path = "./vagrant.d/modules" puppet.options = "--fileserver=/vagrant/vagrant.d/fileserver.conf --verbose --debug" end 


рдФрд░, рддрджрдиреБрд╕рд╛рд░, рд╣рдореЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред/vagrant.d/modules ,/vagrant.d/manifests ,/vagrant.d/files рдФрд░ ./vagrant.d/manifests/site-rmq.pp ./vagrant.d/fileserver.confред

рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╡реЗ рдореЙрдбреНрдпреВрд▓ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ; рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯреНрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣рдорд╛рд░реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреА рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рд╕рд╛рдЗрдЯ-rmq.pp рдХрдардкреБрддрд▓реА рд╢рд╛рдорд┐рд▓ рд╣реИ; рдлрд╛рдЗрд▓реЗрдВ - рдлрд╛рдЗрд▓рд░рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛; fileserver.conf - рдлрд╛рдЗрд▓рд░рд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╛рдЗрд▓ рдФрд░ рд╣рдорд╛рд░реА рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╛рдЗрд▓ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ред

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

рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝реЗрдВ:

 # Enable shell provisioning config.vm.provision "shell", path: "./vagrant.d/pre-puppet.sh" 


рдФрд░ ./vagrant.d рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдБ:
pre-puppet.sh:
 #!/bin/bash # This script installs modules for puppet standalone echo "[Info] Running pre-puppet.sh for install modules" if [ "x$(dpkg -l | grep -E '^ii\s+git\s')" == "x" ] then echo "[Info] Installing git" apt-get -y install git || (echo "[Error] Cant install git" && exit 0) else echo "[Info] git already is installed, skipping" fi if [ "x$(gem list librarian-puppet|grep -v LOCAL)" == "x" ] then echo "[Info] Installing librarian-puppet" gem install librarian-puppet || (echo "[Error] Cant install librarian-puppet" && exit 0) else echo "[Info] librarian-puppet already is installed, skipping" fi if [ ! -e Puppetfile ] then cat > Puppetfile << EOF #!/usr/bin/env ruby #^syntax detection # Warning! # Do not edit this file, check pre-puppet.sh script! # forge "http://forge.puppetlabs.com" # use dependencies defined in Modulefile #modulefile mod 'puppetlabs/rabbitmq' mod 'saz/timezone' mod 'saz/locales' mod 'jpuppet/java-git', :git => "git://github.com/jpuppet/java.git" mod 'jfryman/nginx' EOF fi mkdir -p /vagrant/vagrant.d/modules echo "[Info] Installing puppet modules" librarian-puppet install --path=/vagrant/vagrant.d/modules/ || (echo "[Error] Cant install modules" && exit) rm Puppetfile* # Ugly hack for java cp -r /vagrant/vagrant.d/modules/java-git/modules/java /vagrant/vagrant.d/modules exit 0 


рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдЧрд┐рдЯ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрди-рдХрдардкреБрддрд▓реА рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдлрд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрди-рдХрдардкреБрддрд▓реА рдХреА рдорджрдж рд╕реЗ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрди-рдХрдардкреБрддрд▓реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЬреАрдердм рдкрд░ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ: github.com/rodjek/librarian-puppet рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЧрд┐рдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдЧрд┐рдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╕реЗ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрди-рдХрдардкреБрддрд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдФрд░ рдореБрдЭреЗ рдЬрд╛рд╡рд╛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рд╣реИрдХ рднреА рдХрд░рдирд╛ рдерд╛, рдмрд╕ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдерд╛рди рдкрд░ред рд▓реЗрдХрд┐рди рдЖрдк рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрди- рдкрдкреЗрдЯ github.com/mhahn/vagrant-librarian-puppet рдХреЗ рд▓рд┐рдП рд╡реИрдЧреНрд░рдВрдЯ рдкреНрд▓рдЧрдЗрди рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

Vagrantfile рдХрд╛ рдЕрдВрддрд┐рдо рджреГрд╢реНрдп:
 # -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # All Vagrant configuration is done here. The most common configuration # options are documented and commented below. For a complete reference, # please see the online documentation at vagrantup.com. # Every Vagrant virtual environment requires a box to build off of. config.vm.box = "precise64" # The url from where the 'config.vm.box' box will be fetched if it # doesn't already exist on the user's system. # config.vm.box_url = "http://domain.com/path/to/above.box" config.vm.box_url = "http://files.vagrantup.com/precise64.box" # Create a forwarded port mapping which allows access to a specific port # within the machine from a port on the host machine. In the example below, # accessing "localhost:8080" will access port 80 on the guest machine. # config.vm.network :forwarded_port, guest: 3000, host: 3000 # Create a private network, which allows host-only access to the machine # using a specific IP. # config.vm.network :private_network, ip: "192.168.33.10" # Create a public network, which generally matched to bridged network. # Bridged networks make the machine appear as another physical device on # your network. # config.vm.network :public_network # If true, then any SSH connections made will enable agent forwarding. # Default value: false config.ssh.forward_agent = true # Enable shell provisioning config.vm.provision "shell", path: "./vagrant.d/pre-puppet.sh" ### Define VM for RabbitMQ config.vm.define "rmq", primary: true do |rmq| # Provider-specific configuration so you can fine-tune various # backing providers for Vagrant. These expose provider-specific options. # Example for VirtualBox: # rmq.vm.provider :virtualbox do |vb| # Don't boot with headless mode vb.gui = false # Use VBoxManage to customize the VM. For example to change memory: vb.customize ["modifyvm", :id, "--memory", "1024"] end # Networking options rmq.vm.network :private_network, ip: "192.168.100.5" rmq.vm.hostname = "rmq.example.com" # Enable provisioning with Puppet stand alone. Puppet manifests # are contained in a directory path relative to this Vagrantfile. # You will need to create the manifests directory and a manifest in # the file base.pp in the manifests_path directory. # rmq.vm.provision :puppet do |puppet| puppet.manifests_path = "./vagrant.d/manifests" puppet.manifest_file = "site-rmq.pp" puppet.module_path = "./vagrant.d/modules" puppet.options = "--fileserver=/vagrant/vagrant.d/fileserver.conf --verbose --debug" end end end 


рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдиреЛрдб рдХрд╛ рд╡рд░реНрдгрди рдкреНрд░рдХрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕рд╛рдЗрдЯ-rmq.pp:
 # # This manifest describes development environment # RabbitMQ-server # class { 'timezone': timezone => 'Europe/Moscow', } class { 'locales': locales => ['ru_RU.UTF-8 UTF-8'], } # apt-get update # --------------------------------------- class apt_install { exec {'update': command => 'apt-get update', path => '/usr/bin', timeout => 0, } -> package {[ 'vim', ]: ensure => installed, } } # RabbitMQ service class rabbitmq_install { class { '::rabbitmq': service_manage => false, port => '5672', delete_guest_user => true, } rabbitmq_user { 'developer': admin => true, password => 'Password', } rabbitmq_vhost { 'habr': ensure => present, } rabbitmq_user_permissions { 'developer@habr': configure_permission => '.*', read_permission => '.*', write_permission => '.*', } rabbitmq_plugin {'rabbitmq_management': ensure => present, } } class java_install { class { "java": version => "1.7", jdk => true, jre => true, sources => false, javadoc => false, set_as_default => true, export_path => false, vendor => "oracle", } } # Include classes include apt_install include timezone include locales include rabbitmq_install include java_install 


рдЕрдм рдпрд╣ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
 vagrant up 

рдФрд░ рдЕрдкрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рдорд┐рдирдЯ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред (рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЙрдмрдВрдЯреВ рдЫрд╡рд┐ рдХреЛ рдЕрдкрд╡рд┐рддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)

рдЕрдм рдЖрдк рд╣рдорд╛рд░реЗ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 vagrant ssh 


рдФрд░ рдЬрд╛рдБрдЪ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рдкрд┐рдд рдЬрд╛рд╡рд╛:
 > vagrant ssh Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64) * Documentation: https://help.ubuntu.com/ Welcome to your Vagrant-built virtual machine. Last login: Sat May 17 12:28:08 2014 from 10.0.2.2 vagrant@rmq:~$ java -version java version "1.7.0_55" Java(TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode) 


рдФрд░ рдЖрдк WebUI RabbitMQ рд╕реЗрд╡рд╛ рднреА рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ:


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

рдЖрд▓рд╕реА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ github рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛: github.com/wl4n/vagrant-skel

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

рдЗрд╕реА рддрд░рд╣ рдХреЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ, рд▓реЗрдХрд┐рди рд╢реЗрдл рд╕реЛрд▓реЛ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░: habrahabr.ru/post/140714

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


All Articles