cEOS-labコンテナを動かしてその先でいろいろ動かしてみるはずが、動かすかどうかでつまづいてしまったのでその作業ログを。
※ Cli
コマンドとか分かってないので、動かし方を分かってない。
※ コンテナ自体は動いているので、Cli
以外の方法で触るものだろうとは思っている(がREADMEに書かれてないので…その、なんというか、あれ)
ちなみに、ダウンロードできるコンテナイメージは2020.09.19時点でこんな感じ。
- 手順書
- readme
- cEOS64-lab-4.24.2.2F (※動かせなかった)
- cEOS-lab-4.21.12M (動かせた)
- cEOS-lab-4.24.2.2F (ダメ)
- cEOS64-lab-4.23.4.2M (ダメ)
- cEOS-lab-4.22.7M (Cli動く)
- cEOS-lab-4.23.4.2M (だめ。Cliなし)
手順書
安定と安心のてくなべを参考にさせていただきました。
1年半以上前の記事なので公式のバージョンもそこそこ更新されており、Cli
コマンドが使えるか否かという点でいうと、以下の通りだった。
バージョン | Cli が使えるか否か |
---|---|
cEOS-lab-4.20.5F | 試してない |
cEOS-lab-4.21.12M | ○ |
cEOS-lab-4.22.7M | ○ |
cEOS64-lab-4.23.4.2M | 試してない |
cEOS-lab-4.23.4.2M | × |
cEOS64-lab-4.23.4.2M | × |
cEOS-lab-4.24.2.2F | × |
cEOS64-lab-4.24.2.2F | × |
※ ホントはこんな「全バージョンで実行できるか否かの一覧作成」をするつもりは全くなかったんだけど…笑
readme
現時点で公開されている「cEOS-lab-README-generic.txt」は、
(This document uses 4.21.0F as an example, but the following instructions apply to all releases starting 4.21.0F)
となっており、4.21ベースの模様。
cEOS64-lab-4.24.2.2F (※動かせなかった)
バージョンがだいぶ更新されており、4.22以降は64bit版っぽいイメージが用意されている。 せっかくなので新しい"cEOS64-lab-4.24.2.2F.tar.xz"を選択。
chromeでDLしたら.xzが溶けてファイル名がcEOS64-lab-4.24.2.2F.tar
になったりしたけど、実態はXZ compressed dataなので注意
$ file cEOS64-lab-4.24.2.2F.tar cEOS64-lab-4.24.2.2F.tar: XZ compressed data
といっても、そのままdocker import
できる。
docker import
$ docker import cEOS64-lab-4.24.2.2F.tar ceos:latest sha256:8434c650f68e3612d5ae0614e82d97d5a663026df41ef9744f265f45731087a0
(dev) [zaki@cloud-dev image]$ docker images ceos REPOSITORY TAG IMAGE ID CREATED SIZE ceos latest 8434c650f68e About a minute ago 1.77GB
ちなみにこの状態でパラメタ無しでコンテナ起動しようとしても
(dev) [zaki@cloud-dev image]$ docker run ceos docker: Error response from daemon: No command specified. See 'docker run --help'.
docker create
443は使用中なので、代わりに25443を使う
$ docker create --name=ceos --privileged -p 25443:443 -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i -t ceos:latest /sbin/init 875ec872dae3093b5923cc825c36da77adfd167de1f273a09049ba2336859bf2
(dev) [zaki@cloud-dev image]$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 875ec872dae3 ceos:latest "/sbin/init" 30 seconds ago Created ceos
networkの追加
(dev) [zaki@cloud-dev image]$ sudo docker network create net1 1e7a6f36bebc4d4e8d890766cc60a599c0208d439b2615f5f9d2afafa63c1f79 (dev) [zaki@cloud-dev image]$ sudo docker network connect net1 ceos
run
(dev) [zaki@cloud-dev image]$ docker start ceos ceos
$ sudo docker exec -it ceos cli OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"cli\": executable file not found in $PATH": unknown
無いらしい。
(dev) [zaki@cloud-dev image]$ sudo docker exec -it ceos sh sh-4.2# cli sh: cli: command not found sh-4.2# Cli sh: Cli: command not found
sh
はあるけど、Cli
は無いらしい。
sh-4.2# Cli CliCtrl CliRelay CliRelaySwitchAgent CliShell
似たコマンドでCliShell
はあるが、
sh-4.2# CliShell Traceback (most recent call last): File "/usr/bin/CliShell", line 408, in <module> main() File "/usr/bin/CliShell", line 390, in main cliShell.setupConnection() File "/usr/bin/CliShell", line 123, in setupConnection ctty, self.pts_ ) File "/usr/lib/python2.7/site-packages/CliShellLib.py", line 260, in connectToBackend sock, signalSock = self._connectToBackend( sysname, argv, env, uid, gid, ctty ) File "/usr/lib/python2.7/site-packages/CliShellLib.py", line 226, in _connectToBackend time.sleep( 0.1 ) KeyboardInterrupt
起動しても何も応答がなく、Ctrl-cで停止するくらいしか操作法がよくわからん。
cEOS-lab-4.21.12M (動かせた)
ちょっとお手上げだったので、同じバージョンの4.21で試そう。
(dev) [zaki@cloud-dev image]$ docker import cEOS-lab-4.21.12M.tar ceos:4.21.12M sha256:e56ad1d7eebc792d9ca66dab41557e337f2d6a74c91340767816a24e820b3d71
(dev) [zaki@cloud-dev image]$ docker create --name=ceos-4-21 --privileged -p 24443:443 -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i -t ceos:4.21.12M /sbin/init 1511077dd3162a3be3865ed50d000e1494aad388db746d92b30aad45c0a4cd72
(dev) [zaki@cloud-dev image]$ docker start ceos-4-21 ceos-4-21
(dev) [zaki@cloud-dev image]$ docker exec -it ceos-4-21 Cli localhost>
あっ、うごいた
localhost>show version cEOSLab Hardware version: Serial number: System MAC address: Not available Software image version: 4.21.12M-18662095.42112M (engineering build) Architecture: i386 Internal build version: 4.21.12M-18662095.42112M Internal build ID: 3266415c-55a9-403c-a020-777efe5ff9aa cEOS tools version: 1.1 Uptime: 0 weeks, 3 days, 20 hours and 15 minutes Total memory: 7990076 kB Free memory: 1943660 kB localhost>
localhost>show running-config % Invalid input (privileged mode required) localhost>en localhost#show running-config ! Command: show running-config ! device: localhost (cEOSLab, EOS-4.21.12M-18662095.42112M (engineering build)) ! transceiver qsfp default-mode 4x10G ! spanning-tree mode mstp ! no aaa root ! no ip routing ! end localhost#
動いてますね
cEOS-lab-4.24.2.2F (ダメ)
最初にうまくいかなかったバージョンの64
がないバージョン。
$ docker import cEOS-lab-4.24.2.2F.tar ceos:4.24.2.2F sha256:3f1567aa671d0aac9c83ac952e88a4d75baf65f44684f855216e3149b7f3ee3e
(dev) [zaki@cloud-dev image]$ docker create --name=ceos-4-24 --privileged -p 23443:443 -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i -t ceos:4.24.2.2F /sbin/init 13896de736fbfa703942ec98ed447af12b0413b437dc8f67afbe70c411d1f342
(dev) [zaki@cloud-dev image]$ docker start ceos-4-24 ceos-4-24
(dev) [zaki@cloud-dev image]$ docker exec -it ceos-4-24 sh sh-4.2# Cl CliCtrl CliRelay CliRelaySwitchAgent CliShell CloudHa
あー、64
は関係なくて、4.24はCli
コマンドが無いのね。
cEOS64-lab-4.23.4.2M (ダメ)
F
がダメ?
$ docker import cEOS64-lab-4.23.4.2M.tar ceos:4.23.4.2M64 sha256:4f838740b554971259e4086f6e48f70044e721a944bc33f4ae9d67e9ac6cac9f
$ docker create --name=ceos-4-23 --privileged -p 22443:443 -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i -t ceos:4.23.4.2M64 /sbin/init 764f96dfe0827fe9a142bddbbf24106e8524b7175f2731656e45088a0b5d08ea
(dev) [zaki@cloud-dev image]$ docker start ceos-4-23 ceos-4-23
(dev) [zaki@cloud-dev image]$ docker exec -it ceos-4-23 Cli OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"Cli\": executable file not found in $PATH": unknown (dev) [zaki@cloud-dev image]$ docker exec -it ceos-4-23 sh sh-4.2# Cl CliCtrl CliRelay CliRelaySwitchAgent CliShell CloudHa
なるほど、コマンド体系が違うかもしれん。
cEOS-lab-4.22.7M (Cli動く)
$ docker import cEOS-lab-4.22.7M.tar ceos:4.22.7M sha256:a10db96332046efd58c578e3098949fc63cf8b6bb6a22e022c1b016eb5a587eb
(dev) [zaki@cloud-dev image]$ docker create --name=ceos-4-22 --privileged -p 21443:443 -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i -t ceos:4.22.7M /sbin/init d8dd9cbe761a2c4df5fc31fdcc3ee5ea0f4f40c490d0801c20779c0b71fb2ecd
(dev) [zaki@cloud-dev image]$ docker start ceos-4-22 ceos-4-22
(dev) [zaki@cloud-dev image]$ docker exec -it ceos-4-22 Cli localhost>
これは動くのか!
localhost>show version cEOSLab Hardware version: Serial number: System MAC address: Not available Software image version: 4.22.7M-18857350.4227M (engineering build) Architecture: i686 Internal build version: 4.22.7M-18857350.4227M Internal build ID: 7980773b-992a-4e45-b4ef-66a400409260 cEOS tools version: 1.1 Uptime: 0 weeks, 3 days, 22 hours and 42 minutes Total memory: 7990076 kB Free memory: 950376 kB localhost>
cEOS-lab-4.23.4.2M (だめ。Cliなし)
(dev) [zaki@cloud-dev image]$ docker import cEOS-lab-4.23.4.2M.tar ceos:4.23.4.2M sha256:75effb6eefa838b45e1cd0a38cf4836133762881920c4199dba2ba7d8a8fe1f3
(dev) [zaki@cloud-dev image]$ docker create --name=ceos-4-23 --privileged -p 22443:443 -e CEOS=1 -e container=docker -e EOS_PLATFORM=ceoslab -e SKIP_ZEROTOUCH_BARRIER_IN_SYSDBINIT=1 -e ETBA=1 -e INTFTYPE=eth -i -t ceos:4.23.4.2M /sbin/init e98a20504882be7be9c57e53b4bed5a8b6da3903e76c7ae5d0cc12c511b1c12f
(dev) [zaki@cloud-dev image]$ docker start ceos-4-23 ceos-4-23
(dev) [zaki@cloud-dev image]$ docker exec -it ceos-4-23 sh sh-4.2# Cl CliCtrl CliRelay CliRelaySwitchAgent CliShell CloudHa
あーなるほど、4.23以降だとCli
コマンドがないんだな。
run
せずにdocker create
でコンテナを作成できるの知らなかったw (いつもrun
しか使ってなかった)