Visningar:
Betyg:
Svårighetsgrad:
Tidsåtgång:
För den här guiden behöver du
- Dator att utföra förberedelserna på
- Intel NUC
- Skärm
- Tangentbord
- Nätverksanslutning (kabel eller WiFi)
- USB-minne (8-64GB)
Visningar:
Betyg:
Svårighetsgrad:
Tidsåtgång:
Uppdatering 2019-03-09:
– Förtydligat vissa saker, bland annat hur man skapar SSH-nyckel.
– Lagt notering om att SSH-nyckeln BÖR skapas ifrån arbetsdatorn, via PuTTY.
– Åtgärdat uppdateringskommandot i steget ”Uppdatera Ubuntu” (lagt till sudo).
För några månader sedan installerade jag Hass.io på min Raspberry Pi 2, och trots att den blev fullt konfigurerad så kom jag aldrig riktigt igång med att använda den, utan den stod i ett par månader och bara loggade mina enheters status. Tids nog föll den i glömska och jag behövde strömadaptern till annat så ”pajen” fick ligga strömlös i någon månad.
Sen kom hösten och suget efter kvällspyssel kom krypandes, dags att koppla in ”pajen” igen! Tyvärr visade det sig att den korta tid Home Assistant var igång räckte för att skriva sönder SD-kortet, trots att det var ett lite dyrare kvalitetskort. Trots flera återupplivningsförsök stannade installationen på ungefär samma ställe varje gång och en sektorskanning visade att fyra sektorer var såpass skadade att de inte gick att rädda.
Jag började snegla emot min NUC som tjänstgjorde som TV-dator. Eftersom den använts vid 4-5 tillfällen det senaste året så fick den jobbet, den skulle få ersätta Raspberryn!
Efter att ha läst ett tiotal guider och testat flera av dem tröttnade jag på att alla guider saknade något, gick i fel riktning eller helt enkelt inte fungerade. Jag började fundera ut min drömlösning och sedan plockade jag väl valda delar ur guiderna för att hitta min egna väg.
Jag landade i att köra Ubuntu som operativsystem med Hass.io installerat i en Docker-container.
Ifall du vill använda guiden för andra datorer än Intel NUC så ska det fungera alldeles utmärkt. Det enda steget i guiden som egentligen är specifikt för Intel NUC är ”Uppdatera och justera BIOS”, gör du motsvarande på din dator enligt tillverkarens instruktioner är det bara att tuta och köra med resten sen!
Hoppa inte över detta steg, en uppdaterad BIOS behövs både för Ubuntu och Docker.
(För att flytta markören under installationen, använd tabb-tangenten)
Klart, nu har du installerat Ubuntu server på din NUC, lättare än du trodde va?
Är du ovan att arbeta i Unixbaserade operativsystem kan det vara klokt att läsa igenom wikiartikeln ”Några enkla grunder i Unix” nu!
Nu är det dags att logga in i din Ubuntuserver, detta kan du antingen göra lokalt eller ifrån en dator på samma nätverk med SSH-programmet PuTTY. Jag föredrar att göra resterande steg ifrån min vanliga arbetsdator via PuTTY, observera att du måste veta NUC’ens IP för detta.
Starta PuTTY på din arbetsdator, ange ubuntumaskinens IP-nummer i rutan ”Host Name (or IP address) och klicka på Open.
Logga in genom att ange användarnamnet och lösenordet du valde under installationen
host login: user
Password:
Ladda hem de senaste uppdateringarna genom att ange följande kommando
user@host:/$ sudo apt-get update && sudo apt-get full-upgrade -y
Nu kommer vi till något som brukar få de flesta att skruva på sig – säkerhet. Om du aldrig kommer att ansluta till din Ubuntuserver med PuTTY (eller annan SSH-klient) och aldrig kommer ha den exponerad emot internet kan du hoppa över detta steg och gå direkt till ”Förbereda för Docker”
OBS! Det här steget BÖR du göra ifrån din vanliga arbetsdator via PuTTY, annars har du ca 3400 slumpade tecken att skriva av, som MÅSTE vara exakt rätt! Om du inte redan kör via PuTTY och inte vet hur du gör det så gå tillbaka till föregående steg och läs där.
Skapa en dold katalog och navigera till den
user@host:/$ mkdir .ssh && cd .ssh
Skapa en SSH-nyckeln med följande kommando
user@host:/$ ssh-keygen -t rsa -b 4096 -C USER2nuc
Spara filen med namnet USER2nuc (eller vad du väljer att kalla den)
Du kommer att bli ombedd att ange en ”passphrase”, detta kommer vara det lösenord du anger för att logga in via SSH (med t.ex. PuTTY). Du kan välja att lämna din passphrase blank, men jag rekommenderar att du väljer ett lösenord (som du ser till att komma ihåg eller noterar på ett säkert ställe).
Nu ska du göra din nyckelfil godkänd med följande kommando
user@host:/$ cat USER2nuc.pub >> authorized_keys
Nu är det dags att spara din nyckelfil till din arbetsdator, ange följande kommando
user@host:/$ cat USER2nuc
Kopiera innehållet (från ”—–BEGIN RSA PRIVATE KEY—–” till ”—–END RSA PRIVATE KEY—–”) ifrån nyckelfilen och klistra in det i Anteckningar, spara det sen i en fil på din arbetsdator (t.ex. c:\nucssh.ppk).
Starta PuTTYgen på din arbetsdator, välj ”File” > ”Load private key” och peka ut din nyckelfil som du nyss sparat. Klicka på ”Save private key” och ersätt den gamla filen med den nya.
Om du är ovan att arbeta i unixbaserade operativsystem kan det vara bra att läsa wikiartikeln ”Några enkla grunder i Unix” innan du kör vidare!
På din NUC (alltså, lokalt eller via PuTTY), kör följande kommandon
user@host:/$ sudo -s
[sudo] password for user:
root@host:~# vim /etc/ssh/sshd_config
Ändra port för SSH genom att leta upp raden ”#Port 22” och ändra till ”Port 2222” (observera att # ska raderas) (detta kommer att byta din SSH-port från 22 till 2222 vilket är en säkerhetsåtgärd för att minska risken att bot’ar hittar din SSH-port. Ifall du inte ska exponera din NUC emot internet kan du kan du hoppa över detta)
Leta upp rubriken ”# Authentication:”
Ändra raden ”#PermitRootLogin” till ”PermitRootLogin no” (observera att # ska raderas).
Ändra raden ”#StrictModes” till ”StrictModes yes” (observera att # ska raderas).
Ändra raden ”#MaxAuthTries 6” till ”MaxAuthTries 6” (observera att # ska raderas)
Om du vill tillföra extra säkerhet kan du även lägga till raden ”PasswordAuthentication no” nedanför raden ”MaxAuthTries 6”. Detta gör isåfall så att det inte längre går att logga in med bara användarnamn och lösenord, observera att du isåfall kommer bli utelåst ifall du tappar bort din SSHnyckel!
Spara filen och avsluta VIM.
Starta om SSH-tjänsten med följande kommando
root@host:~# /etc/init.d/ssh restart
Starta en ny session av PuTTY.
Nu kan du ansluta till din Ubuntuserver med PuTTY genom att dubbelklicka på ”NUC” i sessionslistan.
Docker låter dig köra program i en slags virtuella servrar inuti din server, men till skillnad ifrån andra ”virtualiseringssystem” så kör inte Docker ett helt operativsystem inuti den virtuella servern utan endast den aktuella programvaran och dess beroenden – kort sagt, det blir som en virtuell server fast med mycket mindre prestandaförlust!
Börja med att aktivera rootläget
user@host:/$ sudo -s
[sudo] password for user:
root@host:~#
Ladda hem de senaste paketlistorna med följande kommando
root@host:~# apt-get update
Nu är det dags att installera alla beroenden, det gör du med följande kommandon:
root@host:~# apt-get install apt-transport-https
root@host:~# apt-get install ca-certificates
root@host:~# apt-get install curl
root@host:~# apt-get install software-properties-common
Lägg till Docker’s officiella GPGnyckel genom att ange detta kommando:
root@host:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
För att kunna ladda hem Docker måste du ange varifrån det ska hämtas, det gör du med detta kommando:
root@host:~# add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Nu behöver du återigen uppdatera paketlistorna med följande kommando:
root@host:~# apt-get update
Starta installationen av Docker
root@host:~# apt-get install docker-ce
Verifiera att Docker installerats korrekt genom att köra igång test-containern ”hello-world”, detta gör du med följande kommando
root@host:~# docker run hello-world
Det som händer är att containern laddas hem och startas. Så snart den startats visas ett meddelande och sen stängs containern ner igen
Docker kan få problem att komma åt DNS-inställningarna på vissa installationer och därför kan det vara bra att testa så att detta fungerar.
Börja med detta kommando för att se så att Docker kan ansluta till internet:
root@host:~# docker run busybox ping -c 1 192.203.230.10
Ifall allt fungerar bör svaret se ut ungefär såhär:
PING 192.203.230.10 (192.203.230.10): 56 data bytes
64 bytes from 192.203.230.10: seq=0 ttl=53 time=5.418 ms
--- 192.203.230.10 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 5.418/5.418/5.418 ms
Testa DNS genom följande kommando:
root@host:~# docker run busybox nslookup google.com
OBS! I svaret kommer det förmodligen stå att den inte fick något svar ifrån google.com (*** Can’t find google.com: No answer), men den delen av svaret du ska titta efter är denna:
Non-authoritative answer:
Name: google.com
Address: 172.217.20.46
Ifall DNS-uppslaget inte kan göras behöver du redigera en configfil, detta gör du med följande kommando:
root@host:~# vim etc/docker/daemon.json
Filen ska innehålla följande (byt ut värdena emot din primära och sekundära DNS-server):
{
"dns": ["192.168.0.1", "8.8.8.8"]
}
Spara och stäng filen. Starta sedan om Docker:
root@host:~# service docker restart
Testa nu igen ifall du kan slå upp google.com:
root@host:~# docker run busybox nslookup google.com
Ifall du inte är i rootläge, starta det
user@host:/$ sudo -s
Börja med att installera nödvändiga paket med följande kommandon
root@host:~# add-apt-repository universe
root@host:~# apt-get update
root@host:~# apt-get install apparmor-utils
root@host:~# apt-get install apt-transport-https
root@host:~# apt-get install avahi-daemon
root@host:~# apt-get install ca-certificates
root@host:~# apt-get install curl
root@host:~# apt-get install dbus
root@host:~# apt-get install jq
root@host:~# apt-get install network-manager
root@host:~# apt-get install socat
root@host:~# apt-get install software-properties-common
Vissa av dessa installerades redan vid Dockerinstallationen, men jag väljer att ta med dem ändå eftersom möjligheten finns att någon bara läser delen om att installera Hass.io
Installera Hass.io med ett av följande kommandon (det första är det jag använt och det andra kom in som tips ifrån en användare som upptäckt att det kommandot fungerade bättre, jag har själv inte hunnit testa det)
root@host:~# curl -sL https://raw.githubusercontent.com/home-assistant/hassio-build/master/install/hassio_install | bash -s
root@host:~# curl -sL "https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh" | bash -s
Du har nu tagit dig igenom hela installationen av Ubuntu, Docker och Hass.io – det var inte så svårt som du trodde va?
Oh, jag höll på att glömma – nu bör du komma åt Hass.io genom att surfa till http://[IP-ADRESS]:8123 (byt ut [IP-ADRESS] emot IP-adressen för din NUC)
Du vet förmodligen inte om det än, men du vill även installera Portainer.io. Det är ett grafiskt skal till Docker där du enkelt kan hantera dina Dockercontaintrar (installerade program) – helt enkelt grymt!
Skapa först en volym
root@host:~# docker volume create portainer_data
Dags att ladda hem Portainer.io
root@host:~# docker create --name=portainer --restart=always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
För att starta Portainer.io anger du detta kommando
root@host:~# docker start portainer
Nu ska du kunna surfa till http://[IP-ADRESS]:9000 (byt ut [IP-ADRESS] emot IP-adressen för din NUC). Det första du ska göra är att skapa ett konto. När du får frågan om local eller external, välj local.
Hur bra var den här guiden?
Klicka på en stjärna för att betygsätta
Betyg 4.1 / 5. Antal röster 7
Bli först med att betygsätta denna guide!
Eftersom du tyckte den här guiden var bra...
Följ oss på sociala medier, så missar du inte nästa guide!
Jag beklagar att du inte var nöjd med guiden!
Hjälp mig att göra bättre guider i framtiden.
Vad saknades / vad var fel?
...skärmen alltså!
För att visa den här hemsidan behöver din skärm vara minst 400 pixlar bred.
Om du surfar via telefonen, testa att vrida skärmen.
Tack för guiden, bra!
Förslag till korrigering dock för installationen av Hass.io, detta fungerar bättre upptäckte jag:
root@host:/# curl -sL ”https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh” | bash -s
Tack Niklas för tipset! Jag lägger in det i guiden.
/Simon
Tusen tack för guiden!! Precis vad jag söker nu när trådfri inte fungerar så bra med Google assistant.
Har en NUC med 32GB SSD går det lika bra att använda den eller skrivs den sönder?
Ledsen för sent svar, det har varit mycket annat än hemautomation för min del på senaste tiden.
Du har förmodligen redan testat själv, men för andra som befinner sig i samma sits – det bör fungera jättebra!
Tack för en bra guide, alla steg gick bra förutom det med SSH. Jag gjorde inte det steget direkt utan gjorde det några dagar senare.
Det gick bra att följa stegen i SSH-avsnittet till slutet, men när jag kommer till sista steget att starta om ssh med kommandot ”/etc/init.d/ssh restart” så får jag ett felmeddelande. Tyvärr så startade jag om hela servern efter detta och nu kan jag inte längre logga in. Vad har jag för alternativ för att lösa det?
Lade du till PasswordAuthentication no i /etc/ssh/sshd_config? Isåfall behöver du använda nyckelfilen när du ansluter.
Jag kan yra i nattmössan nu (ligger redan i sängen) men du bör kunna logga in lokalt precis som tidigare, och återställa ändringarna den vägen.