рд╣реИрдмреЗ рдкрд░ рдУрдкрдирд╕реНрдЯреИрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рдереЗ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕рдордЧреНрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкрд░ рдирд╣реАрдВ рдерд╛ред рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдирдВрдЧреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрднрд╛рд░реА рдирд╣реАрдВ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ,
Devstack рдирд╛рдордХ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ, рдЬреЛ рд╕реНрдерд╛рдиреАрдп рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ OpenStack рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдареАрдХ рд╣реИ, рдореИрдВ рдпрд╣рд╛рдВ рд▓реЗрдЦ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рджреЗрд╡рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рддрдВрдмреВрд░рд╛ рдХреЗ рд╕рд╛рде рдиреГрддреНрдп рдХрд░рдиреЗ рдФрд░ рд╕рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЪреБрдирдиреЗ рдХреА рдПрдХ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдкрдиреА рдЧрддрд┐ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣реА рд╣реИ, рдФрд░ рдЖрдЬ рдЬреЛ рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рдХрд┐рд╕реА рднреА рдирдИ рдкреНрд░рддрд┐рдмрджреНрдз рдХреЗ рд╕рд╛рде рдЙрдбрд╝рд╛рди рднрд░ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рд░реНрдп
рдУрдкрдирд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рд╕реЗрд╡рд╛рдУрдВ (рдиреЛрд╡рд╛, рдХреАрд╕реНрдЯреЛрди, рд╕реНрд╡рд┐рдлреНрдЯ, рд╣реАрдЯ, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг, рдмрдЧ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдПред рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд▓рдЧрднрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдордп рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдХрд┐ рдмрдирд╛рдИ рдЧрдИ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рдорд┐рдЯрд╛ рджреЗрдВ, рдПрдХ рдирдпрд╛ рдмрдирд╛рдПрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВ рдФрд░ рдХреБрдЫ рд╣реА рдорд┐рдирдЯреЛрдВ рдореЗрдВ рддреИрдпрд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╛рддрд╛рд╡рд░рдг рдкрд┐рдЫрд▓реЗ VM
рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЪреВрдБрдХрд┐ рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдЬреЛ рд╕реЗрд╡рд╛ рдореБрдЭреЗ рд░реБрдЪрд┐рдХрд░ рд╣реИ, рд╡рд╣ рд╣реИ рдЧрд░реНрдореА, рд╡рд┐рдиреНрдпрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрдореБрдЦ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЬрдЧрд╣ рдкрд░, рдЖрдк рд╕рдВрдкреВрд░реНрдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдЬрдорд╛ рдХрд░рддреЗ рд╣реИрдВ
рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдХрд░рдг рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: VirtualBox, Vagrantред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ OSX 10.9.2 рдкрд░ рдмрдирд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреНрдп * рдирд┐рдХреНрд╕ рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
VirtualBox
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ,
www.virtualbox.org рдкрд░ рдЬрд╛рдПрдВ , рдЕрдкрдиреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд░рд┐рд▓реАрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред рдореИрдВрдиреЗ рек.рей. V рд╕реЗрдЯ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реИрдЧреНрд░рдВрдЯ рдХрднреА-рдХрднреА рек.реи рдкрд░ рдереВрдХрддрд╛ рд╣реИред * рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдПрдирдПрдлрдПрд╕ рд▓рдЧрд╛рдиреЗ рдХреА рдзрдордХреАред
рдЖрд╡рд╛рд░рд╛
рд╣рдо
Vagrant рд╕рдВрд╕реНрдХрд░рдг
1.3.5 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдзреНрдпрд╛рди рджреЗрдВ, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, nfs рдСрдкрд░реЗрд╢рди рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ) рдФрд░ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ, рдХрд╣рддреЗ рд╣реИрдВ / рдШрд░ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рднрдЯрдХрдирд╛ред рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ Vagrantfile рдлрд╝рд╛рдЗрд▓ рдбрд╛рд▓ рджреА рд╣реИ:
-- mode: ruby -- vi: set ft=ruby : Vagrant config VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "heat" config.vm.box_url = "http://files.vagrantup.com/precise32.box"
рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ, / рдШрд░ / рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рднрдЯрдХрд╛рд╡ рдкрд░ рдЬрд╛рдПрдБ рдФрд░ VM рдмрдирд╛рдПрдБ
vagrant up
VM рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
vagrant ssh
рдЕрдм рд╣рдо рд╕реАрдзреЗ рд╕рдВрдХреБрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреБрдж рдХреЛ рддрдмрд╛рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдБрдХрд┐ рд╣рдореЗрдВ рдЬреЛ рдХрд╛рд░ рдорд┐рд▓реА рд╣реИ, рд╡рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рд▓реА рд╣реИ, рд╣рдореЗрдВ рдЕрдкрдирд╛ рд╕рдм рдХреБрдЫ рд▓рдЧрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
sudo apt-get update && sudo apt-get -y install git vim-gtk libxml2-dev libxslt1-dev libpq-dev python-pip libsqlite3-dev && sudo apt-get -y build-dep python-mysqldb && sudo pip install git-review tox && git clone git://git.openstack.org/openstack-dev/devstack -b stable/havana && chown -R vagrant:vagrant devstack && cd devstack
рдмрдзрд╛рдИ рд╣реЛ, рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдкреБрд╖реНрдЯ рд▓реЗрдХрд┐рди рд╕реНрдерд┐рд░ рднрдЯрдХрд╛рд╡ рд╣реИрд╡рд╛рди рд╣реИред
Devstack
рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рднреНрд░рдорд┐рдд рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд░рдЦрд╛ рд╣реИ рдЬреЛ рдЧрд░реНрдореА рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╕реНрдерд┐рд░ (рд╣рд╡рд╛рдирд╛) рдУрдкрдирд╕реНрдЯреИрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк devstack рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИрдВ рдФрд░ local.conf рдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдк рд▓реЛрдХрд▓ рдЖрд░реНрдХ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ)
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ HOST_IP Vagrantfile рдореЗрдВ Private_network рдЖрдИрдкреА рдорд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ: рд╡рд░реНрдЪреБрдЕрд▓рдмреЙрдХреНрд╕ 4.3.8, рд╡реИрдЧреНрд░рд╛рдВрдЯ 1.3.5рд╕рдм рдХреБрдЫ рдкрд╕рдВрдж рд╣реИред рдлрд╝рд╛рдЗрд▓ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдБ ред/stack.sh рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣реАрдЯ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рджреЛ рдбрд┐рд╕реНрдХ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкрдВрдк рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдзреНрдпрд╛рди рдЧрд░реНрдореА рдкрд░ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдкрд░ рд╣реИред
GitHub рдХреЙрдиреНрдлрд╝рд┐рдЧ рдбреЗрдЯрд╛:
github.com/sorantis/stackenvрдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЗрдЪреНрдЫрд╛рдПрдВ, рдореБрдЭреЗ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ-рдХреНрд▓рд┐рдХ рдмрдЯрди рд▓рд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА!
рдкреБрдирд╢реНрдЪ рдпрджрд┐ рд▓реЗрдЦ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛, рддреЛ рдореИрдВ рдпрд╣рд╛рдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реВрдВред