Help us understand the problem. What is going on with this article?

やん事ない理由で Git*.com を使えない日々をオンプレ版 GitLab で乗り切る

そう。やんごとない理由で使えない。

オンプレ版 GitLab で乗り切った覚書きとして GitLab 構築 (約2h) の一部始終の手順を書いておく。

環境

VirtualBox: 6.0.10r132072
https://www.virtualbox.org/wiki/Downloads

GitLab Community Edition 12.1.6

用途 OS Memory
Host OS Windows 10 16GB
Guest OS (GitLab サーバとして使用) CentOS 7.7 4GB 8GB

ゴール

イントラ内、もしくは VPN 経由http://192.168.100.201 で GitLab にアクセスできること。

構成図

image.png

4つのステップ

  1. Guest OS に CentOS をインストール
  2. GitLab のインストールと初期設定
  3. 既存 SVN or Git リポジトリがある場合はそれを GitLab にプッシュ
  4. チームメンバと GitLab の使い方を一緒に学んでいく

Guest OS に CentOS をインストール

  1. GUI はいらないので minimal をダウンロード
    http://ftp.riken.jp/Linux/centos/7.7.1908/isos/x86_64/

  2. 仮想マシンを新規作成

  3. ダウンロードした ISO をマウント
    ダウンロードした ISO をマウント

  4. ホストオンリーアダプターを追加
    ホストオンリーアダプターを追加

  5. 起動する
    参考: CentOSのインストール

  6. NAT の設定を変更する (インターネットに出れるようにするため)
    $ vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none #← 変更元は dhcp
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=enp0s3
    UUID=xxx
    DEVICE=enp0s3
    ONBOOT=yes #← 変更元は no
    IPADDR=10.0.2.25 #← 追加
    NETMASK=255.255.255.0 #← 追加
    GATEWAY=10.0.2.2 #← 追加
    DNS1=8.8.8.8 #← 追加
    
  7. ホストオンリーアダプターの設定を変更する (Host <--> Guest 間で通信するため)
    ※ VirtualBox GUI でも変更できるが...1
    $ vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none  #← 変更元は dhcp
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=enp0s8
    UUID=yyy
    DEVICE=enp0s8
    ONBOOT=yes #← 変更元は no
    IPADDR=192.168.56.101 #← 追加
    NETMASK=255.255.255.0 #← 追加
    DNS1=8.8.8.8 #← 追加
    
  8. 再起動
    $ reboot

  9. ポートフォワーディングのルールを追加
    ポートフォワーディングのルールを追加

    • Rule1: http://192.168.100.201:80http:192.168.56.101:80 にアクセスできる。
    • Rule2: $ ssh -l {user-name}@192.168.100.201 -p 22192.168.56.101 に ssh できる。 image.png

    ※ やん事ない理由で80番ポートを使えず、10080番を使う場合

    1. $ vi /etc/gitlab/gitlab.rb

       #external_url 'http://192.168.100.201'
       external_url 'http://192.168.100.201:10080'
      
    2. 再構成 $ gitlab-ctl reconfigure

    3. image.png

  10. 通信を確認。

    1. [Guest OS] からインターネットに出れること。
      $ curl http://www.example.com/
    2. [Host OS] から Guest OS に ssh できること。
      $ ssh {ユーザ名}@{前項で設定したホストオンリーアダプターのIPアドレス} -p 22
      $ ssh foo@192.168.56.101 -p 22
    3. [同一 LAN 上のマシン] から Host OS を経由して Guest OS に ssh できること。
      $ ssh {ユーザ名}@{ホストOSのIPアドレス} -p 22
      $ ssh bar@{192.168.100.201} -p 22

CentOS の初期設定

  1. 最低限の設定とインストール。
# 最新化
$ yum -y update

# 開発者ツールのインストール
$ yum -y groupinstall "Development Tools"

# vim インストール
$ yum -y install vim-enhanced

GitLab のインストールと初期設定

  1. インストール

    https://about.gitlab.com/install/#centos-7

    公式の手順を基本にする。(注: インストールするパッケージは gitlab-ee ではなく gitlab-ce)

    $ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
    ↓
    $ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    
    $ sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ee  
    ↓  
    $ sudo EXTERNAL_URL="https://192.168.100.201" yum install -y gitlab-ce
    
  2. 管理者でサインイン
    Username: root
    Password: 5iveL!fe

  3. 初期設定3つ

    • GitLab ユーザの作成
    • グループの作成
    • 新規プロジェクトの作成 group/project

参考:
(基本) https://git-manual.net/gitlab-project-repository-user/
(ロールに付与される権限) https://qiita.com/mikoski01/items/7a7795a8a1e98d9ba6d9

既存 SVN or Git リポジトリがある場合はそれを GitLab にプッシュ。

  • Git リポジトリ
$ git remote set-url origin git@192.168.56.201/group/project.git

チームメンバと GitLab の使い方を一緒に学んでいく:thumbsup:

社内勉強会などの啓蒙活動が基本。あとは「習うより慣れるやで~」的なノリで乗り切る。

後記

続編も書こうと思う。

続編1: オンプレ版 GitLab で GitLab Pages する
続編2: Docker outside of Docker (DooD) で GitLab-CI する


  1. バージョンアップで UI が変わったり、そもそも他の仮想化ソフトを使わなければいけないこともあるので設定ファイルを直接変更する 

hykisk
C# Software engineer. Interests: GitLab, CentOS, Vagrant, tmux, TCP/IP, CakePHP3, Laravel, WSL, Vim, WPF, Xamarin, PostgreSQL Streaming Replication, Devops
https://github.com/hykisk
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした