LoginSignup
1
1

More than 5 years have passed since last update.

最小構成のCentOS7にRPMコマンドでGitLabをインストールしてみた

Posted at

CentOS7の最小構成にGitLabをインストールしてみた

僕はプログラマではないので、Gitを使ったことがない。だが、会社でサーバを管理していると、Configファイルの追加・修正は頻繁に行っている。Configを変更する際にはバックアップを取っているのだが、なんでその変更を行ったのかの管理はエクセルで実施していた。このエクセルでの修正がかなり面倒で、非生産的な仕事になっている。
Gitの使い方を雑誌などで読むと、プログラムのソースコード管理しかできないわけではなく、configファイルのバージョン管理にも十分使えそうだということがわかってきた。
ということで、会社にGitサーバを建てる前にGitとはどういうものなのか、どう使えば良いのかを試すためにGitLabサーバを自分の家に建ててみた。

yumを使わずにrpmだけでGitLabをインストールする

会社のサーバが置かれているセグメントはInternetに対する接続性がない。ここにGitLabのサーバを作ることを考えるとGitLabはリポジトリを追加して、yumコマンドでインストール一発!というわけには行かない。そこで、rpmを取ってきてrpmコマンドでインストールしてみた。

CentOS7の最小構成インストール

VirtualBoxにCentOS7を最小構成でインストールする。この辺の手順は割愛。

VirtualPCを作るときに、公式ページに、"We also strongly recommend at least 4GB of free memory to run GitLab." なんてことが書いてあるので、メモリは4G以上にしておく。

公式の手順を確認する

GitLab公式の手順ではyumを使ったり、curlをつかったりしてインストールすることになっているが、yumを使わないでインストールするためにGitLabの GitLab公式に書いてある必要なものを確認し、インストールする。

まず、公式では

sudo yum install -y curl policycoreutils-python openssh-server

をやれと書いてある。
CentOS7のインストールを最小構成で行うと、curlopenssh-serverは初めからインストールされている。しかしpolicycoreutils-pythonはインストールされていない。

また、

sudo systemctl enable sshd
sudo systemctl start sshd

でsshサーバを起動するように書いてあるが、これもインストールするとsshサーバは自動で起動するようになっている。
自動でsshdが起動するようになっているが、rootでもリモートからsshログインできてしまうので、/etc/ssh/sshd_configを編集してこれをできないようにしておく。

$ sudo /etc/ssh/sshd_config
PermitRootLogin No

$ sudo systemctl restart sshd.service

firewalldでhttpの穴が空いていないのでポリシーを追加する。
ちなみに、一般的なサービスは以前書いたように穴を開けるのではなく、多くの場合以下のように開けるのが普通らしい。

$ sudo firewall-cmd --permanent --add-service=http
$ sudo systemctl reload firewalld

次にpostfixをインストールするように書かれているが、これも初めからインストールされていて、自動起動するようになっているので以下は、特にやる必要はない。

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

rpmファイルを取ってくる

policycoreutils-pythonがインストールされていないので、RPMファイルをどこかのCentOS7のミラーサーバから取ってくる。僕がよく使うのは、理研さんのところでosupdatesからダウンロードする。

RPMファイルをインストールする

さて、取ってきたpolicycoreutils-python-2.5-22.el7.x86_64.rpmをrpmコマンドでインストールしようとすると、依存関係が満たされていないといって怒られてしまう。
依存関係を満たすまで、rpmを取ってきては入れ、取ってきては入れ、とやればよいのだが、いつ依存関係が解消されるのかわからない。そこでチートだが、rpmの依存関係がどうなっているのかを一発で調べるため、internetに接続環境があるところで、yumコマンドをつかって必要なrpmファイルを調べてみる。(ここでインストールしたらつまらないので、インストールはしない)

すると、policycoreutils-python-2.5-22.el7.x86_64.rpmをインストールするには、以下のものが必要であることがわかった。

audit-libs-2.8.1-3.el7_5.1.x86_64.rpm
audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm
checkpolicy-2.5-6.el7.x86_64.rpm
libcgroup-0.41-15.el7.x86_64.rpm
libsemanage-python-2.5-11.el7.x86_64.rpm
policycoreutils-python-2.5-22.el7.x86_64.rpm
python-IPy-0.75-6.el7.noarch.rpm
setools-libs-3.3.8-2.el7.x86_64.rpm

これらも、個別にダウンロードしておく。

また、GitLabのRPMをダウンロードしてくる。

一気にインストール!

取ってきたrpmファイルを一気にインストールする。普通は一つ一つ指定してインストールする。

$ sudo rpm -ivh audit-libs-2.8.1-3.el7_5.1.x86_64.rpm audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm checkpolicy-2.5-6.el7.x86_64.rpm libcgroup-0.41-15.el7.x86_64.rpm libsemanage-python-2.5-11.el7.x86_64.rpm policycoreutils-python-2.5-22.el7.x86_64.rpm python-IPy-0.75-6.el7.noarch.rpm setools-libs-3.3.8-2.el7.x86_64.rpm gitlab-ce-11.2.5-ce.0.el7.x86_64.rpm

こんなやり方でインストールする方法もある。数が多くて面倒なとき。

$ pwd
/home/hoge/git
$ ls 
audit-libs-2.8.1-3.el7_5.1.x86_64.rpm         gitlab-ce-11.2.5-ce.0.el7.x86_64.rpm      policycoreutils-python-2.5-22.el7.x86_64.rpm
audit-libs-python-2.8.1-3.el7_5.1.x86_64.rpm  libcgroup-0.41-15.el7.x86_64.rpm          python-IPy-0.75-6.el7.noarch.rpm
checkpolicy-2.5-6.el7.x86_64.rpm              libsemanage-python-2.5-11.el7.x86_64.rpm  setools-libs-3.3.8-2.el7.x86_64.rpm
$ sudo rpm -Uvh *.rpm

ただし下の方法だと、必要ないRPMファイルがあるとそれも一緒にインストールされてしまうので、必要なものだけを抽出しておく必要がある。

インストール後の設定

external_url の行をhost名に。(host名がgit.example.comの場合)

/etc/gitlab/gitlab.rb
external_url 'http://git.example.com/'

gitlab-ctl コマンドを使って、設定ファイルでreconfig。

$ sudo gitlab-ctl reconfigure

これでとりあえず動いて、Webでアクセスできるようになった。
さて、これから使い方を勉強しよう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1