Stackato: 3 рдЪрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рдмрд╛рджрд▓ рдореЗрдВ рдПрдХ рдкрд░реНрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рддреИрдирд╛рддреА

stackato ActiveState рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рдХрд╛рдлреА рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрдкрдиреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдкрд░реНрд▓ (ActivePerl), рдкрд╛рдпрдерди (ActivePython), Tcl (ActiveTcl) рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗ рд░рд╣реЗ рд╣реИрдВ (рдкрд╣рд▓реЗ, рдЕрднреА рднреА ActivePHP рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ)ред рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдорд╣рд╛рди рдХреЛрдореЛрдбреЛ рдЖрдИрдбреАрдИ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХреЛрдореЛрдбреЛ рдПрдбрд┐рдЯ рдХреЗ рдореБрдлреНрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЫреАрди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдХрдВрдкрдиреА рдиреЗ рдЕрдм-рдлреИрд╢рдиреЗрдмрд▓ рдХреНрд▓рд╛рдЙрдб рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдЙрдард╛рдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдкрдХреНрд╖ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдмрдирд╛рдиреЗ рдХреЗ рдкрдХреНрд╖ рд╕реЗред [рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рдореЗрд░рд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдмрд╛рдж рдореЗрдВ рдЕрдзрд┐рдХ :-)] рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╕реЗ Stackato рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ - "рдкрд╛рдпрдерди, рдкрд░реНрд▓, рд░реВрдмреА, Node.js рдФрд░ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдирд┐рдЬреА рдкрд╛рд╕рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рдордВрдЪред"
рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ "рдХреНрд▓рд╛рдЙрдб" рдкрд░реНрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдПрдХ рдмрд┐рд▓реНрд▓реА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВред

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

рдХрджрдо 0: рдПрдХ рдирд┐рдордВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

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

рдЪрд░рдг 1: рд╕рд░реНрд╡рд░

Stackato рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Stackato Server VM рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред 3 рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд: vSphere (OVF), VMware рдкреНрд▓реЗрдпрд░ рдФрд░ рдлреНрдпреВрдЬрди (VMDK), рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ VMред рд╕рд┐рд╕реНрдЯрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ: x86_64 рдкреНрд░реЛрд╕реЗрд╕рд░, 2 рдЬреАрдмреА + рд░реИрдо, 3 рдЬреАрдмреА + рдореБрдлреНрдд рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Stackato VM рдПрдХ рдорд╛рдЗрдХреНрд░реЛ-рдХреНрд▓рд╛рдЙрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд░реНрд╡рд░ рдирд╛рдо stackato.local рд╣реИ
рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреЗ рдареАрдХ рдмрд╛рдж, рд╕реНрдЯреИрдХреИрдЯреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреИрдХрдЯреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИред Ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ:
]$ ssh stackato@stackato.local
рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдЯреЛ-рдПрдбрдорд┐рди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
]$ stackato-admin help
рдФрд░ рдмрд╛рдХреА рдЙрдмрдВрдЯреВ 10.04 LTS рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдХреЗ рд╕рд╛рде рд╣реИред :-)

рдЪрд░рдг 2: рдЧреНрд░рд╛рд╣рдХ

рд╕рд░реНрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рддреИрдпрд╛рд░ рдЕрд╕реЗрдВрдмрд▓реА рдореИрдХ рдУрдПрд╕ рдПрдХреНрд╕, рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ ppm рдпреВрдЯрд┐рд▓рд┐рдЯреА (ActivePython) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
]$ pypm install stackato
рдкреАрдкреАрдПрдо (ActivePerl) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬрд▓реНрдж рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
1) рдЯрд╛рд░рдЧреЗрдЯ рдпреВрдЖрд░рдПрд▓ рд╕реЗрдЯ рдХрд░рдирд╛ - рдпрд╣ рд╕реНрдЯреИрдХрдЯреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд╣рд╛рдВ рдзрдХреЗрд▓рдирд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рдХреЛ api.stackato.local рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
]$ stackato target api.stackato.local
2) рд░рдЬрд┐рд╕реНрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Stackatoред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдИрдореЗрд▓ рд╣реИ:
]$ stackato add-user [EMAIL] [--passwd PASS]
3) рд▓реЙрдЧрд┐рди рдХрд░реЗрдВред рдкрдВрдЬреАрдХрд░рдг рдЖрджреЗрд╢ рдПрдХ рд╕реНрд╡рдд: рд▓реЙрдЧрд┐рди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдореМрдЬреВрджрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдпрд╛ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд▓реЙрдЧ рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
]$ stackato login [EMAIL] [--passwd PASS]
рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рдкрд░ рдЙрдкрд▓рдмреНрдз рдХрдорд╛рдВрдб рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреА рд╕реВрдЪреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рд╣рд╛рдпрддрд╛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
]$ stackato help [COMMAND]

рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЪрд░рдг 3: рдирд┐рдпреБрдХреНрдд рдХрд░реЗрдВ

рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рддреИрдирд╛рддреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд╡реЗрджрди рдХреА рдирд┐рд░реНрднрд░рддрд╛ (рд╡рд╛рдХреНрдп :-) рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ), рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡рд┐рднрд┐рдиреНрди рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрд╡рд╛рдУрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕) рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдереЛрдбрд╝рд╛ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, README рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕реНрдЯреЗрдХрд╛рдЯреЛ рдореЗрдВ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдбрд╛рдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдЗрдХреНрд░реЛ рд╡реЗрдм-рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рдЖрд╡реЗрджрди рд▓рд┐рдЦрд╛ред рдЗрд╕реЗ рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрддрд╛рдКрдВрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореЗрд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди ( рд╕рд┐рдВрдкрд▓ рдбрд╛рдВрд╕рд░ ) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рдорд┐рд▓рддрд╛ рд╣реИ:
]$ dancer -a appName
рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдорд╣рддреНрд╡рдкреВрд░реНрдг рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрдорд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди Stackato рдореЗрдВ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдкрд╣рд▓реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ рд╣реИред Txt рдлрд╝рд╛рдЗрд▓, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:
Dancer<br/> YAML<br/> Plack::Request
рдЗрд╕рдореЗрдВ рдмрддрд╛рдИ рдЧрдИ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреАрдкреАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддреИрдирд╛рддреА рдХреЗ рджреМрд░рд╛рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧреА, рдФрд░ рдпрджрд┐ рд╡реЗ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ cpanm рдХрд╛ рдЙрдкрдпреЛрдЧ cpanm рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ ред
рджреВрд╕рд░рд╛ app.psgi рдлрд╝рд╛рдЗрд▓ рд╣реИред Stackato рдореЗрдВ рд╕рднреА рдкрд░реНрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди PSGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ app.psgi (рдпрд╛ app.pl) рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпреЛрдВрдХрд┐ рдбрд╛рдВрд╕рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрджрд▓рд╛рд╡ рдХреЗ PSGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ ред/bin/app.pl
рдЕрдм рдЬрдм рд╕рднреА рдФрдкрдЪрд╛рд░рд┐рдХрддрд╛рдПрдВ рдкреВрд░реА рд╣реЛ рдЧрдИ рд╣реИрдВ, рддреЛ рд╣рдо рдЖрд╡реЗрджрди рдХреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдпрджрд┐ рд╣рдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рдореВрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
]$ stackato push simpleDancer
рдЬрд╣рд╛рдВ simpleDancer рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд╛рдо рд╣реИред рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди ActivePerl 5.12.4 рдХреЗ рд╕рд╛рде рддреИрдирд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ ActivePerl 5.14.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
]$ stackato push simpleDancer --runtime perl514
рдкреБрд╢ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдХреБрдЫ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрддреНрддрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЗ рд╕рд┐рд╡рд╛рдп рд╢рд╛рдпрдж рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ: рдХреНрдпрд╛ рдЖрдк 'simpleDancer' рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реЗрд╡рд╛ рдХреЛ рдмрд╛рдВрдзрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рдпрд╣ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрд╡рд╛ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЬреИрд╕реЗ рдХрд┐ MongoDB рдпрд╛ MySQLред рдФрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЙрддреНрддрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдЙрдкрд▓рдмреНрдз рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдпрджрд┐ рддреИрдирд╛рддреА рдХреЗ рджреМрд░рд╛рди рд╕рдм рдХреБрдЫ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЪрд▓рд╛, рддреЛ рдПрдкреНрд╕ рдХрдорд╛рдВрдб:
]$ stackato apps
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрдкрд╛рджрди рдХрд░реЗрдВрдЧреЗ:
рдФрд░ рдЖрд╡реЗрджрди рдкрд░ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: simpleDancer.stackato.local

рдпрджрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ, рддреЛ рд▓реЙрдЧ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╕реНрдЯрдбрдЖрдЙрдЯ рдФрд░ рд╕реНрдЯрд▓реНрдбрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
]$ stackato logs simpleDancer
рдпрджрд┐ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ (staging.log рдФрд░ ppm4.log) рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
]$ stackato files simpleDancer logs/staging.log<br/> ]$ stackato files simpleDancer logs/ppm4.log

рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЖрдк рд╕рднреА рдХреЛ рдЬрд╛рдирдиреЗ рдФрд░ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЬрдм Stackato рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдмрд╛рджрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рдХрд┐рд╕реНрдордд :-)

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


All Articles