Note: This code is not designed for Production use; currently this is ENTIRELY experimental.
- Terraform
- Ansible
- Wikimedia Cloud Services
- Blue-green deployment
If you're doing this from scratch, the playbook that's run to set up the instance should configure a fully-working MediaWiki instance you can use. Default credentials:
- Username:
Admin
- Password:
AdminOAuth123!
You can't use Terraform, so you'll have to do this manually.
- Shutoff the old instance and detach the cinder volumes.
- Create a new instance with the settings below. If you're nervous about being able to complete the next two steps quickly, drop the
acc-provision
line from near the bottom of the userdata. - Attach the cinder volumes to the new instance
- Create instance metadata called "publicdns" with value "accounts-oauth.wmflabs.org"
- Update novaproxy to point to the new instance
- Log into the box
- Check /var/log/cloud-init-output.log to make sure everything finished successfully. You should see "Cloud-init finished"
- Run
acc-provision
if it wasn't run by userdata already.
Instance settings:
- Name: accounts-mwoauthX
- SecGroups: web, default
- Flavour: g3.cores1.ram2.disk20
- UserData: use the file
./userdata/oauth/userdata.sh
file.
- Create the Cinder volumes
- Create a new instance with the settings below. If you're nervous about being able to complete the next two steps quickly, drop the
acc-provision
line from near the bottom of the userdata. - Attach the cinder volumes to the new instance. Attach db disk first, then backup disk
- Log into the box
- Check /var/log/cloud-init-output.log to make sure everything finished successfully. You should see "Cloud-init finished"
- Run
acc-provision
if it wasn't run by userdata already.
Instance settings:
- Name: accounts-dbX
- SecGroups: database, default
- Flavour: g3.cores1.ram2.disk20
- UserData: use the file
./userdata/app/db-userdata.sh
file.
- Create the Cinder volume
- Create a new instance with the settings below. If you're nervous about being able to complete the next two steps quickly, drop the
acc-provision
line from near the bottom of the userdata. - Attach the cinder volume to the new instance.
- Log into the box
- Check /var/log/cloud-init-output.log to make sure everything finished successfully. You should see "Cloud-init finished"
- Run
acc-provision
if it wasn't run by userdata already.
Instance settings:
- Name: accounts-appserverX
- SecGroups: database, default
- Flavour: g3.cores1.ram2.disk20
- UserData: use the file
./userdata/app/app-userdata.sh
file.