〇Perkeepの画面
〇コンテナの構築
LXDで以下のコマンドを実行して、Perkeep(Camlistore)がインストールされたコンテナを構築します。
lxc init ubuntu:16.04 perkeep
lxc config set perkeep user.user-data - < config.yml
lxc start perkeep
config.yml
#cloud-config
package_upgrade: true
hostname: perkeep
manage_etc_hosts: true
write_files:
- path: /etc/systemd/system/camlistore.service
content: |
[Unit]
Description=Camlistore
After=network.target
[Service]
Type=simple
ExecStart=/bin/bash -c -i 'export HOME=/opt/camlistore && cd /opt/camlistore && /opt/camlistore/bin/camlistored'
WorkingDirectory=/opt/camlistore
Restart=on-failure
User=cs
Group=cs
[Install]
WantedBy=multi-user.target
runcmd:
- 'apt-get update'
- "wget https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz"
- "tar xvfz go1.10.1.linux-amd64.tar.gz"
- "mv go /usr/local"
- 'echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile'
- "cd /opt"
- "apt-get -y install git"
- "git clone https://camlistore.googlesource.com/camlistore"
- "cd /opt/camlistore"
- "export PATH=$PATH:/usr/local/go/bin && /usr/local/go/bin/go run make.go"
- "useradd cs"
- "chown -R cs:cs /opt/camlistore"
- systemctl enable camlistore.service
- systemctl start camlistore.service
- "while netstat -lnt | awk '$4 ~ /:3179$/ {exit 1}'; do sleep 10; done"
- "sleep 10"
- 'sed -i -e "s/\"auth\": \"localhost\"/\"auth\":\"userpass:admin:admin\"/" /opt/camlistore/.config/camlistore/server-config.json'
- chown -R cs:cs /opt/camlistore
- systemctl restart camlistore.service
final_message: "completed."
〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=3179 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'
ブラウザからhttp://<ホストのIP>:3179/にアクセスします。デフォルトユーザ/パスワードはadmin/adminです。
〇コンテナに入る
lxc exec perkeep /bin/bash
〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list
〇コンテナの停止
lxc stop perkeep
〇コンテナの削除
lxc delete perkeep
0 件のコメント:
コメントを投稿