「みんなの翻訳」は、世界中の文書をみんなで協力して翻訳するサイトです。

みんなの翻訳ロゴ
ブクタブ
翻訳サイト

カテゴリ一覧

このサイトについて 新規登録はこちら お試し翻訳

一覧

2017/07/28

メンテナンス終了のお知らせ

2017/7/25-2017/7/28に実施したメンテナンスは、2017/7/28/14:20に終了いたしました。 ご協力をいただき、ありが…

List

hanako

English⇒Japanese

Hnoss

English⇒Japanese

shikimi

English⇒Japanese

sysInfo

English⇒Japanese

ホーム > 翻訳記事

翻訳記事

【GitLab 公式 を訳してみた】GitLab Runnerをインストール & Dockerオートスケーリング機能をフル活用する

  GitLab Runner>GitLab Runnerをインストールする>オートスケーリング機能をフル活用

  オートスケーリング機能は、GitLab Runner 1.1.0から導入されました。

  オートスケーリング機能の詳細についは、こちらのドキュメントに記されています。

 

  この機能を使う前に

 オートスケーリング機能を使うには、まず同じマシンにDockerとGitLab Runnerがインストールされている必要があります。

 1.新しいLinux系マシンにログインして、Dockerを運用するための踏み台サーバーに改変します。
 2.GitLab Runner installation documentationを参考にGitLab Runnerをインストール。
 3. Docker Machine installation documentationを参考にDocker Machineをインストール。


 Dockerレジストリとキャッシュサーバーの準備

  ビルドのスピードのことを考えると、パーソナルDockerレジストリをプロキシモードで動かすように準備したり、
キャッシュサーバーを用意しておく必要があるでしょう。
 

  Docker Registryをインストール

  注:Distributed registry mirroringも併せてお読みください

  1.まずは、Dockerレジストリ・プロキシ専用にする予定のマシンを1つ用意して、そこにログインします。
  2.このマシンにDockerエンジンをインストールします。
 3.Dockerレジストリを新規作成します。

======================
docker run -d -p 6000:5000 \
  -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \
  --restart always \
  --name registry registry:2
======================

  Dockerレジストリが接続するためのポート番号は(6000)と設定されていますが、これは変更できます。
 

  4.サーバーのIPアドレスを確認します。

======================
hostname --ip-address
======================

  この時に選択しておくのは、プライベート・ネットワークIPアドレスであった方がよいでしょう。
 単一プロバイダにおいて(DigitalOcean, AWS, Azure, etc)複数台のマシンを相互的に通信させる場合、プライベート・ネットワークを用いることが最も高速な手段であることと、月々の帯域幅に制限がかからないことが多いことなどが、その理由です。

  5.以上の設定で、Dockerレジストリが「MY_REGISTRY_IP:6000」配下でアクセス可能になりました。


 

  キャッシュサーバーをインストール

 注:ここで使用するサーバーは、S3が使用可能なサーバーにしておいてください。(例:Amazon S3など)
 詳しくは、 Distributed runners cachingをご覧ください。

  1.キャッシュサーバー専用にする予定のマシンを1つ用意して、そこにログインします。
 2.マシンにDockerエンジンをインストールします。
 3.そこで「minio」という、Dockerコンテナを構築します。これはGo言語で記述されており、S3が使用可能であるサーバーの役割を果たします。
 

======================
docker run -it --restart always -p 9005:9000 \
-v /.minio:/root/.minio -v /export:/export \
--name minio \
minio/minio:latest server /export
======================
 注:¥はバックスラッシュの誤変換です。

  キャッシュサーバーが接続するためのポート番号は(9005)と設定されていますが、これは変更できます。
 

  4.サーバーのIPアドレスを確認します。

======================
hostname --ip-address
======================

  5.これにて、キャッシュサーバーには「MY_CACHE_IP:9005」でアクセス可能になりました。

  6.minioの秘密鍵は「sudo cat /.minio/config.json」というコマンドで閲覧可能です。

  7.ランナーで使われるバケットを作成するには、「sudo mkdir /export/runner. runner」というコマンドを使うとよいでしょう。export以下が、バケットの名前です。他のバケットを選択する場合は、名前の部分を変更します。

  8.全てのキャッシュは「/export」ディレクトリに収容されます。

 

  GitLab Runnerの設定

  1.GitLab Runnerを登録する時に、「docker+machine」をエクゼキュータに設定します。(詳しくは、ランナー説明書から、トークンを獲得する方法を探して読んでください。)

======================
sudo gitlab-runner register
======================

 アウトプット例:

============================================
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
gitlab-ciのコーディネーター URL (例:https://gitlab.com ) を入力してください。
https://gitlab.com

Please enter the gitlab-ci token for this runner
このランナーにあてはまるgitlab-ci トークンを入力してください。
xxx

Please enter the gitlab-ci description for this runner
このランナーの説明を入力してください。
my-autoscale-runner
INFO[0034] fcf5c619 Registering runner... succeeded
INFO[0034] fcf5c619 ランナーを認証しています… 成功

Please enter the executor: shell, docker, docker-ssh, docker+machine, docker-ssh+machine, ssh?
エクゼキュータを入力してください。ここには、shell, docker, docker-ssh, docker+machine, docker-ssh+machine, sshなどが当てはまります。
docker+machine

Please enter the Docker image (eg. ruby:2.1):
Dockerイメージを指定してください(例:ruby:2.1)
ruby:2.1

INFO[0037] Runner registered successfully. Feel free to start it, but if it's
INFO[0037] ランナーの認証 成功。ランナーはいつでも開始できる状態です。
running already the config should be automatically reloaded!
開始時には、コンフィグが自動的にリロードされます。
============================================


 2.「config.toml」を編集します。
 今回の場合、このファイルに、[runners.machine] [runners.cache] という項目を設けなくてはなりません。
 [runners.machine]配下の「MachineDriver」には、皆さんがお使いのプロバイダを記述します。その下の「MachineOptions」には、「limit」と「IdleCount」を設定します。

  さらに詳しい情報は、GitLab Runner Autoscalingをご覧ください。
 

  たとえば、「DigitalOcean」というプロバイダを利用していた場合、以下のような設定が想定されます。

============================================
concurrent = 20

[[runners]]
executor = "docker+machine"
limit = 20
[runners.docker]
 image = "ruby:2.1"
[runners.machine]
 IdleCount = 5
 MachineDriver = "digitalocean"
 MachineName = "auto-scale-runners-%s.my.domain.com"
 MachineOptions = [
   "digitalocean-image=coreos-stable",
   "digitalocean-ssh-user=core"
,
   "digitalocean-access-token=MY_DIGITAL_OCEAN_TOKEN"
,
   "digitalocean-region=nyc2",
   "digitalocean-private-networking"
,
   "engine-registry-mirror=http://MY_REGISTRY_IP:6000"

  ]

[runners.cache]
 Type = "s3"
 ServerAddress = "MY_CACHE_IP:9005"
 AccessKey = "ACCESS_KEY"
 SecretKey = "SECRET_KEY"
 BucketName = "runner"
 Insecure = true  #この設定は、MinioにTLS証明書をつけないで利用する場合にのみ指定します。

============================================

  3.プロジェクトをビルドしてみてください。数秒後に、「docker-machine ls」で新しいマシンが作成されていることが確認できるでしょう。


 

  ランナーのアップグレード

  1.ランナーに手を付けていない状態で、オペレーティングシステムが自動的にランナーを再起動していないことを確認してください。(OSによってはデフォルトの設定で再起動する場合がありますが、それではこれから説明する設定ができません。)

  2.ランナーを停止します。

======================
killall -SIGQUIT gitlab-runner
======================

  SIGQUITシグナルを送ることで、gitlab-runnerの停止がより丁寧に実行されるはずです。この方法は、jobの受け入れを停止し、現在のビルドをすぐさま終了させます。

  3.ランナーの停止を待ちます。
 ランナーの状態は「gitlab-runner status」でチェックできます。あるいは、ランナーの自動シャットダウンを30分ほど待つのもよいでしょう。

======================
for i in `seq 1 180`; do # 1800 seconds = 30分
  gitlab-runner status || break
  sleep 10
done
======================

  4.この状態になると、中途でビルド作業が割り込む可能性がなくなり、ランナーのアップグレードをより安全に図れるようになります。


 

  Dockerマシンの管理

  1.ランナーに手を付けていない状態で、オペレーティングシステムが自動的にランナーを再起動していないことを確認してください。(OSによってはデフォルトの設定で再起動する場合がありますが、それではこれから説明する設定ができません。)

  2.ランナーを停止します。

======================
killall -SIGQUIT gitlab-runner
======================

  3.ランナーの停止を待ちます。
 ランナーの状態は「gitlab-runner status」でチェックできます。あるいは、ランナーの自動シャットダウンを30分ほど待つのもよいでしょう。

======================
for i in `seq 1 180`; do # 1800 seconds = 30分
  gitlab-runner status || break
  sleep 10
done
======================

  4.この状態になると、何らかの管理操作(upgrade や remove)をdocker-machineコマンドでくり出せるようになります。

 Edit this page

 

 

 
PDF
更新日:2017-12-04 23:21:13 Hnoss 0  del.icio.usに追加   はてなブックマークに追加   twitterに投稿   facebookでshare
[ 原文 ] https://docs.gitlab.com/runner/install/autoscaling.html 原文ページプロジェクト並びにドキュメントファイルは、MIT Licenseのもと公開されています。(URL:https://gitlab.com/gitlab-com/gitlab-docs/blob/master/LICENSE) この記事の文章は、訳者の判断によりCreative Commons BY (version 3.0) を適用するものとします。
翻訳者ページをみる

この記事の翻訳者

Hnoss さんの翻訳記事

【GitLab 公式 を訳してみた】GitLab RunnerをFreeBSDにインストールする

GitLab Runner > GitLab Runnerをインストールする >FreeBSDにインストールする 注: FreeBSDでは、現在 ”開発最先端”とされているリリース を利用することも可能です。  GitLab …2017-12-13 17:21:41

GitLab CI にプッシュしたものを GitHubに出力する | from: Leow Kah Man - Tech Blog

 今僕は、GitLabでウェブサイトを公開するためにGitLab CIランナーを使っています。でも、今度はそれをGitHub pagesでも公開できるようにしてみたい。  もしも、ネットのコンテンツを…2017-12-11 23:59:39

僕がHugo静的サイト・ジェネレータをGitLabで使うときにしたCI設定 | from Leow Kah Man - Tech Blog

 週末にかけて、GitHubに構えていた私のブログをGitLabに移転しました。GitLabだとCIビルドが自動的にできるところが便利です。  僕はGitLabのレポジトリにNodeJS Dockerイメージを構…2017-12-11 23:58:18

【GitLab 公式 を訳してみた】GitLab Runnerをインストールする

GitLab Runner > GitLab Runnerをインストールする  GitLab Runnerは、GNU/Linux、 macOS、 FreeBSD、 Windowsでインストールと使用することが可能です。  インストールには3つ…2017-12-06 17:57:33