# Circle Agent #
VM kontextualizálását végzi. A felhő menedzserrel egy virtuális soros vonalon tartja a kapcsolatot.

## Linux ##
 * virtualenv-ben fut szervizként
 * Fájlok
   - /root/agent/*
   - /usr/bin/vm_renewal
   - /etc/systemd/system/agent.service

### tesztelve ###
   - ubuntu 18.04, 20.04, 22.04, 24.04
   - vannak más és régebbi rendszerekhez is alkatrészek a repóban, de feledésbe merültek...

### Linux install ###
 * Feltételezzük, hogy telepítve vannak a kövekező csomagok:  *git, python3, virtualenv, ifupdown*, ha valmi hányik akkor:
   - sudo apt install git 
   - sudo apt install python3
   - sudo apt install virtualenvwrapper
   - sudo apt install ifupdown   # elvileg együtt tud élni a Network Managerrel 
 * Majd:
   ```
    sudo -i  
    cd /root
    chmod oug+x .    # fontos a pont!
    mkvirtualenv agent
    workon agent
    git clone https://git.ik.bme.hu/CIRCLE3/agent.git
    chmod oug+rx agent
    cd agent
    python agent.py --install
   ```
   Ez utóbbi parancs 
     - bemásolja az agent.service-t  /etc/systemd/system -be, engedélyezi, de nem indítja el
     - bemásolja a vm_renewal-t a /usr/bin/ -be 
 * Célszerűen a cloud usernek van sudo joga jelszó nélkül.
 Ha nincs, akkor a /root/.virtualenv/agent és /root/agent katalógusoknak kereshetőknek kell lenniük, és a benne levő
 fájloknak olvashatóknak kell lennie a cloud user számára, hogy a vm_reneval működjön.
 Ekkor a wm_renewal-bol kivehető a sudo. (Esetleg spec sudo engedéllyel is megoldhato a dolog)

## Windows ##
 * Bundled python alkalmazások, melyekből az első kettő szervízként fut, a harmadik a cloud user belépésekor indul
 * Fájlok:
   - c:\circle\agent-winservice.exe 
   - c:\circle\agemt-wdog-winservice.exe 
   - c:\circle\agent-notify.exe 

### tesztelve ###
   - windows 10, 11
   - Win7-re az ez a verzió nem megy fel. Régit kell használni. 
 
### Windows install ###
 * Adminisztrátori jogokkal:
 * Létre kell hozni egy ```c:\circle``` katalógust
 * Ebbe le kell tölteni a https://git.ik.bme.hu/CIRCLE3/agent/tree/master/win_exe/w10 vagy w11 katalógus fájljait. Célszerű az ```sdelete64```-et és a ```wget```-et is letölteni, de nem szükséges. Majd: 
  ```
   cd:\circle
   .\agent-winservice.exe --startup auto install
   .\agent-wdog-winservice --startup auto install
   .\agent-winservice.exe start
   .\agent-wdog-winservice start
  ```
 * Ha a fentiek sikerültek, akkor be kell konfuigurálni, hogy a circle_notify.exe automatikusan elinduljon amikor a cloud user belép. Ez kicsit trükkös:
   - windows-R (run command): ```shell:starup```
   - erre megnyílik egy foldernek látszó ablak, amibe be kell húzni (link kell!) a ˙˙`circle-notify.exe```-t 

## Egyebek ##

### USER ###
 * cloud 

### hálózat ###
 *  ubuntu alatt a ```/etc/network/interfaces``` fájlt piszkálja **TODO**: ifupdown elfelejtése 

### DNS ###
 * Linux alatt még a ```resolv.conf```-ot piszkálja **TODO?**: átállás systemd-resolved -re
 
#### SMBFS ####
  * mindenhol case sensitive, kivéve a /etc/nsmb.conf-ban es a ~/.nsmbrc-ben, itt a userneveket szigoruan upper-case kell írni
  * az /etc/nsmb.conf-ban vagy a ~/.nsmbrc-ben meg kell ismetelni a [SERVER] es a [SERVER:USER] részeknél az add-t es a password-ot

#### SERIAL ####
  * virtio-s soros port elsődlegesen, utána hw soros
    - windows alatt csak virtio-val teszteltük
  * \r sorveg eseten hibas csomagok, FreeBSD-n \n az elvárt

