ネットワーク検証の自動化のためにrenatをdockerで構築する。
環境
仮想化:VMware Workstation-playre15
ホスト:Windows10
ゲスト:ubuntu22.04.3TLS
コンテナ起動とApacheの設定
Dockerコンテナの起動:
RENATのDockerイメージ bachng/renat:latest
を使用してコンテナを起動する。ポート8185と10022をホストとマッピングし、/opt/renat
をボリュームとしてマウント。
RENATコンテナ起動
miwapinn@VM1:~$ docker run --rm -d --privileged -v /opt/renat:/opt/renat -p 8185:80 -p 10022:22 --name renat bachng/renat:latest
48022bfb1ceb143618122cdd80f76487775583bba82267561393c6d697443769
miwapinn@VM1:~$
RENATコンテナプロセス確認
miwapinn@VM1:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAME
S
48022bfb1ceb bachng/renat:latest "/entrypoint.sh" About an hour ago Up About an hour 0.0.0.0:8185->80/tcp, :::8185->80/tcp, 0.0.0.0:10022->22/tcp, :::10022->22/tcp renat
コンテナのシェルに入ってユーザ設定(rootで)
miwapinn@VM1:~$ sudo docker exec -it --user root renat /bin/bash
[sudo] miwapinn のパスワード:
bash-4.2#
bash-4.2# groupadd robot
bash-4.2#
bash-4.2# usermod -a -G robot robot
bash-4.2#
bash-4.2# chown -R robot:robot /home/robot/
Apacheの設定変更
bash-4.2# vi /etc/httpd/conf/httpd.conf
※以下のパラメータを変更
ServerName <ホストのIPアドレス>
DocumentRoot "/var/www/html/renat-doc"
httpdランタイムディレクトリ作成
bash-4.2# cd
bash-4.2# cd /run/
bash-4.2# mkdir -p /run/httpd
bash-4.2# chmod 755 /run/httpd
Apacheの起動と確認
bash-4.2# httpd -k start
bash-4.2# ps aux | grep httpd
rootでコンテナログアウト
bash-4.2$ exit
robotユーザでコンテナログイン
miwapinn@VM1:~$ docker exec -it --user robot renat /bin/bash --login
cd
bash-4.2$ cd /home/robot/work/
RENATサンプルプロジェクト実行
サンプルプロジェクトの作成
bash-4.2$ /home/robot/work/renat/tools/project.sh renat-sample
created test project: renat-sample
use item.sh to create test case
cd
bash-4.2$ cd renat-sample
プロジェクト内でテストアイテムを作成
bash-4.2$ /home/robot/work/renat/tools/item.sh test01
Create local configuration file (local.yaml) or not [yes,no=default]:yes
Use node list (comma separated) [ex:vmx11]:
Use tester [ex:ixnet03_8009]:
Use tester config file [ex:traffic.ixncfg]:
Use web app list (comma separated)[ex:samurai1]:
Use hypervisor list (comma separated)[ex:esxi-3-15]:
=== Created `test01` test item ===
Case scenario: /home/robot/work/renat/tools/test01/main.robot
Case run file: /home/robot/work/renat/tools/test01/run.sh
Local config file: /home/robot/work/renat/tools/test01/config/local.yaml
Tester config file:/home/robot/work/renat/tools/test01/config/
Check and change the `local.yaml` local config file if necessary
bash-4.2$
cd
bash-4.2$ cd test01
テストの実行と実行時のログ
bash-4.2$ ./run.sh
Current time: Sat Mar 30 07:53:50 UTC 2024
Current RENAT path: /home/robot/work/renat
### Current folder is /home/robot/renat-sample/test01 ###
Run only once
Run: 001
Current local.yaml: /home/robot/renat-sample/test01/config/local.yaml
Loaded extra library `WebApp`
Loaded extra library `Hypervisor`
==============================================================================
test01 :: This is a sample test item
==============================================================================
RENAT Ver:: RENAT 0.1.17
------------------------------------------------------------------------------
README:
<Write you readme file here>
------------------------------------------------------------------------------
00. Lab Setup
------------------------------------------------------------------------------
01. Cabling | PASS |
------------------------------------------------------------------------------
02. Load router config | PASS |
------------------------------------------------------------------------------
03. Start traffic | PASS |
------------------------------------------------------------------------------
04. Run test | PASS |
------------------------------------------------------------------------------
05. Collect information | PASS |
------------------------------------------------------------------------------
99. Lab Teardown
------------------------------------------------------------------------------
test01 :: This is a sample test item | PASS |
5 critical tests, 5 passed, 0 failed
5 tests total, 5 passed, 0 failed
==============================================================================
Debug: /home/robot/renat-sample/test01/result/.txt
Output: /home/robot/renat-sample/test01/result/output.xml
Log: /home/robot/renat-sample/test01/result/log.html
Report: /home/robot/renat-sample/test01/result/report.html
bash-4.2$
結果レポート確認
■ブラウザで結果レポートを確認
http://<ホストのIPアドレス>:8185/~robot/renat-sample/test01/result/report.html
■コンテナ上のRENATドキュメント確認
http://<ホストのIPアドレス>:8185/
(参考メモ)コンテナのシェルからホストにファイルをコピーする方法
docker cp <コンテナ名>:<コンテナ内のファイルパス> <ホスト上のパス>
miwapinn@VM1:~$ pwd
/home/miwapinn
miwapinn@VM1:~$ docker cp renat:/home/robot/renat-sample/test01/result/report.html /home/miwapinn
Successfully copied 231kB to /home/miwapinn
miwapinn@VM1:~$
(参考メモ)ホストからコンテナのシェルにファイルをコピーする方法
docker cp <ホスト上のファイルパス> <コンテナ名>:<コンテナ内のパス>
miwapinn@VM1:~$ docker cp /home/miwapinn@/report.html renat:/home/robot/
Successfully copied 231kB to renat:/home/robot/
miwapinn@@VM1:~$
miwapinn@VM1:~$
参考にしたオフィシャルページ