JGonera has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/131005

Change subject: [WIP] Use NFS by default on non-Windows hosts
......................................................................

[WIP] Use NFS by default on non-Windows hosts

NFS is dramatically faster than VirtualBox Shared Folders, so use it where
possible, which currently means everywhere except Windows. Tell Facter who the
owner / group of the shared folder is likely to be, so Puppet can set
permissions correctly.

Rebased version of the patch by Ori (Iacaf59b6fc6bbc92637788ba3fdece28d5633649).

Conflicts:
        Vagrantfile

Change-Id: I03c1a8e931b968edad5e3110a5493175e6f8a84e
---
M Vagrantfile
M puppet/manifests/base.pp
M puppet/modules/mediawiki/manifests/init.pp
M puppet/modules/mediawiki/manifests/settings.pp
4 files changed, 27 insertions(+), 24 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant 
refs/changes/05/131005/1

diff --git a/Vagrantfile b/Vagrantfile
index 69dd278..c7598c4 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -116,17 +116,18 @@
         end
     end
 
-    config.vm.synced_folder '.', '/vagrant',
-        id: 'vagrant-root',
-        owner: 'vagrant',
-        group: 'www-data'
+    share_options = {:id => 'vagrant-root'}
 
-    # www-data needs to write to the logs, but doesn't need write
-    # access for all of /vagrant
-    config.vm.synced_folder './logs', '/vagrant/logs',
-        id: 'vagrant-logs',
-        owner: 'www-data',
-        group: 'www-data'
+    if Vagrant::Util::Platform.windows?
+        share_options[:owner] = 'vagrant'
+        share_options[:group] = 'www-data'
+    else
+        share_options[:type] = :nfs
+        config.nfs.map_uid = Process.uid
+        config.nfs.map_gid = Process.gid
+    end
+
+    config.vm.synced_folder '.', '/vagrant', share_options
 
     config.vm.provider :virtualbox do |vb|
         # See http://www.virtualbox.org/manual/ch08.html for additional 
options.
@@ -159,13 +160,22 @@
         end
 
         # Windows's Command Prompt has poor support for ANSI escape sequences.
-        puppet.options << '--color=false' if windows?
+        puppet.options << '--color=false' if Vagrant::Util::Platform.windows?
 
         puppet.facter = $FACTER = {
             'fqdn'               => config.vm.hostname,
             'forwarded_port'     => settings['HTTP_PORT'],
             'shared_apt_cache'   => '/vagrant/apt-cache/',
         }
+
+        if Vagrant::Util::Platform.windows?
+            $FACTER['share_owner'] = 'vagrant'
+            $FACTER['share_group'] = 'www-data'
+        else
+            $FACTER['share_owner'] = Process.uid
+            $FACTER['share_group'] = Process.gid
+        end
+
     end
 
     config.vm.provision :mediawiki_reload
diff --git a/puppet/manifests/base.pp b/puppet/manifests/base.pp
index ff2f3b5..fcd1249 100644
--- a/puppet/manifests/base.pp
+++ b/puppet/manifests/base.pp
@@ -45,9 +45,6 @@
 # tells Puppet not to back up configuration files by default.
 File {
     backup => false,
-    owner  => 'root',
-    group  => 'root',
-    mode   => '0644',
 }
 
 file { '/srv':
diff --git a/puppet/modules/mediawiki/manifests/init.pp 
b/puppet/modules/mediawiki/manifests/init.pp
index 741e7e6..22c47a6 100644
--- a/puppet/modules/mediawiki/manifests/init.pp
+++ b/puppet/modules/mediawiki/manifests/init.pp
@@ -89,9 +89,8 @@
 
     file { $settings_dir:
         ensure => directory,
-        owner  => 'vagrant',
-        group  => 'www-data',
-        mode   => '0755',
+        owner  => $::share_owner,
+        group  => $::share_group,
     }
 
     file { $upload_dir:
@@ -103,8 +102,8 @@
 
     file { "${settings_dir}/puppet-managed":
         ensure  => directory,
-        owner   => 'vagrant',
-        group   => 'www-data',
+        owner   => $::share_owner,
+        group   => $::share_group,
         mode    => undef,
         recurse => true,
         purge   => true,
diff --git a/puppet/modules/mediawiki/manifests/settings.pp 
b/puppet/modules/mediawiki/manifests/settings.pp
index 4c543f7..297019c 100644
--- a/puppet/modules/mediawiki/manifests/settings.pp
+++ b/puppet/modules/mediawiki/manifests/settings.pp
@@ -80,11 +80,8 @@
     file { $settings_file:
         ensure  => $ensure,
         content => template('mediawiki/settings.php.erb'),
-        # Because the file resides on a shared folder, any other owner
-        # or mode will cause VirtualBox and Puppet to play tug-o'-war
-        # over the file.
-        owner   => 'vagrant',
-        group   => 'www-data',
+        owner   => $::share_owner,
+        group   => $::share_group,
         require => Exec['mediawiki setup'],
     }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/131005
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I03c1a8e931b968edad5e3110a5493175e6f8a84e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/vagrant
Gerrit-Branch: master
Gerrit-Owner: JGonera <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to