рд╡реИрдЧреНрд░рд╛рдВрдд рдФрд░ рдмрд╛рд╡рд░реНрдЪреА рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд╣реМрд▓






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

рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ?



рд╣рдо PHP рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Ubuntu 12.04 рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (VM) рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН:



рдпрд╣ рдПрдХ рдЙрдмрд╛рдК рдХрд╛рдо рд╣реИ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреБрдЫ рдЖрд╡рдзрд┐рдХрддрд╛ рдкрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдЕрдкрдиреЗ рджрдо рдкрд░ рдХрд░ рджреЗрдВрдЧреЗред

рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?





рдпрд╣ рд╕рдм рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╣реИред рд╕рд╡рд╛рд▓ рд╣реИ "рдХреИрд╕реЗ?"



рдЖрд╡рд╛рд░рд╛



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

рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рд╕рднреА рдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдПрдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ:

vagrant up 


рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЪрд▓рд┐рдП рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддреЗ рд╣реИрдВред

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

 vagrant init 


рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓ рдореЗрдВред

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдЧреА:
 recipes www Vagrantfile 


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

рд╣рдо рд╡рдЧреНрд░реЗрдВрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рдкреНрд░рддреНрдпреЗрдХ рдмреЙрдХреНрд╕ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд╢реЗрдл рдФрд░ рдХрдардкреБрддрд▓реА рд╢рд╛рдорд┐рд▓ рд╣реИ - рдпрд╣ рдмрд╛рдж рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛)ред

рдЕрдВрддрд┐рдо Vagrantfile рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА (рдорд╛рдирдХ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рджреЗрдЦреЗрдВ):

Vagrantfile
 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant::Config.run do |config| #  box'a config.vm.box = "precise64" # ,     box config.vm.box_url = "http://files.vagrantup.com/precise64.box" #   IP       config.vm.network :hostonly, "11.11.11.11" #   ,         ,   config.vm.share_folder "www", "/var/www", "www", :create => true #  Chef config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "recipes/cookbooks" chef.roles_path = "recipes/roles" chef.add_role "web" # chef.data_bags_path = "../my-recipes/data_bags" chef.json = { "mysql" => { "server_root_password" => "%your_pass0%", "server_repl_password" => "%your_pass1%", "server_debian_password" => "%your_pass2%" } } end end 



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

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

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

рдЖрдк рдпрд╣рд╛рдВ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ

 ... config.vm.forward_port 80, 8080 ... 


рд╣рдо VM рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рд╕реЗ рдкреЛрд░реНрдЯ 8080 рдкрд░ рд╣рдореЗрдВ рдЧреЗрд╕реНрдЯ рдорд╢реАрди рдХрд╛ рдкреЛрд░реНрдЯ 80 рдорд┐рд▓ рдЬрд╛рдПред (рд╡реИрдЧреНрд░реЗрдВрдЯ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ, рд╣реЛрд╕реНрдЯ рдорд╢реАрди рд╣рдорд╛рд░рд╛ рдХрдВрдкреНрдпреВрдЯрд░ рд╣реИ, рдЧреЗрд╕реНрдЯ рдорд╢реАрди рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИ)ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ ред

Share_folder рдЧреБрдг рдЖрдкрдХреЛ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдФрд░ рдЕрддрд┐рдерд┐ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЖрдк рдЕрдкрдирд╛ рдЖрдИрдбреАрдИ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реНрдерд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реАрдПрдо рдкрд░ рдирд╣реАрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рд╣рдЯрд╛рдП рдЧрдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдФрд░ рд╡реЗ рддреБрд░рдВрдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд╛рд▓рд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╡реАрдПрдо /vagrant рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЕрддрд┐рдерд┐ рдорд╢реАрди рдкрд░ рдкрде /var/www рд╕рд╛рде рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ www рдлрд╝реЛрд▓реНрдбрд░ рдЙрдкрд▓рдмреНрдз /var/www рд╣реИрдВред

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

  1. рдорд╣рд╛рд░рд╛рдЬ
  2. рдХрдардкреБрддрд▓реА
  3. рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ


рдорд╣рд╛рд░рд╛рдЬ



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

рдпрд╣ рд╕рд╡рд╛рд▓ рдЙрдард╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рд╕рдм рдПрдХ рд╣реА рдЗрддрдиреА рд╕рд╛рд░реА рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдХреИрд╕реЗ рд╣реИ? рдПрдХ рдмрдбрд╝реЗ рд╢реЗрдл рд╕рдореБрджрд╛рдп рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рдЪрдирд╛рдХрд╛рд░ рдЕрдкрдиреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рд╕реЗ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВред

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

рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореМрдЬреВрджрд╛ рдХреБрдХрдмреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

  1. Apache2
  2. MySQL
  3. рдкреАрдПрдЪрдкреА
  4. рд╢рдХреНрддрд┐
  5. рд╕рдВрдЧреАрддрдХрд╛рд░
  6. рдФрд░ рдЕрдиреНрдп (рдХреБрдЫ рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдмреЗрдВ рджреВрд╕рд░реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛)


рдпрд╣ рд╢реЗрдл рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рд╡реНрдпрдВрдЬрдиреЛрдВ рдлрд╝реЛрд▓реНрдбрд░ рд╣рдорд╛рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛


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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдБ:

 curl -L https://www.opscode.com/chef/install.sh | bash 


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

 mkdir .chef echo "cookbook_path [ '/path-to/recipes/cookbooks' ]" > .chef/knife.rb 


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

 knife cookbook create app 


рд╣рдорд╛рд░реА рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм рдорд╛рдирдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, Apache2 рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреА, рдЗрд╕рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдЬреЛрдбрд╝реЗрдВ:

/path-to/recipes/cookbooks/app/metadata.rb
 name 'app' maintainer 'YOUR_COMPANY_NAME' maintainer_email 'YOUR_EMAIL' license 'All rights reserved' description 'Installs/Configures app' long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) version '0.1.0' depends "apache2" depends "database" 



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

 cd recipes/cookbooks/ knife cookbook site download database tar zxf database-*.tar.gz rm *.tar.gz 


рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдИ рдЕрдиреНрдп рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдм рднреА рд╕реНрдерд╛рдкрд┐рдд рд╣реИред

Apache рдХреЗ рд▓рд┐рдП VirtualHost рдмрдирд╛рдирд╛


рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдБ:

/path-to/recipes/cookbooks/app/templates/default/vhost.erb
 <VirtualHost *:80> ServerAdmin <%= @params[:server_email] %> ServerName <%= @params[:server_name] %> DocumentRoot <%= @params[:docroot] %> <Directory <%= @params[:docroot] %>> Options Indexes FollowSymLinks MultiViews AllowOverride ALL Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/<%= @params[:server_name] %>.log LogLevel debug </VirtualHost> 



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

/path-to/recipes/cookbooks/app/attributes/default.rb
 default["app"]["database"] = "app" default["app"]["path"] = "/var/www/vm-app" default["app"]["server_name"] = "vm-app" default["app"]["server_email"] = "vm.app@example.com" 



рдФрд░ Vagrantfile рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдЪрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВред

Vagrantfile
 ... chef.json = { "app" => { "path" => "/var/www/cool-another-app", "server_name" => "cool-another-app", "server_email" => "cool@another-app.com", "database" => "cool_another_app_db" }, "mysql" => { "server_root_password" => "%your_path0%", "server_repl_password" => "%your_path1%", "server_debian_password" => "%your_path2%" } } ... 


рдорд╣рд╛рди, рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдл рдХреЗ рд╕рд╛рде рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рд╣реЛрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдирд╛рдордХ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреЗ рдХреНрд░рд┐рдпрд╛ рд╣рдо рд╕реАрдзреЗ рдиреБрд╕реНрдЦрд╛ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

/path-to/recipes/cookbooks/app/recipes/default.rb
 # # Cookbook Name:: app # Recipe:: default # # Copyright 2013, YOUR_COMPANY_NAME # # All rights reserved - Do Not Redistribute # include_recipe "mysql::ruby" #     directory node["app"]["path"] do owner "root" group "root" mode "0755" action :create recursive true end #    VirtualHost,    () web_app 'app' do template 'vhost.erb' docroot node['app']['path'] server_name node['app']['server_name'] server_email node['app']['server_email'] end 


рдЙрд╕реА рд╕рдордп, рдмрд╛рд╡рд░реНрдЪреА рд╕рдм рдХреБрдЫ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░реЗрдЧрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ: рд╕рд╛рдЗрдЯ рдХреЛ / etc / apache2 / sites-available рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ a2ensite server_name рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИред

DB рдирд┐рд░реНрдорд╛рдг


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрд╕ /path-to/recipes/cookbooks/app/recipes/default.rb рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

 mysql_database node['app']['database'] do connection ({:host => 'localhost', :username => 'root', :password => node['mysql']['server_root_password']}) action :create end 


рд░рд╕реЛрдЗрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рд░рд╕реЛрдИ рдХреА рдХрд┐рддрд╛рдмреЛрдВ рдХреА рд╕реВрдЪреА рдЗрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ run_list рд╕рд░рдгреА рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИ:

/path-to/recipes/roles/web.json
 { "name": "web", "default_attributes": { }, "override_attributes": { }, "json_class": "Chef::Role", "description": "web server role", "chef_type": "role", "run_list": ["recipe[apt]", "recipe[chef-dotdeb]", "recipe[chef-dotdeb::php54]", "recipe[apache2]", "recipe[apache2::mod_php5]", "recipe[apache2::mod_rewrite]", "recipe[php]", "recipe[mysql]", "recipe[mysql::server]", "recipe[app]", "recipe[composer]", "recipe[sqlite]", "recipe[vim]", "recipe[cron]", "recipe[ntp]"] } 


рд╡рд╣ рд╕рдм рд╣реИ! рд╣рдорд╛рд░рд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рд╣рдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ:

 vagrant up 


рдЗрд╕ рдХрдорд╛рдВрдб рдХреЗ рдмрд╛рдж, Vagrant рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреЙрдХреНрд╕ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред

рдЖрдЦрд┐рд░ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ?



рдирддреАрдЬрддрди, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИред SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╡реЗрд╢ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

 vagrant ssh 


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

  1. рдпреЛрдирд┐ рд╕рд╕реНрдкреЗрдВрдб - рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ vagrant up рдХрдорд╛рдВрдб рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рд╣реЗрдЬреЗ рдЧрдП рдмрд┐рдВрджреБ рд╕реЗ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ
  2. рдЖрд╡рд╛рд░рд╛ рдкрдбрд╝рд╛рд╡ - VM рдХреЛ рдмрдВрдж рдХрд░реЗрдВ


рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдУрдПрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

VM рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпреЛрдирд┐ рдирд╖реНрдЯ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХреБрдЫ рд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рд░рдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдбреЗрдЯрд╛ рд╣рд╛рдирд┐ рдХрд╛ рдЬреЛрдЦрд┐рдо рди рд╣реЛред

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

рдЙрдкрдпреЛрдЧреА рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдВрдХ



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

рд╡реИрдЧреНрд░рдВрдЯ + рд╢реЗрдл рдкрд░реНрдпрд╛рд╡рд░рдг рдлрд╛рдЗрд▓реЗрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Vagrant:

  1. docs.vagrantup.com/v2 - рдкреНрд░рд▓реЗрдЦрдиред рдЖрд╡рд╢реНрдпрдХ рдкрдврд╝рдирд╛ред
  2. www.vagrantbox.es - рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рдУрдПрд╕ рдкрд░ рдмрдХреНрд╕реЗ рдХреА рдПрдХ рд╕реВрдЪреА
  3. habrahabr.ru/post/140714
  4. net.tutsplus.com/tutorials/setting-up-a-staging-environment рдПрдХ рд╕реНрдерд┐рд░ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдкрд░ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИред рдЖрд╡рд╢реНрдпрдХ рдкрдврд╝рдирд╛ред
  5. www.phptherightway.com - php Developers


chef:

  1. docs.opscode.com - рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ
  2. docs.opscode.com/resource_deploy.html - рдкрд░рд┐рдирд┐рдпреЛрдЬрди
  3. getstartedwithchef.com - рдЖрд╡рд╢реНрдпрдХ рдкрдардиред рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рдмрд╛рддреЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддрд╛ рд╣реИ рдмрд╛рд╡рд░реНрдЪреА
  4. habrahabr.ru/company/scalaxy/blog/87302





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

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


All Articles