[MediaWiki-commits] [Gerrit] Update and restart services during git-update - change (mediawiki/vagrant)
jenkins-bot has submitted this change and it was merged. Change subject: Update and restart services during git-update .. Update and restart services during git-update Thus far, running vagrant git-update would update the git repos of services living in /vagrant/srv. This patch enhances its behaviour by also performing a dependency update and a service restart. For a service to do that, it must declare a service::gitupdate block specifying which updates need to be carried out and whether the service should be restarted. A configuration file for each service is then placed in /etc/mw-vagrant/services/ and later read by run-git-update. This patch also updates all of the service modules to use it. Note: this patch also contains a fix for the phabricator module, instructing it to connect to MySQL via the TCP socket, not the UNIX one (the latter has been disabled in the new HHVM version packaged by WMF). Bug: T101749 Change-Id: I7ec1d2eaa3a003d4c3bfb80a29fa11fb64506407 --- M puppet/hieradata/common.yaml M puppet/modules/arcanist/manifests/init.pp M puppet/modules/crm/manifests/init.pp M puppet/modules/iegreview/manifests/init.pp M puppet/modules/mediawiki/manifests/init.pp M puppet/modules/mediawiki/manifests/jobrunner.pp M puppet/modules/mediawiki/manifests/parsoid.pp M puppet/modules/mediawiki/templates/run-git-update.erb M puppet/modules/mwv/manifests/init.pp M puppet/modules/phabricator/manifests/init.pp M puppet/modules/role/manifests/phragile.pp M puppet/modules/scholarships/manifests/init.pp A puppet/modules/service/files/confd/.gitignore A puppet/modules/service/manifests/gitupdate.pp M puppet/modules/service/manifests/init.pp M puppet/modules/service/manifests/node.pp A puppet/modules/service/templates/gitupdate.conf.erb M puppet/modules/smashpig/manifests/init.pp M puppet/modules/zotero/manifests/init.pp 19 files changed, 288 insertions(+), 37 deletions(-) Approvals: Dduvall: Looks good to me, approved jenkins-bot: Verified diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml index 5ba9368..c10506d 100644 --- a/puppet/hieradata/common.yaml +++ b/puppet/hieradata/common.yaml @@ -5,6 +5,7 @@ - '::puppet::agent' mwv::files_dir: /srv +mwv::etc_dir: /etc/mw-vagrant mwv::services_dir: /vagrant/srv mwv::vendor_dir: /srv mwv::enable_cachefilesd: true @@ -248,6 +249,7 @@ sentry::admin_pass: vagrant service::root_dir: %{hiera('mwv::services_dir')} +service::conf_dir: %{hiera('mwv::etc_dir')}/services service::log_dir: /vagrant/logs service::log_level: info diff --git a/puppet/modules/arcanist/manifests/init.pp b/puppet/modules/arcanist/manifests/init.pp index 6f62b7c..cdc5e7e 100644 --- a/puppet/modules/arcanist/manifests/init.pp +++ b/puppet/modules/arcanist/manifests/init.pp @@ -25,4 +25,13 @@ env::profile_script { 'add arcanist bin to path': content = export PATH=\$PATH:${deploy_dir}/arcanist/bin, } + +service::gitupdate { 'libphutil': +dir = ${deploy_dir}/libphutil, +} + +service::gitupdate { 'arcanist': +dir = ${deploy_dir}/arcanist, +} + } diff --git a/puppet/modules/crm/manifests/init.pp b/puppet/modules/crm/manifests/init.pp index 9ea1e02..c6706cd 100644 --- a/puppet/modules/crm/manifests/init.pp +++ b/puppet/modules/crm/manifests/init.pp @@ -46,6 +46,12 @@ require = Git::Clone[$repo], } +service::gitupdate { 'crm': +dir= $dir, +type = 'php', +update = true, +} + # required by module ganglia_reporter package { 'ganglia-monitor': } diff --git a/puppet/modules/iegreview/manifests/init.pp b/puppet/modules/iegreview/manifests/init.pp index 7c8531d..99fcc67 100644 --- a/puppet/modules/iegreview/manifests/init.pp +++ b/puppet/modules/iegreview/manifests/init.pp @@ -54,6 +54,10 @@ directory = $deploy_dir, } +service::gitupdate { 'iegreview': +dir = $deploy_dir, +} + # Create an application database mysql::db { $db_name: ensure = present, diff --git a/puppet/modules/mediawiki/manifests/init.pp b/puppet/modules/mediawiki/manifests/init.pp index e5ef274..b983c16 100644 --- a/puppet/modules/mediawiki/manifests/init.pp +++ b/puppet/modules/mediawiki/manifests/init.pp @@ -73,6 +73,8 @@ require ::php require ::hhvm +require ::service + include ::mediawiki::apache include ::mediawiki::jobrunner include ::mediawiki::multiwiki diff --git a/puppet/modules/mediawiki/manifests/jobrunner.pp b/puppet/modules/mediawiki/manifests/jobrunner.pp index 056e99c..64a5d9b 100644 --- a/puppet/modules/mediawiki/manifests/jobrunner.pp +++ b/puppet/modules/mediawiki/manifests/jobrunner.pp @@ -22,6 +22,11 @@ default = 'running', } +$restart = $enable ? { +false = false, +default = true, +} + git::clone { 'mediawiki/services/jobrunner': directory = $dir,
[MediaWiki-commits] [Gerrit] Update and restart services during git-update - change (mediawiki/vagrant)
Mobrovac has uploaded a new change for review. https://gerrit.wikimedia.org/r/219136 Change subject: Update and restart services during git-update .. Update and restart services during git-update Thus far, running vagrant git-update would update the git repos of services living in /vagrant/srv. This patch enhances its behaviour by also performing a dependency update and a service restart. For a service to do that, it must declare a service::gitupdate block specifying which updates need to be carried out and whether the service should be restarted. A configuration file for each service is then placed in /vagrant/srv/.conf.d and later read by run-git-update. This patch also updates all of the service modules to use it. Note: this patch also contains a fix for the phabricator module, instructing it to connect to MySQL via the TCP socket, not the UNIX one (the latter has been disabled in the new HHVM version packaged by WMF). Bug: T101749 Change-Id: I7ec1d2eaa3a003d4c3bfb80a29fa11fb64506407 --- M puppet/hieradata/common.yaml M puppet/modules/arcanist/manifests/init.pp M puppet/modules/crm/manifests/init.pp M puppet/modules/iegreview/manifests/init.pp M puppet/modules/mediawiki/manifests/init.pp M puppet/modules/mediawiki/manifests/jobrunner.pp M puppet/modules/mediawiki/manifests/parsoid.pp M puppet/modules/mediawiki/templates/run-git-update.erb M puppet/modules/phabricator/manifests/init.pp M puppet/modules/role/manifests/phragile.pp M puppet/modules/scholarships/manifests/init.pp A puppet/modules/service/manifests/gitupdate.pp M puppet/modules/service/manifests/init.pp M puppet/modules/service/manifests/node.pp A puppet/modules/service/templates/gitupdate.conf.erb M puppet/modules/smashpig/manifests/init.pp 16 files changed, 179 insertions(+), 34 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant refs/changes/36/219136/1 diff --git a/puppet/hieradata/common.yaml b/puppet/hieradata/common.yaml index e907a21..ffa1b96 100644 --- a/puppet/hieradata/common.yaml +++ b/puppet/hieradata/common.yaml @@ -235,6 +235,7 @@ sentry::admin_pass: vagrant service::root_dir: %{hiera('mwv::services_dir')} +service::conf_dir: %{hiera('mwv::services_dir')}/.conf.d service::log_dir: /vagrant/logs service::log_level: info diff --git a/puppet/modules/arcanist/manifests/init.pp b/puppet/modules/arcanist/manifests/init.pp index 6f62b7c..cdc5e7e 100644 --- a/puppet/modules/arcanist/manifests/init.pp +++ b/puppet/modules/arcanist/manifests/init.pp @@ -25,4 +25,13 @@ env::profile_script { 'add arcanist bin to path': content = export PATH=\$PATH:${deploy_dir}/arcanist/bin, } + +service::gitupdate { 'libphutil': +dir = ${deploy_dir}/libphutil, +} + +service::gitupdate { 'arcanist': +dir = ${deploy_dir}/arcanist, +} + } diff --git a/puppet/modules/crm/manifests/init.pp b/puppet/modules/crm/manifests/init.pp index 9ea1e02..c6706cd 100644 --- a/puppet/modules/crm/manifests/init.pp +++ b/puppet/modules/crm/manifests/init.pp @@ -46,6 +46,12 @@ require = Git::Clone[$repo], } +service::gitupdate { 'crm': +dir= $dir, +type = 'php', +update = true, +} + # required by module ganglia_reporter package { 'ganglia-monitor': } diff --git a/puppet/modules/iegreview/manifests/init.pp b/puppet/modules/iegreview/manifests/init.pp index 7c8531d..99fcc67 100644 --- a/puppet/modules/iegreview/manifests/init.pp +++ b/puppet/modules/iegreview/manifests/init.pp @@ -54,6 +54,10 @@ directory = $deploy_dir, } +service::gitupdate { 'iegreview': +dir = $deploy_dir, +} + # Create an application database mysql::db { $db_name: ensure = present, diff --git a/puppet/modules/mediawiki/manifests/init.pp b/puppet/modules/mediawiki/manifests/init.pp index 57487cd..b4c8bfd 100644 --- a/puppet/modules/mediawiki/manifests/init.pp +++ b/puppet/modules/mediawiki/manifests/init.pp @@ -73,6 +73,8 @@ require ::php require ::hhvm +require ::service + include ::mediawiki::apache include ::mediawiki::jobrunner include ::mediawiki::multiwiki diff --git a/puppet/modules/mediawiki/manifests/jobrunner.pp b/puppet/modules/mediawiki/manifests/jobrunner.pp index 056e99c..64a5d9b 100644 --- a/puppet/modules/mediawiki/manifests/jobrunner.pp +++ b/puppet/modules/mediawiki/manifests/jobrunner.pp @@ -22,6 +22,11 @@ default = 'running', } +$restart = $enable ? { +false = false, +default = true, +} + git::clone { 'mediawiki/services/jobrunner': directory = $dir, before= Service['jobrunner'], @@ -80,6 +85,17 @@ mode = '0444', } +service::gitupdate { 'jobrunner': +dir = $dir, +restart = $restart, +} + +service::gitupdate { 'jobchron': +dir = $dir, +pull