如何将代码部署到全部位于单独网络上的硬件节点?

时间:2015-11-20 03:23:48

标签: linux unix ssh arduino raspberry-pi

这是我最近一直在考虑的一个有趣的问题,并没有提出或找到我认为可以接受的解决方案。

我正在和Raspberry Pi一起玩,目前我想在我的一些个人财产中使用6个用于监视目的。

使它们工作并将视频流发送到我的服务器既简单又好又好 - 但我在世界上如何将代码更新部署到这些节点"虽然不在同一个网络上,但有些网络背后还有我不具备端口转发权限的Wi-Fi网络,所以我不能只是向前发送和SSH进入它们并运行一些。 sh magic更新事物。

我提出的最好的方法是使用autossh通过反向ssh保持一个常量的连接打开我的服务器,然后通过我的父服务器并行地运行它们并运行.sh脚本当我想要更新它们时..但这看起来过于过分,我确定有一些解决方案或平台可以解决这个问题 - 像Redbox或Nest这样的公司如何更新固件他们的系统远程?

1 个答案:

答案 0 :(得分:0)

我实际上在做类似的事情。我在我所居住的城市周围部署了Pi。为了不必担心端口转发和人们更改路由器配置,我开始使用名为Pagekite http://pagekite.net/的服务

我与他们没有任何关系,但我无法对服务和价格说些好话。我的Pi连接到需要在特定时间显示某些东西的屏幕,而且无论Pi在哪里看到当前正在播放的内容,我都能轻松地进行VNC。我显然也可以直接进入。

我的pi设置指南中的以下步骤涉及安装pagekite并让它在启动时启动:

  1. echo deb http://pagekite.net/pk/deb/ pagekite main | sudo tee -a /etc/apt/sources.list
  2. sudo apt-key adv --recv-keys --keyserver keys.gnupg.net AED248B1C7B2CAC3
  3. sudo apt-get update
  4. sudo apt-get install pagekite
  5. sudo leafpad /etc/pagekite.d/10_account.rc 将NAME.pagekite.me替换为风筝的名称 用来自pagekite管理控制台的秘密取代YOURSECRET 删除“abort_not_configured”行及其上方的注释
  6. sudo cp /etc/pagekite.d/80_sshd.rc.sample /etc/pagekite.d/80_sshd.rc
  7. sudo invoke-rc.d pagekite restart
  8. sudo reboot
  9. 这假设您已经创建了一个帐户并设置了风筝"

    我认为你基本上需要一个可靠的反向隧道,例如Pagekite,特别是如果你计划扩展你的网络,因为它将变成一定规模的噩梦。我相信我只是要保留ssh用户名,ssh密码和pagekite地址的列表,然后编写一个循环遍历它们的脚本,并使用新代码将本地目录rsync到远程目录上pi。