CloudMapper とは
awsのネットワーク構成図を作成してくれるツールです。
python3で動きます。
インストール手順
daemon にする
[Unit]
Description=cloudmapper
After=network.target
[Service]
Type=simple
WorkingDirectory=/var/www/github.com/duo-labs/cloudmapper/
ExecStart=/usr/local/pyenv/shims/python -u cloudmapper.py webserver
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
sudo systemctl enable cloudmapper.service
systemctl start cloudmapper
ハマり
daemon 化の経緯
ターミナルで python ./cloudmapper.py webserver
と叩くと、localhohst:8000 で cloudmapperが立ち上がり、ブラウザで見れるようになります。
ターミナルを終了すると見れなくなってしまうので、daemon にして永続的に見れるようにします。
pythonで daemon
node の forever に相当するものはなくたぶん、service に入れることにしました。
(pythonピヨグラマーです)
- 1発目
ExecStart=/usr/bin/python -u {フルパス}/cloudmapper.py webserver
pyenvでpythonをインストールしているので、/usr/bin/python はデフォルトで入っているバージョン(python2系)です。
cloudmapper はpython3でないと動かないので、which python
で探しました。
- 2発目
ExecStart=/usr/local/pyenv/shims/python -u {フルパス}/cloudmapper.py webserver
これでも動きません。
ターミナルで叩くと、cloudmapper.py 内の show_help が呼び出され、usage: ~ が表示されます。
カレントフォルダが{フルパス}でなれば動かないと気づくのに時間を要しました。
cloudmapper.py の仕様と思いますたぶん
- 3発目
ExecStart=cd {フルパス};/usr/local/pyenv/shims/python -u cloudmapper.py webserver
カレントフォルダを移動すればいいと分かったので、コマンドを繋げました 安直
コマンドエラーが出ていたので、すぐわかりました。
- 4発目(解決)
WorkingDirectory={フルパス}
ExecStart=/usr/local/pyenv/shims/python -u cloudmapper.py webserver
WorkingDirectory でカレントフォルダを指定して解決です。
(所要時間: 3時間)