你的浏览器还没开启 Javascript 功能!

社内Gitサーバー構築手順

社内Gitサーバーの構築手順を記述します。

前提

CentOS7

OSのインストールと社内環境における初期設定の手順を下記に記載する。

OSインストール

基本的に下記サイトの手順に従いOSのインストールを行う。ネットワークとホスト名は事前に社内申請したIPやホスト名を用いる。

初期設定

sshで接続できるようにfirewallを無効にする。

$ systemctl stop firewalld 
$ systemctl disable firewalld

以降の作業はすべてssh接続して行う

社内サーバーのためSELinuxを無効にする。

$ vi /etc/selinux/config

SELINUX=disabled   # disabled に変更

$ reboot

プロキシ設定

アプリケーションのインストールと更新ができるようにプロキシ設定を行う。

$ vi /etc/profile

# 最終行に追記
USER_NAME="****"
PASSWORD="****"
PROXY_HOST="****"
PROXY_PORT="****"
PROXY_URL="http://$USER_NAME:$PASSWORD@$PROXY_HOST:$PROXY_PORT"
export HTTP_PROXY=$PROXY_URL
export HTTPS_PROXY=$PROXY_URL
export FTP_PROXY=$PROXY_URL
export http_proxy=$PROXY_URL
export https_proxy=$PROXY_URL
export ftp_proxy=$PROXY_URL

$ source /etc/profile

プロキシ設定後にシステム最新化できるかどうか、更新commandを実行する。

$ yum -y update 

ドメイン参加

ドメイン参加する必要性あるかどうかを別にして、一応手順を記載します。

前提

  • DNSが既に設定済み
## 必要モジュールwinbind一式インストール
 $ yum -y install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation


## ドメイン参加
 $ realm discover {Active Directoryドメイン}
 $ realm join {Active Directoryドメイン} -U {自身のドメインアカウント}

## 自身のドメインアカウント存在確認
id {Active Directoryドメイン}\\{自身のドメインアカウント}

## ドメイン名を省略したい場合は、以下のように設定します
 $ vi /etc/sssd/sssd.conf
use_fully_qualified_names = False

 $ systemctl restart sssd

## ユーザーにsudo権限付与
 $ usermod -aG wheel {自身のドメインアカウント}

Docker

dockerのインストールとプロキシ設定の手順を下記に記載する。

Docker インストール

CentOSの公式リポジトリからdockerインストールを行う。

$ yum -y install docker
$ systemctl start docker
$ systemctl enable docker

Docker プロキシ設定

dockerはOSのシステム環境変数を読み込まないため、dockerからイメージを取得するためにdockerのプロキシ設定を行う必要がある。

$ mkdir /etc/systemd/system/docker.service.d
$ vim /etc/systemd/system/docker.service.d/http-proxy.conf

## 下記を追加
[Service]
Environment="HTTP_PROXY=http://<user>:<pass>@<proxy_host>:<proxy_port>" "HTTPS_PROXY=http://<user>:<pass>@<proxy_host>:<proxy_port>" "NO_PROXY=localhost"

$ systemctl daemon-reload
$ systemctl restart docker

上記の設定が完了後にdockerが実行できるかどうかを確認する。Hello-worldが正常に表示できればOK。

$ docker run hello-world

Docker-compose インストール

docker Compose をインストールすると、複数コンテナーの定義や実行が容易になるため、docker扱う上では必須なのでインストールしておく。

## docker composeのリポジトリを追加
$ yum -y install epel-release
$ sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo

## docker composeインストール
$ yum --enablerepo=epel -y install python2-pip
$ pip install docker-compose

Gitea

giteaは非常に軽量のSCMサーバ。Gogsからforkしたオープンソースソフトウェアで、バイナリファイルが簡単に作成できる「Go」言語で記述されているため、簡単にインストールできる。

操作方法もほとんどGithubと同じ、GitHub使いには迷うことなく使える。

Giteaのインストール

docker-composeを用いて、gitea + mysqlの構成でインストールを行う。

## docker giteaのフォルダを作成
$ mkdir /home/docker/gitea
$ cd /home/docker/gitea

## docker composeの構成ファイルを作成
$ vi docker-compose.yml

docker-compose.ymlファイルをvimで編集してもいいが、ローカルで編集してからsftpでサーバーに送ることをお勧めする。

version: "2"
networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - DB_TYPE=mysql
      - DB_HOST=db:3306
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
      - TZ="Asia/Tokyo"
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
    ports:
       - "3000:3000"
       - "10022:22"
    depends_on:
       - db

  db:
    image: mysql:5.7
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

アプリ起動

docker composeを実行して、アプリケーションを立ち上げる

$ cd /home/docker/gitea

## 起動
$ docker-compose up -d

## コンテナが起動していることを確認
$ docker ps

Giteaの初期設定

あとは 自分で設定した http://ホスト名:ポート番号 にアクセスして初期設定を行う。

設定を変更したいときは公式リファレンスに従い、下記ファイルを編集する。

  • /home/docker/gitea/gitea/gitea/conf/app.ini

編集後にアプリを再起動することをお忘れなく。

$ docker-compose reatart