neroxps 发表于 2018-8-10 15:54:02

HASSIO 安装一键脚本

本帖最后由 neroxps 于 2021-6-1 13:35 编辑

本脚本已与2021年6月1日停止维护,江湖再见!
关于出国旅游环境问题~请看 https://bbs.hassbian.com/thread-12267-1-1.html===========================================
不提供日志请不要发询问帖
不要发(那种怎么没反应) 然后又不带日志的帖子,违者将扣20分处理!!!
2019年5月31日21:26:57开始实施----------------------------------------------------------------------

给windows子系统的用户:windows 商店已经提供ubuntu安装,但是这个ubuntu并不能安装docker,目前docker依然需要依赖虚拟机(因为子系统还不支持 iptables,有iptables但是没法用),网上流传的 WSL for Docker 都是需要安装 docker for windows客户端,而这个客户端其实是在 Hyper-V 上跑一个ubuntu,那你为何不直接在Hyper-V上直接装个ubuntu来跑 hassio?
常见问题:


### 错误信息 Timeout

错误信息如下的请参考以下连接

`Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled (Client.Timeout exceeded while awaiting headers)`

(http://baidu.apphb.com/?q=Client.Timeout+exceeded+while+awaiting+headers)

(https://lmgtfy.com/?q=Client.Timeout+exceeded+while+awaiting+headers&s=b)

这个是网络问题,自己搜索下解决 docker 的连接问题吧。

### Ubuntu 支持的版本

Ubuntu 版本更新很快,某些非长期支持的版本生命周期很短,如果发现源提示没找到文件的,请检查自己的 Ubuntu 是否在 Ubuntu 生命支持列表内。

(https://wiki.ubuntu.com/Releases)

#### 清华源 Ubunut 支持列表(2020-05-14截至)

- 12.04
- 14.04
- 16.04
- 18.04
- 19.04
- 19.10
- 20.04




# 2020-01-21 Update
## Fixed:
- 将官方 (https://github.com/home-assistant/hassio-installer) 项目克隆到[阿里云 Code 平台](https://code.aliyun.com/neroxps/hassio-installer)
- 将脚本依赖的文件指向 [阿里云 Code 平台](https://code.aliyun.com/neroxps/hassio-installer)
- 改进错误提示


# HassIO 是什么?

有很多人根本不清楚 hassio和 homeassistant到底什么关系(其实我刚入坑也搞的我迷迷糊糊,还有墨澜美女博客的高能警告更搞的我迷迷糊糊),这样理解吧,hassio是一个框架,他利用 docker 来部署 homeassistant,并且为homeassistant 提供各种插件(addons)。

而 homeassistant 在 hassio 中,homeassistant 是利用docker 部署起来,hassio 和homeassistant 是通过他们的API进行联系和沟通。

## 那么 hassio 到底做了什么,他作用是什么?

我的理解是:hassio 是利用Python写了一个类似 docker 管理器那样的程序,拥有 docker 的控制权,从而达到升级/降级 homeassistant 容器,安装/卸载 addons的目的。

详细请参考我另一个帖子 **(https://bbs.hassbian.com/thread-2597-1-1.html)**

## HassOS 又是什么?

这个是 HomeAssistant 官方为了打造开箱即用运行 hassio 做的系统,他不基于任何一个 Linux 发行版,他的设计完全为了给 hassio 服务,我理解他为最小化的 docker 安装系统。

由于他不基于任何一个 Linux 发行版,所以他没有任何包管理工具,如果你想在宿主机安装某些工具,一切工具链都需要自己搞,或者给官方提 issue 等待他们更新。

另外,由于安全考虑, HassOS 默认是不开放 ssh 连接,所以需要后台管理的话比较麻烦。另外由于不能修改系统内部的 docker 源,pull 容器的时候特别的慢,需要旅游才可以顺畅。

### HassOS 和自己安装的 Hassio 有何不同?

本质使用上没有什么不同,只是一个跑在他们高度定制工具链需要自己构建的系统,一个是已经安装在高度成熟的 Debian Ubuntu 这些系统上,并可以自己随意修改 docker 源,系统也有包管理器,丰富的应用可以一键安装。

另这是我对 HassOS 的刻板印象,有可能他现在已经修复,但 HA 官方团队的喜好变化无常,最开始是使用一款树莓派系统来魔改,后来又改名字叫 hassio 系统,现在又改名叫 hassos,而 hassio 目前又改名叫 supervisor。恩,不知道多久,会不会又把 hassos 干掉。

## Docker 又是什么?

建议看一下我学习 docker 的教程写的很好《(https://docker_practice.gitee.io/)》

Docker 你可以将其理解成一个类似虚拟机的系统(但内核是和宿主共用的,故此比传统的虚拟机更轻量)。他的初衷是为了给各个业务系统提供一个干净的隔离环境(我自己理解,可能比较片面与不准确)。

我称 Docker 为运维神器,为什么?因为Docker 可以让你实现开箱即用。举个例子,如果我的hassio要迁移,我只需要把 hassio文件夹拷走(默认路径 /usr/share/hassio),然后拷贝到新的机器上,再运行我的一键脚本,整个 hassio 的所有东西,包括addons插件都会按照原来的方式运行,这要归功于 docker 的便利性。

## Addons 是什么

hassio 设计了一套他独有的 addons 容器编写规范,由于是hassio独有,所以这些 addons 只适配 hassio 使用。

### 我能不能在其他支持docker 的机器上安装 addons(不依赖 hassio)?

答案其实是可以的,因为 addons 其实都是跑在docker 上所以只要设备能安装docker,那么 addons 其实就可以跑。但是上面也说了,addons是基于 hassio规范来设计的容器,所以我们在无 hassio 的情况下使用 addons 就要手工按照 hassio 配置方式来启动 addons了,具体怎么启动可以参考 addons 官方制作文档**(https://developers.home-assistant.io/docs/en/hassio_addon_index.html)**,和我另一个帖子 **[群晖部署天猫精灵网关 For Docker](https://bbs.hassbian.com/thread-4576-1-1.html)**

# hassio_install

hassio 一键安装脚本,实现以下功能。

1. 自动更改系统源为清华源。(目前支持 Debian Ubuntu Raspbian 三款系统)
2. 自动安装 Docker,可以选择切换 Docker 源为国内源,提高容器下载速度。

## 目前支持的系统

- (https://www.raspberrypi.org/software/operating-systems/) 测试版本 Raspberry Pi OS Lite 2020年12月2日通过
- (https://www.ubuntu.com/download/server) 测试版本 12.04 LTS测试通过。
- (https://www.debian.org/distrib/netinst) 测试版本 >=10 最小化版本测试通过。

## 使用方法

以 root 身份运行以下命令。

```bash
wget https://code.aliyun.com/neroxps/hassio_install/raw/master/install.sh
chmod a+x install.sh
./install.sh
```

### 如果安装的是 64 位系统,脚本会自动筛选适配 64 位的设备列表

```
(1). 是否将系统源切换为中科大(USTC)源(目前支持 Debian Ubuntu Raspbian 三款系统)
请输入 y or n(默认 yes):y


(2). 在你系统内找到 nero 用户,是否将其添加至 docker 用户组。
请输入 yes 或者 no (默认 yes):y
将nero用户添加至 docker 用户组。


(3).是否需要替换 docker 默认源?
请输入 yes 或者 no(默认:yes):y


(4).请选择你设备类型(默认:qemux86-64)
    : raspberrypi3-64
    : qemuarm-64
    : qemux86-64
输入数字 (1-3):
你选择了 qemux86-64
################################################################################
# 1. 是否将系统源切换为中科大(USTC)源: 是
# 2. 是否将用户添加至 Docker 用户组:   是,添加用户为 nero
# 3. 是否将 Docker 源切换至国内源:   是
# 4. 您的设备类型为:                   qemux86-64
################################################################################
请确认以上信息,继续请按任意键,如需修改请输入 Ctrl+C 结束任务重新执行脚本。
```

### 如果安装的是 32 位系统,脚本会自动筛选适配32位的设备列表

```
(1). 是否将系统源切换为中科大(USTC)源(目前支持 Debian Ubuntu Raspbian 三款系统)
请输入 y or n(默认 yes):y


(2). 在你系统内找到 nero 用户,是否将其添加至 docker 用户组。
请输入 yes 或者 no (默认 yes):y
将nero用户添加至 docker 用户组。


(3).是否需要替换 docker 默认源?
请输入 yes 或者 no(默认:yes):y


(4).请选择你设备类型(默认:qemux86)
    : raspberrypi
    : raspberrypi2
    : raspberrypi3
    : qemuarm
    : qemux86
    : intel-nuc
输入数字 (1-6):
你选择了 qemux86
################################################################################
# 1. 是否将系统源切换为中科大(USTC)源: 是
# 2. 是否将用户添加至 Docker 用户组:   是,添加用户为 nero
# 3. 是否将 Docker 源切换至国内源:   是
# 4. 您的设备类型为:                   qemux86
################################################################################
请确认以上信息,继续请按任意键,如需修改请输入 Ctrl+C 结束任务重新执行脚本。
```

### 设备类型选型说明
- intel-nuc :英特尔的nuc小主机
- odroid-c2 :韩国odroid-c2
- odroid-xu :韩国odroid-xu
- orangepi-prime :香橙派
- qemuarm :通用arm设备(例如斐讯N1)
- qemuarm-64 :通用arm设备(例如斐讯N1) 64位系统
- qemux86 :通用X86 64位系统(普通的PC机电脑)
- qemux86-64 :通用X86(普通的PC机电脑)64位系统
- raspberrypi :树莓派一代
- raspberrypi2 :树莓派二代
- raspberrypi3 :树莓派三代
- raspberrypi4 :树莓派四代
- raspberrypi3-64 :树莓派三代64位系统
- raspberrypi4-64 :树莓派四代64位系统
- tinker :华硕tinker

## 操作说明

### 停止(但重启依然会自启动)
systemctl stop hassio-supervisor.service

### 重启
systemctl restart hassio-supervisor.service

### 禁用自启动
`systemctl disable hassio-supervisor.service`

### 启用自启动
`systemctl enable hassio-supervisor.service`

### 查询当前启动状态
`systemctl status hassio-supervisor.service`

### 查询当前是否自启动
`systemctlis-enabled hassio-supervisor.service`

### 查询 hassio 日志
`docker logs -f hassio_supervisor`

### 查询 hassio 日志最新20行信息
`docker logs -f hassio_supervisor --tail 20`

### 查询 ha 日志
`docker logs -f homeassistant`

### 查询 ha 日志最新20行信息
`docker logs -f homeassistant --tail 20`

> systemctl 说明 : (https://linux.cn/article-5926-1.html)
> docker logs 命令用法:(https://docs.docker.com/engine/reference/commandline/logs)

# Homeassistant 版本切换脚本

此脚本可在宿主中切换homeassistant版本号

## 严重警告
1. 切换版本的 home-assistant 请先备份好配置文件,虽然脚本会自动备份,但最好自己再备份一次,出现丢失配置情况恕不负责。
2. 切换旧版本启动失败的,请查看 home-assistant 的日志来修复错误配置
3. 切换过旧的版本会导致 hassio 加载 404,目前已知 0.77 以前版本都无法正常加载 hassio
4. 启动失败可以到论坛带日志发帖求助,无日志发帖我将会扣分处理

## 使用方法

使用 root 运行一下命令

```
wget https://code.aliyun.com/neroxps/hassio_install/raw/master/homeassistant_ver_switch.sh
chmod u+x homeassistant_ver_switch.sh
./homeassistant_ver_switch.sh 0.92.2
```


## 鸣谢

感谢帮我测试脚本的:Yume戴迪、萝卜、咸味土豆









neroxps 发表于 2020-4-6 13:22:22

本帖最后由 neroxps 于 2020-4-10 16:53 编辑

ruianyu 发表于 2020-3-30 11:06
只有这个,homeassistant没挂上

20-03-30 02:57:36 WARNING (MainThread) Error on...
https://community.home-assistant ... l-services/171199/3



~~官方论坛也有相关问题。解决办法是在 hassio 的宿主输入以下命令。(本代码只适用 X86_64 架构)~~

由于以前 hassio 是在亚马逊 S3 获取ha版本地址,所以为了解决网络问题,所以我将配置文件的版本写死了,没注意这个坑。

如果你发现用了 hassio 一键脚本安装的hassio 网络有点问题,可以尝试使用以下命令修复下。

```
ha dns update
```

# 感谢QQ群:黄溜溜的指导。


日后官方应该会修复该问题。

Simonyud 发表于 2020-9-7 15:07:47

Simonyud 发表于 2020-9-7 14:21
Job for auditd.service failed because the control process exited with error code.
See "systemctl sta ...

https://blog.csdn.net/stickmangod/article/details/85316142
在网上找到大神安装解决方案试了一下,很好用.
软件其实已经安装上了,但是是设置出错了,按照大神的方法
sudo apt-get update
sudo apt-get install -f
修复完成就不要动这个软件了,重装还是会出错。
复原文件
mv /var/lib/dpkg/info.bk /var/lib/dpkg/info
在执行一边脚本就好了:lol

Mirukuteii 发表于 2018-8-10 17:28:16

抢到沙发

令狐鸣 发表于 2018-8-10 20:10:31

这个必须收藏一下

hundajdx 发表于 2018-8-10 21:06:34

谢谢楼主分享!

遥远 发表于 2018-8-10 21:51:52

有机会一定试下,这个方便太多了

jyz_0501 发表于 2018-8-11 00:15:02

谁可以帮我刷一下N1啊看不懂教程~~

neroxps 发表于 2018-8-11 08:31:44

jyz_0501 发表于 2018-8-11 00:15
谁可以帮我刷一下N1啊看不懂教程~~

N1 要先刷好系统,我没N1 不知道N1情况如何

QQ617250210 发表于 2018-8-11 15:12:58

必须收藏。大爱

xieahui 发表于 2018-8-11 16:21:44

我灯下回家去测试, 问下大神门,
N1原本emmc里面的内容怎么清除?
里面有原来的homeassistant
两点短接强行刷机 刷了内容都还在的 纠结:(

jc78256 发表于 2018-8-11 18:02:17

求加一个centos7
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: HASSIO 安装一键脚本