STF STF docker 集群部署,树莓派做子节点,附带完整配置

花开 · 2018年07月11日 · 1678 次阅读

前言

STF 官方推荐使用 docker 来安装整个环境,好处大家都基本熟知,保证环境一致、快速建立节点、避免重复搭建等等。

docker 安装

现在 docker 安装起来也很方便,直接使用官方提供的脚本,如下:

curl -fsSL raw.githubusercontent.com/docker/docker-install/master/install.sh -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

sudo usermod -aG docker $USER

docker 镜像

x86 镜像如下:

docker pull openstf/stf:latest
docker pull sorccu/adb:latest 
docker pull rethinkdb:latest 
docker pull nginx:latest

armv7(树莓派) 镜像如下:

docker pull openstf/stf-armv7l:latest
docker pull yaming116/arm32v7-adb:latest

docker 管理

这里使用官方推荐的systemd来管理的,在使用脚本安装 docker 的时候,会同时安装这个工具,相关信息可以看鸟哥的 Linux 私房菜 认识系统服务(daemons)
在系统/lib/systemd/system/目录下新建文件夹 docker.service.wants 意思是启动 docker 的时候还需要启动这里的服。

机器配置

ubuntu 16.04

  • ip: 192.168.22.205
  • /etc/environment COREOS_PRIVATE_IPV4=192.168.22.205

树莓派 STRETCH WITH DESKTOP

  • ip: 192.168.22.239
  • /etc/environment COREOS_PRIVATE_IPV4=192.168.22.205

systemd 配置部分如下:

adbd.service

[Unit]
Description=ADB daemon
After=docker.service
Requires=docker.service

[Service]
TimeoutStartSec=0
Restart=always
ExecStartPre=/usr/bin/docker pull sorccu/adb:latest
ExecStartPre=-/usr/bin/docker kill %p
ExecStartPre=-/usr/bin/docker rm %p
ExecStart=/usr/bin/docker run --rm \
  --name %p \
  --privileged \
  -v /dev/bus/usb:/dev/bus/usb \
  --net host \
  sorccu/adb:latest
ExecStop=/usr/bin/docker exec %p adb kill-server

rethinkdb.service

[Unit]
Description=RethinkDB
After=docker.service
Requires=docker.service

[Service]
EnvironmentFile=/etc/environment
TimeoutStartSec=0
Restart=always
ExecStartPre=/usr/bin/docker pull rethinkdb:2.3
ExecStartPre=-/usr/bin/docker kill %p
ExecStartPre=-/usr/bin/docker rm %p
ExecStartPre=/bin/mkdir -p /srv/rethinkdb
ExecStart=/usr/bin/docker run --rm \
  --name %p \
  -v /srv/rethinkdb:/data \
  -e "AUTHKEY=monkey" \
  --net host \
  rethinkdb:2.3 \
  rethinkdb --bind all \
    --cache-size 8192 \
    --no-update-check
ExecStop=-/usr/bin/docker stop -t 10 %p

stf-api.service

[Unit]
Description=STF api
After=rethinkdb.service
BindsTo=rethinkdb.service

[Service]
EnvironmentFile=/etc/environment
TimeoutStartSec=0
Restart=always
ExecStartPre=/usr/bin/docker pull openstf/stf:latest
ExecStartPre=-/usr/bin/docker kill %p
ExecStartPre=-/usr/bin/docker rm %p
ExecStart=/usr/bin/docker run --rm \
  --name %p \
  -e "SECRET=monkey" \
  --net host \
  openstf/stf:latest \
  stf api --port 3700 \
  --connect-sub tcp://${COREOS_PRIVATE_IPV4}:7150 \
  --connect-push tcp://${COREOS_PRIVATE_IPV4}:7170
ExecStop=-/usr/bin/docker stop -t 10 %p

完整配置 github

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册