LoginSignup
1
0

dockerでRENATコンテナ作成

Posted at

ネットワーク検証の自動化のために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
image.png

■コンテナ上のRENATドキュメント確認
http://<ホストのIPアドレス>:8185/
image.png

(参考メモ)コンテナのシェルからホストにファイルをコピーする方法

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:~$ 

参考にしたオフィシャルページ

1
0
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
1
0