cmutua - GitLab Installation Administration Basics
module: GitLab Installation and Administration Basics
area: Administering GitLab
level: Beginner
maintainer: tatkins
pathways:
support-engineer-onboarding:
position: 3
Introduction
Welcome to the next step in your onboarding pathway!
As you work through this onboarding issue, remember that this issue is non-confidential and is public. Please do not add confidential data such as customer names, logs, etc. to this issue. Linking to the appropriate Zendesk ticket is OK!
Goals of this checklist
At the end of the checklist, new team member should
- Get your development machine set up.
- Familiarize yourself with the codebase.
- Be prepared to reproduce issues that our users encounter.
- Be comfortable with the different installation options of GitLab.
- Have an installation available for reproducing customer bug reports.
General Timeline and Expectations*
- Read about our Support Onboarding process; the page also shows you the different modules you'll need to complete as part of your Onboarding.
- This issue should take you one week to complete.
Stage 0. Installation and Administration basics.
Set up your development machine
-
Install the GDK. If you like Docker, especially if you're running Linux on your desktop, consider the GitLab Compose Kit.
Installations
You will keep one installation continually updated on Digital Ocean (managed through Terraform), just like many of our clients. You need to choose where you would like to test other installations. (TODO: We need to list some benefits of each choice here.)
-
Use terraform to create a new test instance. -
Read up on how to create a new instance. If you have any issues or questions, ask in the #support_self-managed
channel.
-
-
Set up your test environments. -
Choose between Local VM's or Digital Ocean for your preferred test environment and note it in a comment below. -
Perform each of the following Installation Methods on the test environment you chose above: -
Install via Omnibus -
Populate with some test data: User account, Project, Issue -
Backup using our Backup rake task -
Install via Docker on your local machine. -
Restore a backup to your Docker VM using our Restore rake task -
Install GitLab from Source. Installation from source is not common but will give you a greater understanding of the components that we employ and how everything fits together.
-
-
With your onboarding buddy or another Support team member, manually generate 3 ' self-managed' licenses at https://license.gitlab.com/ - one for each of Starter, Premium, and Ultimate. Suggest around 100 users with 5-year expiry. Keep the licenses securely in 1Password. Use the licenses on your test instance when replicating customer issues. By having the correct license, you will ensure feature parity with what the customer is seeing. - The services below are part of the many services used by our customers. Installing these services and learning how they work with GitLab will prepare you for Stage 3 and give you a solid foundation for when you're ready to resolve tickets on your own.
-
GitLab Runner and connect it to your GitLab instance. -
Elastic Search -
Install on a VM or a separate instance on Terraform - The steps outlined on Digital Ocean should help you configure your instance's IP.
- Set
cluster.name
andnode.name
and use the latter incluster.initial_master_nodes
to enable "single node" mode.
-
Connect Elastic Search to your GitLab instance and index your repositories. You need to apply a license to your GitLab instance for the integration settings to appear if you haven't already.
-
-
Connect your GitLab instance to a new cluster via the Kubernetes clusters integration and install a Runner in the cluster: -
log in to https://console.cloud.google.com/ with your work email. -
Create a cluster under the project gitlab-support
. Start small to cut costs to about one tenth of the default cluster config:- Set
Location type
to a single zone (instead of a region) - Set
Node pool
Size
to 1 - Set the
Nodes
'Machine type
to asmaller
one than the default (recommende2-medium
for 2vCPU and 4GB RAM) - Review the general tips for cost optimization
- Set
-
You will also need to install the gcloud SDK
. -
Add the Kubernetes cluster to GitLab. -
Create a project on your self-managed instance and then create a file named .gitlab-ci.yml
. -
Use the YAML docs as a resource to build a basic script. -
Make sure your project has access to your Kubernetes cluster under Operations -> Kubernetes. -
Make sure your project has registered runners under your project's Settings -> CI/CD -> Runners. -
Pat yourself on the back; you're now ready to reproduce some of our common customer tickets. -
Remove the cluster when you're done!
-
-
-
Watch the GitLab Debugging Techniques: A Support Engineering Perspective video on GitLab Unfiltered (YouTube). This dives into some common issues that customers might experience. -
In the future, you may need other applications for testing. Don't set these up now, but check out the infrastructure for troubleshooting section of workflows, so you know what's available. -
You can check this box, but this one never stops as long as you are a Support Engineer for GitLab: Keep this installation up-to-date as patch and version releases become available, just like our customers would. If your test instance is publicly available, keep it secured and disable user Sign-ups.
Congratulations! You made it, and now have an understanding of the different ways in which GitLab can be installed and managed.
You are now ready to continue on your onboarding path to tackle the next module in line. Reach out to your manager or onboarding buddy if it is not assigned to you yet; you can check the training page or your New Support Team Member Start Here
issue to see the list of all modules under your Onboarding pathway!
If you think of any improvements to this module, please submit an MR! The file is located in an issue template in the 'support-training` repository.