Skip to content

セットアップ方法

Kotet edited this page Jun 17, 2021 · 7 revisions

基本的にはREADMEに書いてあるとおりですが、ここではより詳細な手順を書いていきます。 実行結果はArch Linux上でのものです。

まずルートドメインとフィールド名を設定します。ローカルで動かすだけならデフォルトのlocalhost,field_aで大丈夫です。

次に./config/docker/init.shを実行し、パスワードとSSH鍵を生成します。

$ ./config/docker/init.sh
Generating public/private rsa key pair.
Your identification has been saved in /home/kotet/Documents/RoboDragons/ssl-simulation-setup/config/docker/../vnc_rsa
Your public key has been saved in /home/kotet/Documents/RoboDragons/ssl-simulation-setup/config/docker/../vnc_rsa.pub
The key fingerprint is:
SHA256:nZE1llp4RlgfMQKdaZ7aqp/2Ey5Olk7bt3nMv7sGxTs guacamole-vnc
The key's randomart image is:
+---[RSA 3072]----+
|          .BB++. |
|          o+X+ o |
|          oB .o  |
|         ..oo  o |
|        S oo  . .|
|          ..o. E |
|          =o ..o.|
|         =++o .o+|
|        .=*ooo+**|
+----[SHA256]-----+

そして./config/caddy/generate_caddyfile.pyを実行してCaddyfileを生成します。

memo: 素のUbuntu 20.04の場合jinja2をインストール必要がある

$ sudo apt install python3-pip
$ pip3 install jinja2

ここまで準備ができたらコンテナを立ち上げます。 サーバーなのでバックグラウンドで実行したほうが都合が良いでしょう。

$ docker-compose up -d

各コンテナのログはdocker-compose logsで確認できます。

次に./config/guacamole/update_guacamole.pyを実行します。 自分の環境ではめっちゃwarningが出ますが実はその中にguacamoreのadminパスワードが紛れています。

$ ./config/guacamole/update_guacamole.py
/usr/lib/python3.9/site-packages/urllib3/connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 'vnc.field-a.localhost'. Adding certificate verification is strongly advised. See: https://urllib3.readt
hedocs.io/en/latest/advanced-usage.html#ssl-warnings
  warnings.warn(
New admin password: SQ4mvB28Fq7ZO7nVLlfUKNUluI1uyLM4

次に./config/caddy/update_caddy_passwords.shを実行してハッシュ化したパスワードを書き出します。 ここに出てくるパスワードはハッシュ化されています。

TODO: 元のパスワードはどう設定するのか? 元のパスワードはconfig/passwordsにあります。 ここに書かれているユーザ名とパスワードを使ってguacamoreにログインできます。

$ cat config/caddy_passwords
guacadmin:JDJhJDE0JC9GYmJNQlNHWW5hSkdkelBtVHhMY09zVjZhV29rUnpPZEZubDlidm80QVdOcXhJc0pQV1BX
tigers:JDJhJDE0JDFjazJvWTRWeVhyYkp3cEJZR2twMXVYVjNYd2lyZGcya1UuTm5VN0hBLkEzUE9KbFluczJl
erforce:JDJhJDE0JGdpcy9aRE5BZmx4VjVCdTZNWGQuWnVhQ1U4STcwMXE2Vm5yZjdyNllhLk92Q0FNYUFIYzAy
ubcthunderbots:JDJhJDE0JGxzUGI4dzZuUVYzeWNxTVhCMmpDRWV3STUzaHZzQ0VQUkJ1ak5YdkdzcFA4UFAwUGR0R0F1
robocin:JDJhJDE0JDdOMVVuZ015RXZMMUJDQVJ6R2Jxa2Via0dxWDd5UkRKWmxOZndaM0RnanBwcFcyLjU1T0hT
robofei:JDJhJDE0JHB3UkxoQ3Y3eHZER2g4OG9vV1BKMGV1RXEuTTZ6LlZoMGN0cVBzdGVIdTZEejlGQk1LL0dH
roboteamtwente:JDJhJDE0JDNLSFZpVW4xYjJJSzIuRHhwLy9jdy4ybzlyTnFOUTU2Ykt1UlZhZFprajN4Ry9IZUZrNTNX
uroborus:JDJhJDE0JDdqdmJCbHJFbDVhdWNaSUMuRVFsY2V4enZCSC9GUEQxQjZ4TDhYVnVDNHNHVFN2RElhdERX
roboime:JDJhJDE0JDlTbEw4Y1J0VU5YR2RiVVdUMDJTeS44cXhxcHJIV1BFYW5hcDdDMUJwZ3c2M3h0QnAyUFY2
robodragons:JDJhJDE0JGFwTVpONUZNaEV6WGdhbnhMcW9UQXVEU21BMHdvTHN4aUwzZnIxNUxwZUtnUnYzRHY3a1Yy

./config/caddy/generate_caddyfile.py生成したファイルをもとにcaddyfileを再生成し、./config/caddy/update_caddy_config.shで動作中のコンテナに反映させます。

設定が完了したのでrobodragonsのコンテナを起動します。

$ docker-compose -f docker-compose-teams.yaml up -d team-robodragons

./caddy/install_local_CA.shコンテナの中にある証明書を取り出してホスト環境にインストールします。

memo: Ubuntu 20.04の場合、Chromeの設定でcaddy/local-ca.crtをルート証明書として設定する必要がある。

Screenshot_2021-06-17_15-04-23

ブラウザを再起動し(chromeの場合 chrome://restart にアクセスするのが簡単)、https://localhost にアクセスするとフィールドがあります。

サーバーは裏でずっと動いてるので(おそらくホストを再起動しても自動的に起動する)、テストが終わったらdocker-compose down -v --remove-orphansでクリーンアップする必要があります。

Clone this wiki locally