オンプレ版 GitLab で GitLab Pages する


このポストは、
やん事ない理由で Git*.com を使えない日々をオンプレ版 GitLab で乗り切る の後続記事です。

ゴール

プロジェクト: http://192.168.100.201/group/pages-test の master のコミットを契機に配置する静的コンテンツを
Pages: http://group.192.168.100.201/pages-test で見れること。

Pages: http://{groupname or username}.{domain}/{repository}


手順

  1. Pages 有効化

    /etc/gitlab/gitlab.rb
    pages_external_url "http://192.168.100.201"
    #pages_external_url "http://192.168.100.201:10080" #ポートを指定したい場合 (GitLabのポートと同じでもOK)
    
    # アンコメントする
    gitlab_pages['enable'] = true
    gitlab_pages['dir'] = "/var/opt/gitlab/gitlab-pages"
    gitlab_pages['log_directory'] = "/var/log/gitlab/gitlab-pages"
    

    再構成

    $ gitlab-ctl reconfigure
    
  2. 確認
    http://192.168.100.201/group/pages-test/pages を見れること。

  3. GitLab Runner1 をインストール

    $ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
    $ yum install -y gitlab-runner
    

    https://docs.gitlab.com/runner/install/linux-repository.html#installing-the-runner

  4. ジョブを実行する Runner を登録

    1. 準備: URLToken をメモ
      http://192.168.100.201/group/pages-test/-/settings/ci_cd
    2. 登録 ★部分を入力
      $ gitlab-runner register
      Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
      メモしたURL ★
      Please enter the gitlab-ci token for this runner:
      メモしたToken ★
      Please enter the gitlab-ci description for this runner:
      [gitlab.private.hykisk.com]:空文字でもOK★
    
      Please enter the gitlab-ci tags for this runner (comma separated):
      abc ★プロジェクトが実行するランナーを指定するためのキー ※後項の .gitlab-ci.yml で指定するものと一致させること。
      Registering runner... succeeded                     runner=dvJGQURH
      Please enter the executor: parallels, ssh, docker+machine, kubernetes, custom, docker, docker-ssh, shell,   virtualbox,     docker-ssh+machine:
      shell ★
    
      Runner registered successfully. Feel free to start it, but if it's running already the config should be   automatically     reloaded!
    
  5. 確認
    http://192.168.100.201/group/pages-test/-/settings/ci_cd

  6. ファイルを作成してコミット

    gitlab-ci.yml: テンプレートから作成して手でキー tags を追加

    gitlab-ci.yml
    pages:
      stage: deploy
      script:
        - mkdir .public
        - cp -r * .public
        - mv .public public
      artifacts:
        paths:
          - public
      tags:
        - abc ★前項で設定した値を書く
      only:
        - master
    
    index.html
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>GitLab Pages</title>
      </head>
      <body>
        Hello, GitLab Pages!
      </body>
    </html>
    
  7. 確認 ※fatal: git fetch-pack: expected shallow list で失敗する場合...2
    http://192.168.100.201/group/pages-test/pipelines

  8. hosts に追記 ※開発者が多い場合は...3

    %windir%\system32\drivers\etc\hosts
    # GitLab Pages
    192.168.100.201 group.192.168.100.201
    
  9. 確認
    http://group.192.168.100.201/pages-test/


  1. GitLab Runner: ジョブを実行して結果をGitLabに送り返すために使用されるオープンソースプロジェクトです。(公式より) 

  2. GitLab をホストしているサーバの Git を最新にしたらなおる場合がある。
    https://qiita.com/ucan-lab/items/568db1c68dab9d62169c 

  3. ネットワーク管理者に相談の上 DNS の設定 (ドメイン名と IP をマッピング) したほうがよい。
    注意: その場合は GitLab をホストしているサーバの /etc/hosts127.0.0.1 {ドメイン名} を追記する。