Share
Embed
Transcript
29 slides
-
ABOUT ME Alina Mackenzie University of Illinois at Chicago developer
/ system administrator / helpdesk support -
ABOUT YOU new to Drupal? developer or site builder? Drupal
core or contrib developer? curious about Vagrant? -
STARTING POINT MAMP (Mac, Windows) environment is not like production
can't automate not good for multiple projects good starting point -
WHAT IS VAGRANT? Vagrant is a tool for building complete
development environments. set of Ruby scripts set of commands "remote control" that works with virtualization platforms (VirtualBox, VMWare) and automation tools (shell, Chef, Ansible) -
HOST AND GUEST Host - your laptop or desktop Guest
- virtual machine started on the host -
BOX A box is a bundle containing an installed operating
system (and some basic stuff) made for a specific provider (VirtualBox). Package manager SSH server SSH user so Vagrant can connect Get boxes from , , etc. vagrantcloud.com vagrantbox.es -
PROVIDER A provider will handle the virtualization process. VirtualBox (default)
VMWare Amazon Web Service (AWS) Digital Ocean -
PROVISIONER A provisioner will automate the setup of your server,
installing packages and performing tasks in general. shell Ansible Puppet Chef Docker Salt -
VAGRANTFILE Configuration file for your Vagrant guest. V a g
r a n t . c o n f i g u r e ( " 2 " ) d o | c o n f i g | c o n f i g . v m . b o x = " u b u n t u / t r u s t y 6 4 " e n d -
PLUGINS A plugin can add extra functionality to Vagrant, like
supporting a new provider. vbguest -
SHARED/SYNCED FOLDERS With a shared folder, you can edit your
files with your favorite editor installed on the Host machine. -
SIMPLE EXAMPLE Vagrantfile: V a g r a n t
. c o n f i g u r e ( " 2 " ) d o | c o n f i g | c o n f i g . v m . b o x = " u b u n t u / t r u s t y 6 4 " c o n f i g . v m . n e t w o r k " p u b l i c _ n e t w o r k " , i p : " 1 9 2 . 1 6 8 . 0 . 1 7 " c o n f i g . v m . s y n c e d _ f o l d e r " w w w " , " / v a r / w w w / h t m l " , t y p e : " n f s " e n d -
VAGRANT COMMANDS vagrant status vagrant global-status vagrant up vagrant ssh
vagrant reload vagrant provision vagrant init vagrant halt vagrant destroy vagrant suspend vagrant resume -
SHELL PROVISIONER not easy to read for more complex setups
not idempotent good starting point -
MORE COMPLEX EXAMPLE Vagrantfile: V a g r a n
t . c o n f i g u r e ( " 2 " ) d o | c o n f i g | c o n f i g . v m . b o x = " u b u n t u / t r u s t y 6 4 " c o n f i g . v m . n e t w o r k " p r i v a t e _ n e t w o r k " , t y p e : " d h c p " c o n f i g . v m . s y n c e d _ f o l d e r " w w w " , " / v a r / w w w / h t m l " , t y p e : " n f s " c o n f i g . v m . p r o v i d e r " v i r t u a l b o x " d o | v b | v b . m e m o r y = " 1 0 2 4 " e n d c o n f i g . v m . p r o v i s i o n " s h e l l " d o | s | s . p a t h = " d 8 - p r o v i s i o n . s h " e n d e n d -
PROVISIONING STEPS Update package manager (apt) Install development tools: git,
curl, vim Install web server (Apache) Install database (MySQL) Install PHP Install Composer (PHP package manager) Install Drush using Composer Use Drush or git to download Drupal 8 Use Drush to install Drupal 8 -
COMMANDS d8-provision.sh sudo apt-get update sudo apt-get install git curl
vim sudo apt-get install apache2 sudo apt-get install mysql-server sudo apt-get install php5 curl -sS https://getcomposer.org/installer | php composer global require drush/drush:dev-master drush dl drupal-8 git clone --branch 8.0.x http://git.drupal.org/project/drupal.git drush site-install --account-pass=admin --db-url=mysql://root:root@localhost/d8 -
VAGRANT UP B r i n g i n g
m a c h i n e ' d e f a u l t ' u p w i t h ' v i r t u a l b o x ' p r o v i d e r . . . = = > d e f a u l t : I m p o r t i n g b a s e b o x ' u b u n t u / t r u s t y 6 4 ' . . . = = > d e f a u l t : M a t c h i n g M A C a d d r e s s f o r N A T n e t w o r k i n g . . . = = > d e f a u l t : C h e c k i n g i f b o x ' u b u n t u / t r u s t y 6 4 ' i s u p t o d a t e . . . = = > d e f a u l t : S e t t i n g t h e n a m e o f t h e V M : t r u s t y - d 8 = = > d e f a u l t : C l e a r i n g a n y p r e v i o u s l y s e t f o r w a r d e d p o r t s . . . = = > d e f a u l t : C l e a r i n g a n y p r e v i o u s l y s e t n e t w o r k i n t e r f a c e s . . . = = > d e f a u l t : P r e p a r i n g n e t w o r k i n t e r f a c e s b a s e d o n c o n f i g u r a t i o n . . . d e f a u l t : A d a p t e r 1 : n a t d e f a u l t : A d a p t e r 2 : h o s t o n l y = = > d e f a u l t : F o r w a r d i n g p o r t s . . . d e f a u l t : 2 2 = > 2 2 2 2 ( a d a p t e r 1 ) = = > d e f a u l t : R u n n i n g ' p r e - b o o t ' V M c u s t o m i z a t i o n s . . . = = > d e f a u l t : B o o t i n g V M . . . = = > d e f a u l t : W a i t i n g f o r m a c h i n e t o b o o t . T h i s m a y t a k e a f e w m i n u t e s . . . d e f a u l t : S S H a d d r e s s : 1 2 7 . 0 . 0 . 1 : 2 2 2 2 d e f a u l t : S S H u s e r n a m e : v a g r a n t d e f a u l t : S S H a u t h m e t h o d : p r i v a t e k e y d e f a u l t : W a r n i n g : C o n n e c t i o n t i m e o u t . R e t r y i n g . . . d e f a u l t : W a r n i n g : R e m o t e c o n n e c t i o n d i s c o n n e c t . R e t r y i n g . . . = = > d e f a u l t : M a c h i n e b o o t e d a n d r e a d y ! G u e s t A d d i t i o n s v e r s i o n s o n y o u r h o s t ( 4 . 3 . 1 8 ) a n d g u e s t ( 4 . 3 . 1 0 ) d o n o t m a t c h . * S t o p p i n g V i r t u a l B o x A d d i t i o n s . . . d o n e . R e a d i n g p a c k a g e l i s t s . . . B u i l d i n g d e p e n d e n c y t r e e . . . R e a d i n g s t a t e i n f o r m a t i o n . . . T h e f o l l o w i n g p a c k a g e s w e r e a u t o m a t i c a l l y i n s t a l l e d a n d a r e n o l o n g e r r e q u i r e d : d k m s f a k e r o o t g c c g c c - 4 . 8 l i b a s a n 0 l i b a t o m i c 1 l i b c - d e v - b i n l i b c 6 - d e v About 8 minutes to a fully installed Drupal site -
PLUGINS vbguest automatically installs the host's VirtualBox Guest Additions on
the guest system vagrant plugin install vagrant-vbguest -
TIPS red doesn't always mean error vagrant version to check
for updates (not vagrant --version) vagrant global-status to see all VM on the host vagrant global-status --prune if you delete a directory with a running VM sudo rm /etc/exports if you rename your VM directory edit /etc/sudoers to avoid being prompted for administrator password