大学のラボのサーバーにRancherOSを入れる



https://rancher.com/rancher-os/ (c) Rancher Labs, Inc.

RancherOS

公式サイト: https://rancher.com/rancher-os/
GitHub: https://github.com/rancher/os

Tiny Linux distro that runs the entire OS as Docker containers

さくっと訳すと、「OS全体がドッカーコンテナとして動く"Linuxディストリビューション"OS

特徴

  • Dockerが動く : Dockerの実行に必要なソフトウェアが最初から入っている
  • 軽い : OS構成がミニマルだから、立ち上がりが早い
  • OS構成が簡単 : cloud-initが入っているので、yamlで簡単に設定、自動化できる
  • Rancher : RacherOSにはRancherが入っている

導入方法

OSの入手先

RancherOSのGitHubのリリースからダウンロードができる。仮想マシンじゃないマシンそのものにインストールしたいならば、下図のisoをダウンロードする。

ブートUSBメモリの作成

ダウンロードしたディスクイメージISOからOSを起動できるようにするためのブートメディアを作る。手元にDVD-Rも、それにisoを焼く環境も整っていたが、DVD-Rからの起動に失敗したのでUSBメモリで作ることにした。

USBメモリでブートメディアを作る
rancheros.iso をUSBメモリに書き込むやり方は色々あるが今回はEtcherを使用した。

Etcherは.isoなどのディスクイメージをSDカードやUSBメモリにサクッと書き込むことができるツールだ。


https://www.balena.io/etcher/ (c) Balena

Windowsやmacで動かすことができ、Linuxでも起動する方法がある。

Etcherの使い方

  1. この画面に、先ほどダウンロードしてきたrancheros.isoをドラッグアンドドロップしする。
  2. 次に"Select target"で対象のUSBメモリを選択する
  3. "Flash!"を押してしばらく待てば、ブートメディアが出来上がる。

ブートUSBメモリからRancherOSを起動する

当該のUSBメモリを挿した状態で、OSを起動し、ブートメディアを選択する画面を出す。大抵はF2かF12を連打すればブートメディアを選択できる

そのまま起動すると、RancherOSという題の青い画面が出たり、黒い背景にたくさん白い文字が出た挙句、やがて、ウシのアスキーアートでRancherOSと表示がでてコマンドを受付するようになる。

なおログインユーザーはrancherである。

SSH経由でRancher OSのセットアップを行う

この後、当該の環境でインストールを進めていくわけだが、Dockerが入っていることを除けば素のシェルなり、viなりで操作をすることになるので、GUIとか使い放題のリッチOSの端末からsshで入って操作することを試みよう。

IPアドレスを確認する
LANケーブルを繋いでUSBブートをしたタイミングで、すでにSSHが立ち上がっているので、まずはアドレスを確認する。

アドレスを確認する
ip a

大抵eth0のinetという項目がipアドレスなので、そこにsshする。

sshで接続する用のパスワードを設定する

SSH公開鍵とか使いたいが、あのやたら長い文字列をどうコピーするのかわからないので、パスワードでsshログインを試みる。

パスワードを設定する
sudo passwd rancher

二回パスワードを求められるので設定する。

SSHで入る
先ほど確認したIPアドレスにユーザーはrancher、パスワードは先ほど設定したパスワードでSSHして入る。

以後の作業は全てSSHやSFTPでファイル転送をしている。

SFTPで設定ファイルを送る

固定IPアドレスと大学のプロキシを設定したいので、SFTPで/home/rancherに以下のようなcloud-init用のconfigを送る。

cloud-config.yml
#cloud-config
rancher:
  console: ubuntu
  network:
    interfaces:
      eth0:
        address: XXX.XX.XX.XX/XX
        gateway: XXX.XX.XX.XX
        dhcp: false
    http_proxy: http://xxxx.xxxx.xxxx.xx:8080
    https_proxy: http://xxxx.xxxx.xxxx.xx:8080
    no_proxy: localhost,127.0.0.1
  services:
    console:
      environment:
        TZ: JST-9

Rancher OSをインストールする

ドライブ一覧の確認
まずはハードディスクやSSDの一覧を確認する。

ドライブの一覧を表示
sudo fdisk -l

大抵は/dev/sdaがインストール先になるはず。

インストール

ディレクトリ/home/rancherにて

sudo ros install -c cloud-config.yml -d /dev/dsa -a rancher.password=<任意のパスワード>

インストール後の再起動

インストール後は確実にsshがダメになるので、ローカルで

ssh-keygen -R <ホスト名>

してからアクセスする。

動作確認

再びssh接続して

docker run hello-world

を行い、イメージがpullされて、実行されるのを確認する。

インストール後のcloud-config.ymlの編集

/home/ranchercloud-config.ymlをsftpで送って

書き換え
sudo mv cloud-config.yml