- 1 What is Wikimedia Labs (aka Labs)?
- 2 What is Tool Labs (aka Tools)?
- 3 What is the difference between Labs and Tool Labs ?
- 4 What is a Project?
- 5 What is an Instance?
- 6 What is a Service group?
- 7 What is Labs for?
- 8 How does Labs work?
- 9 I am new to Wikimedia Labs. What should I do next?
- 10 I have a project idea. How can I request a new project?
- 11 I want to contribute to an existing project. where can I find the project list ?
- 12 How can I contact a human? (How can I get help from a human)
- 13 What is shell access?
- 14 What is Puppet?
- 15 What is gerrit?
- 16 What is a bastion instance?
- 17 Where can I find other Labs Terminology explained?
Frequently asked questions about Wikimedia Labs.
Ever wondered what is the difference between Labs, Tool Labs, Projects and Tools? Are you confused by new terms used on Wikimedia Labs? Hopefully this page will help.
Note: If you know all this, but you are looking for more technical details, see Help:Terminology.
What is Wikimedia Labs (aka Labs)?
Wikimedia Labs (or Labs) is a cloud computing infrastructure powered by OpenStack for projects related to the Wikimedia movement. Volunteer contributors can use this infrastructure to create and maintain open source software projects.
Labs is divided into projects. Each project has separate members and administrators who can create and maintain virtual machines ("instances") for use by that project. Each project can have own its own access policies, DNS records, etc.
For help with Wikimedia Labs, see Help:Contents.
What is Tool Labs (aka Tools)?
Tool Labs is one of the projects hosted by Wikimedia Labs. The Tool Labs administrators manage a pool of virtual servers that provide a shared project hosting environment that can be used by Tool Labs users. These resources include web servers, databases and other data storage, and a distributed job processing system. These services provide a reliable and scalable hosting environment for volunteers to develop and operate their tools and bots.
Users of the Tool Labs project create "tool" accounts (technically service groups) which allow one or more users to collaborate to manage the software source code, configuration, and jobs for that tool or bot.
For help with Tool Labs, see Help:Tool Labs.
What is the difference between Labs and Tool Labs ?
Labs is an Infrastructure as a service (IaaS) solution. It provides virtual machines, storage, firewall, and HTTPS proxy resources to projects. The members of each individual project are responsible for managing applications, data, runtime, middleware, and OSes themselves.
Tool Labs is a Platform as a service (PaaS) solution. It provides web servers, databases and other data storage, and a distributed job processing system as managed services that can be used by tools and their maintainers.
What is a Project?
A project is a unit of privilege separation inside the Labs environment. Each project has separate management of membership, virtual machines, HTTPS proxies, firewall rules, etc. Examples of projects include Tool Labs and the Beta Cluster.
What is an Instance?
An instance is a virtual machine that hosted inside Wikimedia Labs. Every instance belongs to a project. An example of an instance is "tools-exec-02".
What is a Service group?
A service group is an LDAP user account which is meant to be used as a service user account for various applications. For example, if you want to install an application and run its executables as a service user (as opposed to running it as your personal user name), you can create a service group for one or more applications.
Service groups can be configured per project. In the case of Tool Labs, each tool automatically has its own service group to keep tools from accessing each other without permission.
What is Labs for?
Wikimedia Labs is for the volunteers to get involved in Wikimedia operations and software development. Labs contains many projects, each of which uses one or more instances. Tool Labs is one of the most important projects in Wikimedia Labs.
How does Labs work?
Wikimedia Labs is a virtualization cluster and hosts various virtual machines (called instances) using OpenStack Compute.This is slightly different from your normal servers that you ssh to (i.e. Toolserver), as virtual machines do not exist physically, but reside inside a much bigger machine called the host machine. More details about the physical setup of labs can be found under Labs infrastructure.
I am new to Wikimedia Labs. What should I do next?
If you haven’t done so, create a user account here on Wikitech. Go through our Getting Started and Help documents. If you want more help drop by our irc channel #wikimedia-labs channel on Freenode or drop a mail to our mailing list labs-l mailing list and ask for help.
I have a project idea. How can I request a new project?
If you haven’t done so, create a user account on Wikitech. If you need to create a new project for your development work, place your request on phabricator. You can also get help by dropping by our irc channel on Freenode (#wikimedia-labs connect) or sending a mail to our mailing list .
I want to contribute to an existing project. where can I find the project list ?
How can I contact a human? (How can I get help from a human)
What is shell access?
Shell access to Wikimedia Labs gives you the ability to access the virtual machine instances. It depends on your accounts access rights and the projects you have been assigned. Only project admins are allowed to create and manage instances.
What is Puppet?
Puppet is a configuration management system. When instances are created, they build themselves according to a set of rules (manifests, template, and files) defined by puppet. learn more about puppet.
What is gerrit?
Gerrit is a code review system that manages git repositories. It will provide a simple framework for reviewing every commit before it is accepted into the code base. When a volunteer submit a patch it is reviewed using Gerrit by the project admins before it gets merged to the code base. See the Gerrit tutorial on mediawiki.org for more information.
What is a bastion instance?
For security purposes most lab instances cannot be directly accessed from the Internet. To log in to other instances a bastion instance is used. The Labs bastion (bastion.wmflabs.org) is accessible by every labs account holder with shell access.
Where can I find other Labs Terminology explained?
On Terminology page.