Deployment server
(Redirected from Deployment.eqiad.wmnet)
Deployment servers are servers used for deployment of software using Scap and scap3.
Service
As of May 2023 the deployment servers are:
- deploy1002, currently active primary
- deploy2002, passive/spare
There is also a service alias deployment.eqiad.wmnet
which always points to the currently active deployment (Yes, this shortcut does the right thing, despite having "eqiad" in its name).
Runbooks
How to setup a deployment server in a cloud VPS project
- create a new cloud VPS instance of size m1.small (or m1.medium if you will be deploying many scap3 projects)
- in Horizon apply the puppet 'role::deployment_server' on the instance
- Create and attach an extra storage volume on
/srv
to hold the software you are going to deploy - in the operations/puppet repo in ./hieradata/labs/yourproject/common.yaml or in Horizon add Hiera key/value pairs:
has_lvs: false has_tls: false mcrouter::has_ssl: false mcrouter::port: 11213 mcrouter::shards: wancache: eqiad: shard01: host: deployment-memc04 port: 11211 shard02: host: deployment-memc05 port: 11211 shard03: host: deployment-memc08 port: 11211 profile::kubernetes::deployment_server::git_group: wikidev profile::kubernetes::deployment_server::git_owner: trebuchet profile::mediawiki::apc_shm_size: 128M profile::mediawiki::deployment::server::rsync_host: deploy1001.devtools.eqiad1.wikimedia.cloud profile::mediawiki::php::enable_fpm: true profile::mediawiki::php::php_version: '7.2' profile::rsyslog::kafka_shipper::kafka_brokers: [] profile::services_proxy::ensure: absent profile::services_proxy::services: dummy: hostname: dummy.example.net localport: 9999 port: 9999 scheme: https timeout: 600 redis::shards: sessions: eqiad: shard01: host: 172.16.5.76 port: 6379 shard02: host: 172.16.5.17 port: 6379 shard03: host: 172.16.5.12 port: 6379 shard04: host: 172.16.5.2 port: 6379 scap::dsh::groups: librenms: hosts: - deployment-netbox.deployment-prep.eqiad1.wikimedia.cloud mediawiki-api-canaries: hosts: [] mediawiki-appserver-canaries: hosts: - deployment-mediawiki-07.deployment-prep.eqiad1.wikimedia.cloud mediawiki-installation: hosts: - deployment-jobrunner03.deployment-prep.eqiad1.wikimedia.cloud - deployment-mediawiki-09.deployment-prep.eqiad1.wikimedia.cloud - deployment-mediawiki-07.deployment-prep.eqiad1.wikimedia.cloud - deployment-snapshot01.deployment-prep.eqiad1.wikimedia.cloud - deployment-deploy01.deployment-prep.eqiad1.wikimedia.cloud - deployment-deploy02.deployment-prep.eqiad1.wikimedia.cloud - deployment-mwmaint01.deployment-prep.eqiad1.wikimedia.cloud - deployment-mediawiki-parsoid10.deployment-prep.eqiad1.wikimedia.cloud restbase-betacluster: hosts: - deployment-restbase01.deployment-prep.eqiad1.wikimedia.cloud - deployment-restbase02.deployment-prep.eqiad1.wikimedia.cloud webperf: hosts: - deployment-webperf11.deployment-prep.eqiad1.wikimedia.cloud scap::sources: gerrit/gerrit: repository: operations/software/gerrit gervert/deploy: repository: operations/software/gerrit/tools/gervert/deploy phabricator/deployment: repository: phabricator/deployment
- adjust the deployment::server::rsync_host value to a host in your project
- adjust scap::sources to contain the scap3 projects you will be deploying
- run puppet (a couple times)
- run sudo -u trebuchet /usr/bin/scap deploy --init inside each of the repos under /srv/deployment/, so for example in /srv/deployment/gerrit/gerrit and so on but NOT in /srv/deployment/ directly.
- run git init in /srv/deployment
- run puppet again