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

花开堪折枝 · 2018年07月11日 · 1146 次阅读

前言

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

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