Yuvipanda has uploaded a new change for review.
https://gerrit.wikimedia.org/r/195340
Change subject: deployment: Combine labs/prod deployment server roles
......................................................................
deployment: Combine labs/prod deployment server roles
- Unify them into one
- Include scap::master into them as well. All deployment
servers are also scap masters so far, and they were
fairly intertwined anyway.
Change-Id: I3e947637b49ce2a94128e21db35798a49e8d45e8
---
M hieradata/labs/staging/common.yaml
M manifests/role/deployment.pp
M manifests/site.pp
3 files changed, 31 insertions(+), 78 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/40/195340/1
diff --git a/hieradata/labs/staging/common.yaml
b/hieradata/labs/staging/common.yaml
index 52a9ef9..f1869a3 100644
--- a/hieradata/labs/staging/common.yaml
+++ b/hieradata/labs/staging/common.yaml
@@ -6,3 +6,5 @@
salt::master::salt_pillar_roots: { base: [ '/srv/pillars' ] }
salt::master::salt_module_roots: { base: [ '/srv/salt/_modules' ] }
salt::master::salt_returner_roots: { base: [ '/srv/salt/_returners' ] }
+role::deployment::server::deployable_networks: ['10.0.0.0/8']
+role::deployment::server::deployment_group: 'project-staging
diff --git a/manifests/role/deployment.pp b/manifests/role/deployment.pp
index e535013..7d8d07a 100644
--- a/manifests/role/deployment.pp
+++ b/manifests/role/deployment.pp
@@ -128,15 +128,18 @@
}
}
-class role::deployment::deployment_servers::common(
+class role::deployment::server(
# Source of the key, change this if not in production, with hiera.
$key_source = 'puppet:///private/ssh/tin/mwdeploy_rsa',
+ $apache_fqdn = $::fqdn,
+ $deployable_networks = $::network::constants::deployable_networks,
+ $deployment_group = 'wikidev',
) {
# Can't include this while scap is present on tin:
# include misc::deployment::scripts
class { 'deployment::deployment_server':
- deployer_groups => ['wikidev'],
+ deployer_groups => [$deployment_group],
}
# set umask for wikidev users so that newly-created files are g+w
@@ -151,8 +154,20 @@
include ::apache
include ::apache::mod::dav
include ::apache::mod::dav_fs
+ include ::apache::helper_scripts
+
+ include wikitech::wiki::passwords
+
+ include role::scap::master
class { 'mediawiki::packages': }
+
+ ferm::service { 'http_deployment_server':
+ desc => 'http on trebuchet deployment servers, for serving actual
files to deploy',
+ proto => 'tcp',
+ port => '80',
+ srange => $deployable_networks,
+ }
#RT 7427
::monitoring::icinga::git_merge { 'mediawiki_config':
@@ -166,24 +181,13 @@
keyholder::private_key { 'mwdeploy_rsa':
source => $key_source,
}
-}
-
-class role::deployment::deployment_servers::production {
- include role::deployment::deployment_servers::common
- include network::constants
- include wikitech::wiki::passwords
- include apache::helper_scripts
- include dsh
- include rsync::server
file { '/srv/deployment':
ensure => directory,
owner => 'trebuchet',
- group => 'wikidev',
+ group => $deployment_group,
}
- $deployable_networks = $::network::constants::deployable_networks
- $apache_fqdn = $::fqdn
apache::site { 'deployment':
content => template('apache/sites/deployment.erb'),
@@ -201,6 +205,16 @@
port => '6379',
}
+ sudo::group { "${deployment_group}_deployment_server":
+ group => $deployment_group,
+ privileges => [
+ 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet --out=json
pillar.data',
+ 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet publish.runner
deploy.fetch *',
+ 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet publish.runner
deploy.checkout *',
+ 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet --out=json
publish.runner deploy.restart *',
+ ],
+ }
+
package { 'percona-toolkit':
ensure => latest,
}
@@ -209,16 +223,6 @@
# determining the state of git repos during deployments.
package { 'tig':
ensure => latest,
- }
-
- sudo::group { 'wikidev_deployment_server':
- group => 'wikidev',
- privileges => [
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet --out=json
pillar.data',
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet publish.runner
deploy.fetch *',
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet publish.runner
deploy.checkout *',
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet --out=json
publish.runner deploy.restart *',
- ],
}
}
@@ -244,58 +248,6 @@
class { 'deployment::salt_master':
repo_config => $role::deployment::config::repo_config,
deployment_config => $deployment_config,
- }
-}
-
-class role::deployment::deployment_servers::labs {
- include role::deployment::deployment_servers::common
-
- # Enable multiple test environments within a single project
- if ( $::deployment_server_override != undef ) {
- $apache_fqdn = $::deployment_server_override
- } else {
- $apache_fqdn = "${::instanceproject}-deploy.eqiad.wmflabs"
- }
-
- $deployable_networks = '10.0.0.0/8'
-
- file { '/srv/deployment':
- ensure => directory,
- owner => 'trebuchet',
- group => "project-${::instanceproject}",
- }
-
- apache::site { 'deployment':
- content => template('apache/sites/deployment.erb'),
- require => File['/srv/deployment'],
- }
-
- ferm::service { 'http_deployment_server':
- desc => 'http on trebuchet deployment servers, for serving actual
files to deploy',
- proto => 'tcp',
- port => '80',
- srange => $deployable_networks,
- }
-
- class { 'redis':
- dir => '/srv/redis',
- maxmemory => '500Mb',
- monitor => false,
- }
-
- ferm::service { 'deployment-redis':
- proto => 'tcp',
- port => '6379',
- }
-
- sudo::group { "project_${::instanceproject}_deployment_server":
- group => "project-${::instanceproject}",
- privileges => [
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet --out=json
pillar.data',
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet publish.runner
deploy.fetch *',
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet publish.runner
deploy.checkout *',
- 'ALL = (root) NOPASSWD: /usr/bin/salt-call -l quiet --out=json
publish.runner deploy.restart *',
- ],
}
}
diff --git a/manifests/site.pp b/manifests/site.pp
index 876cae1..2a90539 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -2382,9 +2382,8 @@
$cluster = 'misc'
include standard
- include role::deployment::deployment_servers::production
+ include role::deployment::server
include mediawiki
- include role::scap::master
include mysql
include role::labsdb::manager
include ssh::hostkeys-collect
--
To view, visit https://gerrit.wikimedia.org/r/195340
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3e947637b49ce2a94128e21db35798a49e8d45e8
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Yuvipanda <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits