9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RancherOS + compose + portainer.io でお手軽 GUI docker stack 入門環境

Last updated at Posted at 2019-08-21

はじめに

コンテナ専用OSのなかでもRancherOSはisoサイズが極端に小さいため始めるのも肩がこらず楽ちんです。

ディストリビューション amd64 iso size
CoreOS Container Linux 2135.6.0. 423MB
CentOS Atomic Host 2019-Jul-2 1.1GB
Fedora Atomic Host 20190820 1GB
Rancher OS 1.5.3 127MB
※ Ubuntu Coreはisoがないが、amd64用イメージは340MB

コンテナオーケストレーション環境Rancherの影響から、Kubernetesと組み合わせての利用が多い様子ですが、単にdockerだけで使うにも便利です。各種のディストリビューションコマンドセットを切り替えて使えるので、RedHat派/Debian派/Ubuntu派 問わず使える点も魅力。

今回は、潔くKubernetesは捨てて、portainerをGUIとしたdocker-composeを使ったコンテナスタック入門環境を構築する手順を紹介します。慣れれば5分で終わります。

環境

  • Rancher OS v1.5.3
  • portainer 1.22.0

記事を書くにあたり、VirtualBox 6.0上に環境を用意して作業していますが、別の環境でも特に変わりありません。

手順概略

  1. Rancher OS インストール & 設定
  2. portainer 導入、起動、httpでアクセス

Rancher OS に docker-compose コマンドはないのですが、導入は不要です。これは、portainerが内部にlibcomposeを持っており自力でcomposeを実行できるからのようです。Rancher OSにdocker-composeをインストールしてもコンソールを切り替えると消えてしまい、これの対策は逆に面倒なので、Rancher OS上でdocker-composeを直接扱うよりも便利な点。

1. Rancher OS インストール & 設定

iso から Rancher OSを起動

https://github.com/rancher/os/releases/tag/v1.5.3 からrancheros.isoをダウンロード。CDに焼くなりブートUSBを作るなりして、起動。

rancheros_isoboot.png
起動するとログイン状態になるので、SSHの準備として一時ログイン用パスワードを設定する。このとき設定するパスワードは使い捨てるため、深く考えなくてもよい。

[rancher@rancher ~]$ sudo passwd rancher
# 適当なパスワードを設定

ここで設定したアドレスを使って、SSHログイン。ユーザ名は rancher

> ssh -l rancher -p 22 <host_address>

インストール設定を流し込む

sshターミナル上で、

[rancher@rancher ~]$ vi cloud-config.yml
cloud-config.yml
hostname: ros001
# ファイルがないと怒られるので何か書いておく
# 必要であればほかの設定も追加

ここでは、ネットワークアドレスはDHCP設定を前提にしている。ここでネットワーク設定を済ませる場合は、公式リファレンス を参照のこと。
cloud-config.yml の文法チェックをしておく。エラーが出たら修正しておくこと。

[rancher@rancher ~]$ sudo ros config validate -i cloud-config.yml
# 何も表示されなかったら文法チェックOK

ディスクにインストール

先にインストール先のディスクを確認しておく。

[rancher@rancher ~]$ sudo fdisk -l 
Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

例えばこんな風に出たら、インストール先は /dev/sda なので、次のコマンドを打ってディスクへインストールする。

[rancher@rancher ~]$ sudo ros install -c cloud-config.yml -d /dev/sda --append="rancher.password=<localpassword>"

--append="rancher.password=password" の部分は、パスワードログインのために必須。ここで設定するパスワードは、ディスクにインストールされたシステムのログインパスワードとなるため、慎重に決めること。うまくいけば再起動がかかる。ブートディスクをアンマウントして、ディスクにインストールされたRancher OSを起動する。

インストール後の設定

インストール後、SSHでログインする際に、

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.

などと出てくることがある。インストール時にSSHログインした際のfingerprintが残っていることが原因なので、SSHクライアント側PCの~/.ssh/known_hosts を開いて、当該項目を消せば治る。

設定すべき項目は特にないが、ネットワーク回り等で追加設定がある場合はここで済ませておく。また、セキュリティの問題がある環境の場合はSSHログインを鍵認証にしておく。設定の方法は2種類あって、

  • sudo ros config set ... : 設定コマンドを使う
# 設定例
[rancher@ros001 ~]$ sudo ros config set rancher.network.interfaces.eth0.dhcp false
  • vi /var/lib/rancher/conf/cloud-config.yml : ファイルの直接編集
/var/lib/rancher/conf/cloud-config.yml 設定例
rancher:
  network:
    interfaces:
      eth0:
        dhcp: false

は同じ意味になる。ymlを直接編集する場合は、文法チェックを必ず行う。

[rancher@ros001 ~]$ sudo ros config validate -i /var/lib/rancher/conf/cloud-config.yml

いずれの場合も、設定変更後は再起動が必要。

なお、

  • 設定を確認するには $ sudo ros config export コマンドを使う
  • 項目を削除するためのコマンドはないので、削除が必要なら /var/lib/rancher/conf/cloud-config.yml を直接編集

詳しくは リファレンスマニュアル 参照

portainer.io の実行

$ docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

http://<ホストアドレス>:9000 にアクセス

こんな画面が出たら、起動中なので少し待つ。
image.png

うまく起動すればadminパスワード設定画面が出る
image.png

今回はローカルのdockerを管理したいので、Localを選ぶ
image.png

local をクリックして、
image.png

Stacks → Add stack をクリック
image.png

Nameを入力する際に、現在、英子文字以外のあらゆる記号、大文字を使うとstackの管理が狂う不具合があるため、a-zのみで入力する。参照
下のエディタにdocker-compose.ymlの中身を入力するか、docker-compose.ymlをアップロードする。下の方のDeploy the stackボタンを押せば、ネットワーク設定が正しければ問題なくデプロイできるはず。
image.png

ここまで慎重に進めても15分程度。あとはほとんどの設定がportainer上で可能です。

Tips

Rancher OSの console 設定について

https://rancher.com/docs/os/v1.x/en/installation/configuration/switching-consoles/ に詳しい。

$ sudo ros console list

で出てきたものなら、 何を選んでもよい。default コンソールはコマンドが少ないので、別のものを選ぶとよい。コンソールを切り替えると /home /opt /var/lib/docker /var/lib/rancher 以外のデータはすべて消えてしまうので注意。

参考文献

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?