# 如何在QNAP NAS 中設定Azure IoT Edge 本教學教您如何在QNAP NAS中安裝 Azure IoT Edge 執行階段,分為兩種平台安裝方式 : * x86系列 - 使用Linux Station * Arm系列 - 使用Container Station(LXC) ## X86 安裝方式 - Linux Station 1. 請先在 **App Center** 安裝 **Linux Station**,並在 **Linux Station** 中將 **Ubuntu 16.04** 安裝及設定完成 2. 使用SSH 進入NAS 3. 輸入指令進入 **Ubuntu 16.04** Console : ```bash lxc-console -P `/sbin/getcfg ubuntu-hd Install_Path -f /etc/config/qpkg.conf`/lxc -n ubuntu_1604 -t 0 ``` 4. 登入NAS admin 帳號密碼 5. 安裝 **Docker-ce 17.09.1** 版本,參照以下指令步驟 : ```bash sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common nano -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce=17.09.1~ce-0~ubuntu -y ``` 6. 參照Microsoft官方 [快速入門:將您的第一個 IoT Edge 模組部署至 Linux x64 裝置](https://docs.microsoft.com/zh-tw/azure/iot-edge/quickstart-linux) 文件進行後續設定(<font color="red">請跳過**安裝容器執行階段**段落,因為我們已經安裝好Docker環境</font>) ## Arm 安裝方式 - Container Station(LXC) 1. 請先在 **App Center** 安裝 **Container Station**,並先將環境設定完成 2. 開啟 **Container Station**,切換至 **Create** 頁面,移動到最下方選擇 **Ubuntu 16.04** 點擊 **Install** ![](https://i.imgur.com/nmyya2w.png) 3. 視需求設定,設定完畢後點擊 **Create** ![](https://i.imgur.com/522zYrb.png) 4. 等待建立完成 ![](https://i.imgur.com/9alIw1A.png) 5. 使用SSH 進入NAS 6. 輸入指令進入 **Ubuntu 16.04** Console(視您建立的LXC變更相應的名稱) : ```bash lxc-console --name=ubuntu-xenial-armhf-1 ``` 7. 安裝 **Docker-ce 17.09.1** 版本,參照以下指令步驟(預設帳號密碼為ubuntu/ubuntu) : ```bash sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common nano -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install docker-ce=17.09.1~ce-0~ubuntu -y ``` 7. Link `libssl.so.1.0.0` and `libcrypto.so.1.0.0` ```bash cd /lib/arm-linux-gnueabihf/ sudo ln -s libssl.so.1.0.0 libssl.so.1.0.2 sudo ln -s libcrypto.so.1.0.0 libcrypto.so.1.0.2 ``` 8. 參照Microsoft官方 [快速入門:將您的第一個 IoT Edge 模組部署至 Linux x64 裝置](https://docs.microsoft.com/zh-tw/azure/iot-edge/quickstart-linux) 文件進行後續設定(<font color="red">請跳過**安裝容器執行階段**段落,因為我們已經安裝好Docker環境</font>) ## 其他安裝備註 1. 若X86平台要使用 **Container Station(LXC)** 安裝 **Azure IoT Edge**,在NAS Host主機上編輯`/usr/local/container-station/lxc/share/lxc/config/common.conf`,將 ``` lxc.mount.auto = cgroup:mixed proc:mixed sys:mixed ``` 這行修改為: ``` lxc.mount.auto = proc:mixed sys:mixed ``` (此步驟只要更新 Container Station皆須執行) (注意:因停用cgroup,Container Station LXC部分會無法正常顯示CPU及Ram負載狀況) 2. 若要使用官方建議的 **moby** 執行引擎,可在Container中編輯`/etc/rc.local`,將以下指令加入(**非在NAS Host主機上編輯**) : ```bash mount -o remount,rw /sys/fs/cgroup/ mkdir /sys/fs/cgroup/cpu mkdir /sys/fs/cgroup/cpuacct mount -t cgroup cgroup -o cpu /sys/fs/cgroup/cpu mount -t cgroup cgroup -o cpuacct /sys/fs/cgroup/cpuacct ``` 3. 若要執行Dokcer特權容器模式,請在NAS Host主機上編輯LXC設定檔 ( **Linux Station位於 :``` `/sbin/getcfg ubuntu-hd Install_Path -f /etc/config/qpkg.conf`/lxc/ubuntu_1604 ```、Container Station位於您初始設定的`container-station-data/lib/lxc/`Container名稱底下** ),將下方字串加入到config最後一行 : <font color="red">**注意 : 此方法將提升Container控制Host主機的權限,可能會有安全上的疑慮,請評估是否需要開啟此項功能**</font> ```lxc-config linux.kernel_modules: bridge,br_netfilter,ip_tables,ip6_tables,ip_vs,netlink_diag,nf_nat,overlay,xt_conntrack raw.lxc: |- lxc.cgroup.devices.allow = a lxc.cap.drop = security.nesting: "true" security.privileged: "true" ``` ###### tags: `Tutorial`