cnk700i 发表于 2019-9-16 11:41:12

Visual Studio Code调试Home Assistant代码(SSH版)


## 备注
- 拷贝自[博客](https://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/),排版格式随缘,如有问题可看原文。。。
- 不设置隐藏了,觉得有用帮忙顶一下让更多人看到~

## 正文


Visual Studio Code在WSL或容器远程调试,需要在本地安装相应的WSL或者Docker Desktop,如需要尽量保持本地环境的简洁,采用SSH方式是一个更好的选择。0.环境
[*]Win10 + OpenSSH
[*]Ubuntu 18.04 + Docker CE 19.03.1
[*]Visual Studio Code 1.38.0
1.方法简介SSH方式通过远程到Linux主机上,使用Linux主机环境实现代码调试,实际上VS Code官方文档已有很完整教程,有疑问可以多翻翻。为了隔离测试环境,在此使用容器部署Linux环境。2.准备2.1.Windows
[*]安装OpenSSH客户端,Win10 1809 和 Windows Server 2019后系统默认安装好,其它版本参照教程进行安装。
[*]创建SSH钥匙对,会提示保存目录直接回车确认即可。复制
1
ssh-keygen -t rsa -b 4096



[*]将%USERPROFILE%\.ssh\目录下生成的id_rsa.pub(公匙)复制出来,将id_rsa(私匙)更名为id_rsa-hass-dev。INFO:更名的目的是作为专用的钥匙。
2.2.Linux
[*]下载Dockerfile,将上一步骤的id_rsa.pub放进同一个目录,然后上传至Docker宿主机。
[*]进入Dockerfile文件所在目录,构建镜像。复制
1
2
3
cd hass-dev
# PIP_SOURCE指定pip源,HA_VERSION指定版本号
docker build -t hass-dev:0.98.0 --build-arg PIP_SOURCE="http://mirrors.aliyun.com/pypi/simple/" --build-arg HA_VERSION="0.98.0" .


INFO:PIP_SOURCE建议用阿里的,比较新。
[*]启动容器。复制
1
docker run -d -v ~/hass-dev-config:/usr/src/homeassistant/config -p 8022:22 -p 8456:8123 hass-dev:0.98.0


INFO:把配置目录映射出来方便备份;需要映射容器22端口;可以不设置映射HA的8123端口,后续在VS Code设置映射到本地访问。
3.VS Code操作
[*]配置SSH连接信息。https://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p1_%E6%89%93%E5%BC%80SSH%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.pnghttps://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p2_%E9%80%89%E6%8B%A9%E7%94%A8%E6%88%B7%E7%9B%AE%E5%BD%95%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.pnghttps://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p3_%E5%A2%9E%E5%8A%A0%E4%B8%BB%E6%9C%BA%E4%BF%A1%E6%81%AF.png复制
1
2
3
4
5
Host hass-dev                           # 主机名,自定义
User root                               # 登录用户,不需要改动
HostName 192.168.1.10                   # 宿主机IP,根据实际调整
IdentityFile ~/.ssh/id_rsa-hass-dev   # 本地私钥文件
Port 8022                               # 容器映射的端口,根据实际调整


INFO:配置文件中应删掉注释。
[*]连接远程主机(容器)。https://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p4_%E5%BC%80%E5%A7%8B%E8%BF%9E%E6%8E%A5%E4%B8%BB%E6%9C%BA.pnghttps://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p5_%E9%80%89%E6%8B%A9%E4%B8%BB%E6%9C%BA.pnghttps://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p6_%E9%A6%96%E6%AC%A1%E8%BF%9E%E6%8E%A5%E4%BC%9A%E6%8F%90%E7%A4%BA%E7%A1%AE%E8%AE%A4.png
[*]在远程主机(容器)上安装Python插件,代码调试需要。https://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p7_%E6%88%90%E5%8A%9F%E8%BF%9E%E6%8E%A5%E4%B8%BB%E6%9C%BA%E5%90%8E%E5%AE%89%E8%A3%85%E6%8F%92%E4%BB%B6.png
[*]打开主目录,开始调试。https://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p8_%E5%8A%A0%E8%BD%BD%E4%B8%BB%E7%9B%AE%E5%BD%95.pnghttps://ljr.im/articles/visual-studio-code-debugging-home-assistant-ssh-version/c3_p9_%E5%BC%80%E5%A7%8B%E8%B0%83%E8%AF%95.png
4.小结
[*]官方的HA镜像貌似没有给Dockerfile,只得自己写,顺便精简了一些文件。
[*]VS Code的三种远程调试方法整体上操作流程都一样,难点都是远程主机环境的搭建。

页: [1]
查看完整版本: Visual Studio Code调试Home Assistant代码(SSH版)