Hi all, I’m new to GitLab. Was recently tasked to upgrade our current GitLab installation so was trying to find the process to go about it. I noticed that the first step is to determine the installation method used for our install, however, I have not much idea on how to determine that. There were articles on differentiating between Omnibus and Source installations but what about Docker installations? Is there any indications for Docker installations (I’m new to Docker as well)? Thanks for your time.
Well, I think the simplest way would be log into your server and then do something like this (depending on the distro as you failed to mention the operating system).
If RHEL/CentOS or other RPM distro:
rpm -qa | grep -i gitlab
If Debian/Ubuntu installation:
dpkg -l | grep -i gitlab
either of those commands should return either gitlab-ce or gitlab-ee depending on which was installed. If nothing returns, then it could be a source installation, or even docker. So:
if you see instances running that seem to relate to gitlab, then it would be this. If nothing, or invalid command, then you are not using docker either.
That would leave it being a source installation.
Usually omnibus installations would use gitlab-ctl commands, so you can also verify if it is an omnibus install using something like:
since omnibus is installed from packages, then either the rpm or dpkg command would have returned a package name which also verifies it as being an omnibus installation.
Also I suggest you also find out from the
gitlab-ctl status command if you are using the embedded postgresql, or whether it is using an external postgresql server, because otherwise this can also cause you issues when attempting to upgrade if you aren’t careful.
You will also need to be sure, that the server is actually a single server, and not part of a cluster, but if you only know of one server in your environment and no others, then that would pretty much clear that up.
Apologies for missing to mention the OS, we are running CentOS 7.
rpm -qa | grep -i gitlab returns gitlab-ce-12.7.5-ce.0.el7.x86_64, so it looks like an Omnibus install.
docker ps also does not indicate any gitlab instances.
Finally, gitlab-ctl status returns the following:
run: alertmanager: (pid 2360) 4811378s; run: log: (pid 2358) 4811378s
run: gitaly: (pid 2362) 4811378s; run: log: (pid 2361) 4811378s
run: gitlab-exporter: (pid 2365) 4811378s; run: log: (pid 2364) 4811378s
run: gitlab-workhorse: (pid 2384) 4811378s; run: log: (pid 2373) 4811378s
run: grafana: (pid 2370) 4811378s; run: log: (pid 2366) 4811378s
run: logrotate: (pid 126146) 1500s; run: log: (pid 2352) 4811378s
run: nginx: (pid 2372) 4811378s; run: log: (pid 2359) 4811378s
run: node-exporter: (pid 2379) 4811378s; run: log: (pid 2374) 4811378s
run: postgres-exporter: (pid 2369) 4811378s; run: log: (pid 2363) 4811378s
run: postgresql: (pid 2383) 4811378s; run: log: (pid 2357) 4811378s
run: prometheus: (pid 2385) 4811378s; run: log: (pid 2378) 4811378s
run: redis: (pid 2381) 4811378s; run: log: (pid 2351) 4811378s
run: redis-exporter: (pid 2377) 4811378s; run: log: (pid 2376) 4811378s
run: registry: (pid 2371) 4811378s; run: log: (pid 2367) 4811378s
run: sidekiq: (pid 2355) 4811378s; run: log: (pid 2353) 4811378s
run: unicorn: (pid 2382) 4811378s; run: log: (pid 2356) 4811378s
It does looks like an Omnibus install running embedded postgresql. There’s only 1 server so it has to be a single server and not a cluster.
Looks like I got the answer I needed. Many thanks for your help, Ian!