サーバー構築一覧

GitLab CI Runner の構築

GitLab を更新したこともあって、ようやくまともに GitLab CI Runner を使うことが出来るようになりました。
基本的に設定で迷うようなところはないのですが、 GitLab が外向きと内向きで使用すべきアドレスが違うといった状況では、 CI Runner をうまく動作させるのに一手間があったので記録として残しておきます。
同じように詰まっている人の助けになれば幸いです。

GitLab CI Runner の準備

とりあえず別の環境で CentOS をインストールして、 GitLab CI Runner の準備を行いました。各ビルドごとに環境を汚さないようにするため、 Docker コンテナで各タスクをこなすような Runner の構築としました。

インストールが完了したら Docker を起動しておきます。

以下のコマンドで、Runner の初期設定を行います。実行すると対話形式で各設定を入力します。

配置しているGitLab のアドレスや、そこに対するアクセストークンが必要になります。executor の設定では、 docker を指定し、 Docker image としては ubuntu:latest を設定しました。

続きを読む


GitLab on Docker を構築する

運用している GitLab が古いこともあって、 CentOS 7 (1803) の上で再構築することにしました。
GitLab 本体のバージョンを更新しやすく&サーバー移動するかも、という2点から、 Docker の上に GitLab を動かすことを考えてみました。

CentOS の準備

使用した CentOS は 7 (1804) 64bit です。これは RHEL 7.5 ベースのものとなります。
最新パッケージにすることや、必要最小限に留めたい理由より、 Minimum の構成でインストールしました。
以降の説明は selinux の無効化や、ネットワーク接続は出来ている前提で話を進めます。

まずは以下のコマンドでパッケージを更新しておきます。

Docker 関連の準備

以下のコマンドで Docker をインストールします。インストール後、バージョンを確認したところ 1.13.1 がインストールされたようです。

続いて Docker-Compose をインストールします。
Docker-Compose のページから最新版をインストールしました。
このページにインストール方法も書いてありますが、以下のようなコマンドを実行しました。

ここで Docker を起動しておきます。

GitLabのインストール

こちら(https://gitlab.com/gitlab-org/omnibus-gitlab/)で公開されている docker-compose.yml を使用します。
適当な場所に docker-compose.yml ファイルをダウンロードしておきます。

docker-compose.yml に構築のパラメータが詰まっているので、先に編集します。

サブディレクトリで GitLab を運用したいので、 external_url を編集します。
ポート番号を指定する場合にはここで必要となります。

以下のコマンドで、コンテナを起動させます。初回には、 公式のリポジトリからイメージを取得するため、時間がかかるものと思われます。
この記事を書いているときには、11.2.3 の GitLab のイメージが取得されました。

この docker-compose.yml により、 gitlab のコンテナが動き出します。自分の環境では実行開始してからアクセスが出来るようになるまではしばらく時間がかかりました。
進行状況などのログを見るには以下のコマンドを実行します。

定常状態になったことを確認できたら、ブラウザでアクセスして期待通りの表示が出るかを確認します。
GitLab のログイン画面が表示されるようであれば成功です。

細かな設定など

細かな設定などは docker-compose.yml ファイルを編集することで出来ると思いますが、
自分は /srv/gitlab/config にある gitlab.rb ファイルを編集することにしました。

編集した後は次のコマンドで設定を反映させます。

まとめ

最近 Docker で環境作りばかりやっている気がします。
しかし、かつてはソースやrpmパッケージを入れてサービスを構築していましたが、それが docker-compose で入るようになってきて導入が色々と楽になってきたように思います。環境が閉じているので、いざというときには稼働インスタンスも変更させやすいですし、いい時代になりました。


VyOS で IPv6 の設定メモ

VyOS ルーターで、 IPv6 の Router Advertise を流す設定を行います
このあたりを見ると設定の詳細があるようです。 https://wiki.vyos.net/wiki/Network_address_setup

IPv6 アドレスとして 修正EUI64 のアドレスを生成・セットさせる手順


IPv6 only ネットワーク を作ってみる

VMware Workstaion 12.5 を使って、複数の仮想マシンで構成されるネットワークを作っていきます。このネットワークは今流行の IPv6 only のネットワークにしてみたいと思います。この過程で NAT64/DNS64 をセットアップしていきます。

構成について

VMware Workstaion で新規仮想マシンを作る際に、ネットワーク接続を LAN セグメント で作成します。
外とやりとりを行う NAT64 の部分についてのみネットワークアダプタを2つ準備して、一方を NAT なり, ブリッジなりのタイプを設定して外との通信をできるようにします。
そして、作成した “LAN セグメント” の部分を IPv6 only のネットワークとします。ここに所属する仮想マシンは IPv6 のみをもって通信を行います。

これらの関係を図にすると以下のような感じになります。

IPv6 only ネットワークのキモはこの NAT64, DNS64 を担当する Linux サーバーということになります。図中では記入漏れていますが、このサーバーでは IPv6 の DHCP も担当させています。

お断りですが、IPv6 only といっても自分の現環境が IPv4 のみのネットワークのため、IPv6 で外部との通信を行う部分について 実験できずです。
続きを読む


ポリシーベースルーティングの話

1つのPCが複数枚のネットワークアダプタを持ち、いずれのアダプタからもアクセスが可能な場合、スタティックルーティングの設定だけではうまく通信できない場合があります。
このような構成をマルチホーム、マルチホーミングな環境と呼ぶようですが、このときポリシーベースルーティングというものの設定が必要になってきます。
続きを読む


Raspberry Pi で L3 スイッチを作成する

以前に VMware ESxi と VyOS を用いて3つのネットワークセグメントを接続することをやりました。今回はこれを Raspberry PI を用いて実現できないかを実験しました。

準備

前回同様、都合により3つのネットワークセグメントからのパケットはタグポートで出ているものを使用することにします。このスイッチは、 NETGEAR の GS108Ev3 です。 ESXi につながっていた LAN ケーブルを Raspberry Pi に差し替えた、と思ってもらえればと思います。

続きを読む



複数セグメントを接続するルーターの作成 前編

実験環境で、3つの異なる LAN セグメントを接続するルーター(L3スイッチ)が必要になり、これを準備した記録です。

通常のブロードバンドルーターを複数使えばできるかなと思ったのですが、予想外の結果でした。結論としては VyOS を使用して自分で設定する!というところになりました。

ブロードバンドルーターの組合せ

一般用のブロードバンドルーターは2つの LAN セグメントを接続するものと見ることができます。そのため、これを3つくらい使えば、接続ができそうな感じですが、致命的な問題があります。
それが、「外部から内部への通信の制限」という点です。通常外部からのアクセスは著しく制限されることを期待されているブロードバンドルーターではファイアウォールが設定され、パケットフィルタが設定され、と扱いにくいです。よって、このブロードバンドルーターを組み合わせるという案は廃案になりました。

続きを読む


安価なタグVLANスイッチ

GS108Ev2 と GS108Ev3 が手元に揃いました。
VLAN が安価にくめるという点でこのハブは素晴らしいのですが・・・。

紹介

GS108Ev2 (GS108E-100JPS)、このハブは機能が豊富で特に VLAN ができる点がポイント高いです。そこでもう1つ買い増ししておこうと思って購入したら GS108Ev3 (GS108E-300JPS) となっていました。後継になった分、 WebUI が備えられて専用ソフトによる設定では無くなったので、操作はやりやすくなりました。 続きを読む