Intel NUC HA-palvelimen asennus- ja käyttöönotto

Step by Step Asennusohje

TL;DR : Intel NUC / Ubuntu 20.04 / Docker / Home Assistant Core Toimintaan.

Vastuuvapauslauseke: Kaikki tästä eteenpäin tekijän omalla vastuulla.

TAUSTAA

Kirjoittaja on Linux noviisi jonka aiemmat kokemukset pohjautuvat vuosien takaiseen Ubuntu LAMP palvelimen pyörittämiseen. Ohjetta kirjoitetaan sitä mukaan kun oman ympäristön asentaminen ja oppiminen etenevät. 

Kysymyksiä saa esittää, vastaan  niihin parhaani mukaan. Jos teiltä löytyy parannuksia / korjauksia, niin päivitetään tänne. Palaute ohjeistuksen toiminnasta on enemmän kuin tervetullutta!
Ohjetta tullaan varmasti muokkaamaan, jos epäkohtia ilmenee tai havaitaan parempia keinoja toteutuksessa.
Tämän pohjalta olen kuitenkin oman palvelimen pystyttänyt onnistuneesti.

Ohjeistuksen pohjana olen käyttänyt Piyush Paliwal kirjoittajan ohjetta                            
Alkuperäinen ohje ei valitettavasti kaikilta osin ole virtaviivainen suorittaa ja sisältää virheellisiä komentoja.

Tämän Step by Step ohjeistuksen olen kirjoittanut pääasiassa itselleni, mutta toivon sen auttavan myös teitä nopeampaan käyttöönottoon.Yritän pitää tämän ohjeen mahdollisimman selkokielisenä ja helppona ymmärtää.

Lähdetiedonhaku: Useiden tuntikausien KVG.

ESIMERKIN AIHE

Rakennetaan NUC:sta geneerinen Linux palvelin. Levykuvana käytetään käyttöliitymän sisältävää Ubuntua. Palvelimen käyttöönotto tapahtuu paikallisesti LAN verkon välityksellä. Palvelimella tulee pyörimään Docker jonka sisälle asennetaan konttina HASS Core. Dockerin avulla palvelinta voidaan jatkojalostaa asentamalla muita kontteja jotka eivät liity kotiautomaatioskeneen.

TERMIT LYHYESTI

Docker
Docker on tuoteperhe, jonka avulla voi sekä laittaa sovelluksia kontteihin että ajaa kontteja. Docker tarjoaa tehokkaan ajoympäristön kontteihin sijoitetuille sovelluksille.

Portainer
Portainerilla hallitaan Docker kontteja Web GUI:n kautta

HOME ASSISTANT Core
Homeassistantin core on python ohjelma jota voidaan ajaa usealla eri käyttöjärjestelmällä. Ohjeessa HA asennetaan docker konttiin (container)

Tämä ei ole HASS. IO käyttöjärjestelmä image. Kyseinen image korvaisi tässä tapauksessa palvelimen käyttöjärjestelmänä pyörivän Ubuntun täysin. 

Core ei sisällä  HA addon store ominaisuutta. Se löytyy vain supervised  / OS versiosta jota ei tässä ohjeessa käytetä. Supervised on tällä hetkellä vain debian pohjaisena tuettu yhteisön toimesta. 
Supervisedilla omat asennusohjeet: Linkki 1Linkki 2

ESIVALMISTELUT

Seuraavia tulemme tarvitsemaan:
- Palvelimeksi: INTEL NUC valmiskone tai Barebone + SSD + Mem. 
- Näyttö, näppäimistö, hiiri.
- Tietokone etähallintaan -> Putty asennettuna 
- Toimiva lähiverkko
- PH2 ruuvimeisseli
- 1 -2 USB 3.0 / 2.0 Muistitikkua (4GB riittää)
        o Tikku1 BIOS päivitys
        o Tikku2 Ubuntu 20.04.01 image 
- Perusymmärrys komponenteista.
- Googlen käyttötaito.

Tämän esimerkin preppailut suoritettu Windows koneella.

Esimerkkikokoonpano Intel NUC7PJYH:

Barebone: Intel® NUC Kit NUC7PJYH
Keskusmuisti: 8GB 2400MHz DDR4 CL17 SO-DIMM KINGSTON
Levyasema: Samsung 860 EVO 250GB 3D MLC SSD 2.5inch SATA3
Käyttöjärjestelmä: Ubuntu desktop image 20.04.1 LTS (Focal Fossa)

Kirjoitushetkellä 9.1.2021 Uusin Ubuntun LTS versio on 20.04.1 LTS (Focal Fossa) 
Standard Support päättyy 04/2025. EOL ei vielä määritetty.
Tuorein NUC7PJYH BIOS: 10/2020  v. 0059.

RAUTA-ASENNUS

Jos NUC jo valmiina voit skipata.

1.     Avaa NUCIN pohjasta 4 ruuvia. Nosta levykelkka varovasti syrjään.
        Kaapeleita ei tarvitse irrottaa. 

2.     Kiinnitä muistikampa sekä työnnä SSD sisään kelkkaan > Kiinnitä SSD kahdella ruuvilla
        > Kiinnitä levykelkka / pohjaosa takaisin > Kiristä ruuvit.

3. Kiinnitä näyttö, näppäimistö, hiiri, verkko, ja virtakaapeli NUC:iin.

UBUNTU IMAGE

1. Ladataan uusin desktop LTS 20.04.1 image
2. Lataa ja asenna Rufus
3. Device > Valitse tikku jolle image poltetaan.
4. Boot selectionSelect > Valitse ladattu Ubuntu image.
5. Start.
6. Kun valmis > Poista turvallisesti. 

BIOS FLASH

1. Ladataan NUC mallin mukaan uusin  .bio tiedosto usb tikulle.
        Kun ladattu > Poista tikku turvallisesti. 
2. Käynnistä NUC > F2 > Aseta BIOS kello oikein >
        Tarkista että levyasema sekä muistit tunnistuvat oikein. 
3. Kiinnitä USB tikku jolla uusin bios > F10 >
4. Hakkaa F7 bootin aikana.
5. Valitse  USB DISK > ENTER > Valitse BIOS tiedosto .bio > ENTER
NUC Asentaa ja käynnistyy uudelleen kun BIOS päivitys on valmis. 
7. Ei mediaa teksti > Poista BIOS päivitystikku NUC:sta.
8. Reboottaa > CTRL+  ALT +DEL 

BIOS ASETUKSET

1. Bootissa hakkaa F2
2. Tarkista BIOS versio.
3. Anna pvm + aika > Set. ( Päivittää annetun arvon AM/PM formaattiin )
4. Valitse > Advanced Boot > Boot configuration > Os selection > Linux. 

Jännitteensyötön katkon varalta asetetaan Nuc käynnistymään automaattisesti virtojen palatessa.
5. Valitse > Advanced > Power > Secondary Power Settings > After Power Failure: Valitse > Power On
6. F10 + Enter

// OPTIO // MEMTEST 86+ 

Uuden muistikamman kanssa suoritin varmuudeksi memtestin ennen asennuksen jatkamista. Voit halutessasi skipata tämän kohdan. Kesto: 4 kierrosta 8GB muistilla n. 3,5h.

1. Lataa Memtest 86+
2. Purkaa zip > tee Imageusb.exe:llä USB tikusta boottaava memtestin imagesta. > Poista turvallisesti  
3. Kiinnitä tikku NUC:iin > Reboot ja Hakkaa F10 >  Valitse oikea tikku > Aja memtest.
4. Jos virheitä ei ilmene kun pass on 4/4 poista tikku > Reboot ja Siirry Ubuntun asennukseen.

UBUNTUN ASENNUS

1. Laita bootaava Ubuntu USB tikku kiinni NUCCIIN  > CTRL + ALT +DEL
        Bootissa hakkaa F10 > Boot valikosta valitaan oikea tikku > Enter

2. Kieli > ENGLISH > KB > FINNISH

3. Valitse > Minimal installation

4. Valitse  > Download updates while installing Ubuntu 

5. Jos levyllä ei ole muita tiedostoja tai käyttöjärjestelmiä valitse > Erase disk and Install Ubuntu  > Continue

6. Valitaan aikavyöhykkeeksi Helsinki

7. Anna haluamasi nimi tässä esimerkissä: NUCSRV
        Computer name tulee automaattisesti muotoon nucsrv-NUC*malli*
        Anna haluamasi käyttäjänimi username: nucsrv
        Anna salasana.
        Valitse automaattinen sisäänkirjautuminen > Next.
8. Restart now  

// OPTIO // UBUNTU LIVEPATCH

1. Ota käyttöön welcome to ubuntu popupissa.
2. Luo Ubuntu single sign on tunnus. >  Vahvista sähköpostiosoite
3. Palaa livepatch valikkoon > Kirjaudu single sign on sisään. > Vahvista käyttäjän salasanalla >
4. Ota livepatch käyttöön > Luo keyring salasana. 
5. Jatka popupista eteenpäin > Älä lähetä tietoja > Älä anna sijaintia.
6. Avaa guin haku: Livepatch > Varmista että slider on päällä. Jos ei ole laita.

PAKETTIEN JA JAKELUN PÄIVITYS.

Tästä eteenpäin suurin osa kirjoitettavista komennoista vaatii pääkäyttäjän salasanan.
Komento sudo (SuperUserDO) kertoo että se suoritetaan pääkäyttäjänä.

Jos haluat nopeuttaa prosessia voit kirjoittaa sudo –s ja antaa kerralla koko istunnolle pääkäyttäjän oikeudet. Tällöin komennoista voidaan poistaa ”sudo” edestä.

Jatkossa komennot kirjoitetaan seuraavasti: kirjoitetaan Komento + enter, tarvitaessa vahvistetaan > Y

1. Avaa Ubuntussa console >  CTRL + ALT + T
2. Kirjoita  seuraavassa järjestyksessä:

sudo apt update

sudo apt upgrade 

sudo apt-get dist-upgrade 

dist-upgrade saattaa käynnistää palvelimen uudelleen  automaattisesti jos uudempi jakeluversio löytyy.

IP OSOITTEEN MÄÄRITYS

Tässä kohtaa on hyvä määrittää oman kotireittimen DHCP poolin ulkopuolinen staattinen IP palvelimelle. Valitse haluamasi mikä tahansa IP osoite joka ei ole DHCP jakelussa. Lisää aliverkon peite ( Netmask ) ja oletusyhdyskäytävä ( Gateway ) oman reitittimen tietojen perusteella.

Alla olevat  ovat esimerkkejä. DNS varaosoitteeksi on lisätty googlen DNS palvelin 8.8.8.8.

Etene Ubuntun työpöytäliittymässsä tämän ohjeen mukaan:

IPV4 > IPv4 Method > Manual.

IP                 Netmask         Gateway
192.168.1.100     255.255.255. 192.168.1.1
DNS automatic > OFF
DNS: 192.168.1.1, 8.8.8.8

->  Käynnistä ETH sovitin uudelleen.

// OPTIO //  BT/WIFI OFF

Kytketään NUCIN Wifi ja BT  BIOS:sta pois päältä.
 
1. Boot > F2 > BIOS > Advanced > Devices and peripherals >
Onboard Devices > Rasti pois WLAN > Rasti pois Bluetooth > F10 >Y

SSH ASENNUS

1. Avaa console > CTRL + ALT + T
2. Kirjoita seuraavassa järjestyksessä:

sudo apt install openssh-server

sudo systemctl enable ssh

sudo ufw allow ssh

sudo ufw enable


SIIRTYMINEN SSH YHTEYDEN KAUTTA PALVELIMEEN

Tästä vaiheesta eteenpäin kaikki komennot annetaan Puttyn kautta consolessa jollei muuten mainita.

SSH YHTEYDEN AVAAMINEN


1. Varmista että hallitseva kone on samassa lähiverkossa palvelimesi kanssa.
        Windows > CMD > ARP –A = Pitäisi löytyä palvelimen IP.

2.    Avaa hallitsevalla koneella Putty > Anna NUC:in IP-osoite > Port: 22 > Kyllä > Hyväksy avain.
       Console ikkuna avautuu > Anna palvelimen käyttäjätunnus ja salasana > Enter.

UBUNTUN UNITILAN POISTO

Kirjoita seuraava:

systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

> Vahvista salasanalla.

DOCKER ASENNUS


1. Kirjoita ja vahvista salasanalla:

sudo –s

2. Kirjoita:

apt-get update

3.

apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common

Hyväksy > Y

4.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

5.

add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \ stable"

6.

apt-get update

7.

apt-get install docker-ce docker-ce-cli containerd.io

8. Vahvista > Y

PORTAINER ASENNUS

1. Kirjoita:

sudo docker volume create portainer_data

2.
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

3. Nyt portainer on asennettuna. 

4. Avaa samalla koneella selain jolla hallitset SSH kautta palvelinta.

5. Siirry  http://192.168.1.100:9000
        Korvaa IP osoite oman NUCIN osoitteella.

6. Luo käyttäjätunnus admin -> anna salasana. 

7. Portainer kysyy mitä ympäristöä halutaan hallita 

8. Valitaan LOCAL > Connect 

9. Älä tallenna selaimeen salasanaa.


// OPTIO // Vanhemman version 1.2.4 asennuskomento > Käytä vain jos uudempi ei toimi.

docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

// OPTIO //  PORTAINER GUI PAIKALLISESTI PALVELIMEN SELAIMELLA.

1. Kirjaudu palvelimelle paikallisesti 
2. Avaa Firefox 
3. Siirry http://localhost:9000 tai http://:9000
4. Luo käyttäjätunnus admin -> anna salasana. Kirjaa ylös ja tallenna firefoxiin kun kysyy.
5. Kysyy mitä ympäristöä halutaan hallita 
6. Valitaan LOCAL > Connect

HOME ASSISTANT CORE
ASENNUS

Info. Käytetään jatkossa polkua /srv/homeautomation kaikkeen docker konttien sisällön säilömiseen mitä kotiautomaation parissa tullaan tarvitsemaan. 


1. Kirjoita

docker run -d --name="home-assistant" --restart unless-stopped -v /srv/homeautomation/hass-config:/config -v /etc/localtime:/etc/localtime:ro --net=host homeassistant/home-assistant:stable

2. Tarkasta että tuli uusin image. Kirjoita:

docker pull homeassistant/home-assistant:stable

Kun image on tuorein järjestelmä. ilmoittaa: Image is up to date for homeassistant/home-assistant:stable

3. Home Asssistan on nyt valmiina ensimäärityksiä varten. Tässä vaiheessa kirjoittamalla 192.168.1.100:8123         Korvaa NUC palvelimesi IP-osoitteella. Et vielä pääse hallitsevalta koneelta lähiverkon kautta asennukseen käsiksi.
        Korjataan tämä > Katso seuraava kohta.

PALOMUURIN
PORTTIAVAUS

1.    Kirjoita:

sudo ufw allow 8123/tcp

2. Nyt pääset kirjautumaan millä tahansa lähiverkkosi koneeen selaimella osoitteesta
         http://192.168.1.100:8123/   Korvaa palvelimesi IP osoitteella.

HOME ASSISTANT
PERUS ASETUKSET


1. Avaa selaimella http://192.168.1.100:8123/
2. Anna Nimi, Käyttäjätunnus, Salasana > Seuraava.
3. Anna haluamasi kodin nimi. 
4. Jos haluat käyttää läsnäoloon perustuvia palveluita Raahaa kartalta sijainti kodillesi. 
        Itselleni riittää pelkät säätiedot joten en tarkkaa sijaintia halunnut antaa.
5. Valitse Lämpötilanäytöksi Celsius > Seuraava
6. Valmis.

Jos kaikki meni kuin elokuvissa, niin nyt sinulla pitäisi olla Ubuntu palvelin asennettuna perusasetuksilla.
Palvelimella toimii Docker, Portainer, Homeassistant Core. Annathan palautetta ohjeesta! 👌










Kommentit