V tem članku bom poskušal korak za korakom opisati postopek namestitve testnega strežnika odličnega projekta
Namen članka je spodbuditi kolege, da zavrnejo upravljanje omrežnih naprav s strašnimi grabljami in berglami, v obliki samonapisanih skript, Dude, Ansible itd. In ob tej priložnosti povzročiti ognjemet in množično veselje v kvadrati.
0. Izbira
Zakaj freeacs in ne genie-acs omenjen v
Ker obstajajo španske publikacije o genie-acs z mikrotikom. Tukaj so
1. Namestitev Freeacs
Namestili bomo v Centos7 in ker naprave prenašajo veliko podatkov, ACS pa aktivno dela z bazo podatkov, ne bomo požrešni z viri. Za udobno delo bomo izbrali 2 jedri procesorja, 4 GB RAM-a in 16 GB hitrega pomnilnika ssd raid10. Freeacs bom namestil v vsebnik Proxmox VE lxc, vi pa lahko delate v katerem koli orodju, ki vam ustreza.
Ne pozabite nastaviti pravilnega časa na napravi z ACS.
Sistem bo testni, zato ne bodimo pametni in samo uporabimo prijazno ponujen namestitveni skript, kakršen je.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./ install_centos.sh
Takoj ko se skript konča, lahko takoj vstopite v spletni vmesnik prek ip-ja stroja s poverilnicami admin/freeacs
Tukaj je tako lep minimalističen vmesnik in kako kul in hitro se je vse izkazalo
2. Začetna nastavitev Freeacs
Osnovna krmilna enota za ACS je enota ali CPE (Customer Premises Equipment). In kar je najpomembneje, kar potrebujemo za upravljanje enot, je njihov tip enote, tj. model strojne opreme, ki definira niz nastavljivih parametrov za enoto in njeno programsko opremo. Toda dokler ne vemo, kako pravilno pridobiti novo vrsto enote, bi bilo najbolje, da o tem vprašamo enoto samo tako, da vklopimo način odkrivanja.
V proizvodnji je ta način absolutno nemogoč uporabiti, vendar moramo čim prej zagnati motor in videti zmožnosti sistema. Vse osnovne nastavitve so shranjene v /opt/freeacs-*. Zato odpiramo
vi /opt/freeacs-tr069/config/application-config.conf
, najdemo
discovery.mode = false
in spremenite v
discovery.mode = true
Poleg tega bi radi povečali največje velikosti datotek, s katerimi bosta delovala nginx in mysql. Za mysql dodajte vrstico v /etc/my.cnf
max_allowed_packet=32M
, za nginx pa dodajte v /etc/nginx/nginx.conf
client_max_body_size 32m;
v razdelek http. V nasprotnem primeru bomo lahko delali z vdelano programsko opremo največ 1M.
Ponovno se zaženemo in pripravljeni smo na delo z napravami.
In v vlogi naprave (CPE) bomo imeli deloholičnega dojenčka
Pred preskusno povezavo je priporočljivo, da CPE ročno konfigurirate na minimalno delujočo konfiguracijo, tako da parametri, ki jih želite konfigurirati v prihodnosti, niso prazni. Za usmerjevalnik lahko minimalno omogočite odjemalca dhcp na ether1, namestite paket tr-069client in nastavite gesla.
3. Povežite Mikrotik
Zaželeno je, da vse enote povežete z veljavno serijsko številko kot prijavo. Potem vam bo v logih vse jasno. Nekdo svetuje uporabo WAN MAC - ne verjemite. Nekdo uporablja skupen par prijava/geslo za vse - obidite jih.
Odpiranje dnevnika tr-069 za spremljanje "pogajanj"
tail -f /var/log/freeacs-tr069/tr069-conversation.log
Odprite winbox, postavko menija TR-069.
AC URL: http://10.110.0.109/tr069/prov
(zamenjajte s svojim IP-jem)
Uporabniško ime: 9249094C26CB (kopiraj serijo iz sistema>usmerjevalnik)
Geslo: 123456 (ni potrebno za odkritje, vendar mora biti)
Intervala periodičnega obveščanja ne spreminjamo. To nastavitev bomo izdali prek našega ACS
Spodaj so nastavitve za oddaljeno inicializacijo povezave, vendar mikrotik nisem uspel pripraviti do dela z njim z zamahom. Čeprav zahteva na daljavo deluje takoj po namestitvi s telefoni. Bo treba ugotoviti.
Po pritisku na gumb Uporabi se bodo podatki izmenjali v terminalu, v spletnem vmesniku Freeacs pa si lahko ogledate naš usmerjevalnik s samodejno ustvarjenim tipom enote "hAPaclite".
Usmerjevalnik je povezan. Ogledate si lahko samodejno ustvarjeno vrsto enote. Odpiramo Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite
. Česa ni! Kar 928 parametrov (vohunil sem po lupini). Veliko ali malo – bomo ugotovili kasneje, zaenkrat pa bomo le na hitro pogledali. To pomeni vrsta enote. To je seznam podprtih možnosti s ključi, vendar brez vrednosti. Vrednosti so nastavljene v spodnjih ravneh - Profili in Enote.
4. Konfigurirajte Mikrotik
Čas je za prenos
In sami v spletnem vmesniku kliknemo na svinčnik poleg naše enote in pojdimo v način konfiguracije enote. Videti je takole:
Na kratko analizirajmo, kaj je zanimivega na tej strani:
Blok konfiguracije enote
- Profil: To je profil v vrsti enote. Hierarhija je takšna:
UnitType > Profile > Unit
. To pomeni, da lahko ustvarimo na primer profilehAPaclite > hotspot
иhAPaclite > branch
, vendar znotraj modela naprave
Blokiranje zagotavljanja z gumbi
Namigi namigujejo, da lahko vsi gumbi v bloku Provisioning takoj uporabijo konfiguracijo prek ConnectionRequestURL. Toda, kot sem rekel zgoraj, to ne deluje, zato boste morali po pritisku gumbov znova zagnati odjemalca tr-069 na mikrotiku, da ročno zaženete zagotavljanje.
- Freq/Spread: Kolikokrat na teden dostaviti konfiguracijo ± % za zmanjšanje obremenitve strežnika in komunikacijskih kanalov. Privzeto stane 7/20, tj. vsak dan ± 20 % in namignite, kako je v nekaj sekundah. Zaenkrat še nima smisla spreminjati pogostosti dostave, saj. v dnevnikih bo prišlo do dodatnega šuma in ne vedno pričakovane uporabe nastavitev
Blok zgodovine zagotavljanja (zadnjih 48 ur)
- Na videz je zgodba kot zgodba, vendar s klikom na naslov pridete do priročnega iskalnika po bazi podatkov z regexp in dobrotami
Blok parametrov
Največji in najpomembnejši blok, kjer se pravzaprav nastavljajo in berejo parametri za to enoto. Zdaj vidimo samo najpomembnejše sistemske parametre, brez katerih ACS ne more delovati z enoto. Vendar se spomnimo, da jih imamo v vrsti enote - 928. Poglejmo vse vrednosti in se odločimo, s čim Mikrotik jemo.
4.1 Branje parametrov
V bloku Provisioning kliknite gumb Preberi vse. Blok ima rdeč napis. Na desni strani se prikaže stolpec CPE (trenutna) vrednost. ProvisioningMode spremenjen v READALL v sistemskih nastavitvah.
In ... zgodilo se ne bo nič razen sporočila v System.X_FREEACS-COM.IM.Message Kick failed at...
.
Znova zaženite odjemalca TR-069 ali znova zaženite usmerjevalnik in osvežujte stran brskalnika, dokler ne dobite parametrov v veselih sivih poljih na desni
Če želi kdo popiti požirek starega, je ta način v priročniku opisan kot 10.2 Način pregleda. Vklopi se in deluje malo drugače, vendar je bistvo precej opisano
Način READALL se bo po 15 minutah sam izklopil, mi pa bomo poskušali ugotoviti, kaj je tukaj uporabnega in kaj lahko popravimo sproti, ko smo v tem načinu.
Lahko spremenite IP naslove, omogočite/onemogočite vmesnike, pravila požarnega zidu, ki so s komentarji (sicer popolna zmešnjava), Wi-Fi in tako naprej.
To pomeni, da mikrotik še ni mogoče razumno konfigurirati samo z orodji TR-069. Lahko pa zelo dobro spremljaš. Na voljo je statistika o vmesnikih in njihovem stanju, prostem pomnilniku itd.
4.2 Dostava parametrov
Poskusimo zdaj parametre dostaviti usmerjevalniku, preko tr-069, na "naraven" način. Prva žrtev bo Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Najdemo ga v parametrih enote Vse. Kot lahko vidite, ni nastavljeno. To pomeni, da ima lahko vsaka enota poljubno identiteto. Dovolj toleriranja tega!
Pokukamo v stolpec za ustvarjanje, nastavimo ime Mr.White in pritisnemo gumb Posodobi parametre. Kaj se bo zgodilo naprej, ste že uganili. Pri naslednji komunikacijski seji s centralo mora usmerjevalnik spremeniti svojo identiteto.
Vendar nam to ni dovolj. Parameter, kot je Identity, je dobro imeti vedno pri roki, ko iščete pravo enoto. Pokukamo v ime parametra in tam postavimo potrditvena polja Display (D) in Searchable (S). Ključ parametra se spremeni v RWSD (ne pozabite, imena in ključi so nastavljeni na najvišji ravni tipa enote)
Vrednost zdaj ni samo prikazana na splošnem iskalnem seznamu, ampak je na voljo tudi za iskanje Support > Search > Advanced form
Zaženemo zagotavljanje in pogledamo Identiteto. Pozdravljeni g. White! Zdaj ne boste mogli sami spremeniti svoje identitete, medtem ko tr-069client deluje
4.3 Izvajanje skriptov
Ker smo ugotovili, da brez njih ne gre, jih izpolnimo.
Toda preden začnemo delati z datotekami, moramo popraviti direktivo public.url
v datoteki /opt/freeacs-tr069/config/application-config.conf
Navsezadnje imamo še vedno nameščeno testno konfiguracijo z enim skriptom. Niste pozabili?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}
Ponovno zaženite ACS in pojdite naravnost na Files & Scripts
.
Toda to, kar se odpira pri nas, zdaj spada v Tip enote, tj. globalno na vse usmerjevalnike hAP ac lite, pa naj bo to podružnica usmerjevalnika, dostopna točka ali capsman. Tako visoke ravni še ne potrebujemo, zato morate pred delom s skripti in datotekami ustvariti profil. Lahko ga imenujete sami, kot "položaj" naprave.
Naj bo naš otrok časovni strežnik. Dostojen položaj z ločenim programskim paketom in majhnim številom parametrov. Pojdimo na Easy Provisioning > Profile > Create Profile
in ustvarite profil v vrsti enote: hAPaclite časovni strežnik. V privzetem profilu nismo imeli parametrov, zato ni kaj kopirati Kopiraj parametre iz: "ne kopiraj ..."
Tukaj parametrov sploh še ni, bo pa možno nastaviti tiste, ki jih bomo kasneje želeli videti na naših časovnih strežnikih, oblikovanih iz hAPaclite. Na primer, splošni naslovi strežnikov NTP.
Pojdimo na konfiguracijo enote in jo premaknimo v profil časovnega strežnika
Končno gremo na Files & Scripts
, naredite skripte in tukaj čakamo na neverjetno priročne žemljice.
Če želimo izvesti skript na enoti, moramo izbrati Vrsta: TR069_SCRIPT а Ime и Ime cilja mora imeti končnico .alter
Hkrati lahko za skripte, za razliko od programske opreme, naložite končano datoteko ali jo preprosto napišete / uredite v polje Vsebina. Poskusimo pisati kar tam.
In tako, da lahko takoj vidite rezultat - dodajte usmerjevalnik vlan v ether1
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Vozimo, pritiskamo Pošiljanje in končano. Naš scenarij vlan1.alter
čaka na krila.
No, gremo? št. Prav tako moramo dodati skupino za naš profil. Skupine niso vključene v hierarhijo opreme, ampak so potrebne za iskanje enot v UnitType ali Profile in so potrebne za izvajanje skripta prek Advanced Provisioning. Običajno so skupine povezane z lokacijami in imajo ugnezdeno strukturo. Ustvarimo skupino Rusija.
Predstavljajte si, da smo naše iskanje pravkar zožili z »Vsi svetovni časovni strežniki na hAPaclite« na »Vsi ruski časovni strežniki na hAPaclite«. Pri skupinah je še ogromno vsega zanimivega, a nimamo časa. Pojdimo k scenarijem.
Advanced Provisioning > Job > Create Job
Konec koncev, ker smo v naprednem načinu, lahko tukaj določite kup različnih pogojev za začetek opravila, vedenje napak, ponovitve in časovne omejitve. Priporočam, da vse to preberete v priročnikih ali pa se o tem pogovorite kasneje, ko ga implementirate v proizvodnjo. Za zdaj samo nastavimo n1 na Ustavi pravila, tako da se naloga ustavi takoj, ko je dokončana v naši 1. enoti.
Izpolnimo potrebno in ostane le še zagon!
Pritisnite START in počakajte. Zdaj bo števec naprav, uničenih zaradi premalo razhroščenega skripta, deloval hitro! Seveda ne. Takšne naloge se dajejo dolgo časa in to je njihova razlika od skriptov, Ansiblea itd. Enote se same prijavljajo na naloge po urniku ali kot se pojavljajo v omrežju, ACS spremlja katere enote so že prejele naloge in kako so se končale ter to zapiše v parametre enote. V naši skupini je 1 enota in če bi jih bilo 1001, bi admin začel to nalogo in šel na ribolov
pridi no Ponovno zaženite usmerjevalnik ali znova zaženite odjemalca TR-069. Vse bi moralo iti gladko in Mr.White bo dobil nov vlan. In naše opravilo pravila Ustavi bo prešlo v stanje ZAUSTAVLJENO. To pomeni, da ga je še vedno mogoče znova zagnati ali spremeniti. Če pritisnete FINISH, bo opravilo odpisano v arhiv
4.4 Posodabljanje programske opreme
To je zelo pomembna točka, saj je vdelana programska oprema Mikrotika modularna, vendar dodajanje modulov ne spremeni celotne različice vdelane programske opreme naprave. Naš ACS je normalen in tega ni vajen.
Zdaj bomo to storili v slogu quick & dirty in modul NTP takoj potisnili v splošno vdelano programsko opremo, vendar takoj, ko bo različica posodobljena v napravi, ne bomo mogli dodati drugega modula na enak način .
V proizvodnji je bolje, da ne uporabite takšnega trika in namestite module, ki so neobvezni za tip enote, samo s skripti.
Torej, najprej moramo pripraviti programske pakete zahtevanih različic in arhitekture ter jih postaviti na nek razpoložljiv spletni strežnik. Za test bo šel vsakdo, ki lahko doseže našega Mr.White, za proizvodnjo pa je bolje zgraditi samodejno posodabljajoče ogledalo potrebne programske opreme, ki je ni strah dati na splet
Pomembno! Ne pozabite v posodobitve vedno vključiti paketa tr-069client!
Kot se je izkazalo, je dolžina poti do paketov zelo pomembna! Ko poskušam uporabiti nekaj podobnega http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk
, je mikrotik padel v ciklično povezavo z virom in pošiljal ponavljajoče se dnevnike TRANSFERCOMPLETE na tr-069. In porabil sem nekaj živčnih celic, ko sem poskušal ugotoviti, kaj je narobe. Zato, medtem ko ga postavljamo v koren, do razjasnitve
Torej bi morali imeti na voljo tri datoteke npk prek http. Dobil sem takole
http://192.168.0.241/routeros-mipsbe-6.45.6.npk
http://192.168.0.241/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk
http://192.168.0.241/routeros/stable/mipsbe/tr069-client-6.45.6-mipsbe.npk
Zdaj je treba to formatirati v datoteko xml z FileType = "1 Firmware Upgrade Image", ki jo bomo posredovali Mikrotiku. Naj bo ime ros.xml
Delamo po navodilih iz
<upgrade version="1" type="links">
<config />
<links>
<link>
<url>http://192.168.0.241/routeros-mipsbe-6.45.6.npk</url>
</link>
<link>
<url>http://192.168.0.241/ntp-6.45.6-mipsbe.npk</url>
</link>
<link>
<url>http://192.168.0.241/tr069-client-6.45.6-mipsbe.npk</url>
</link>
</links>
</upgrade>
Pomanjkanje je očitno Username/Password
za dostop do strežnika za prenos. Lahko ga poskusite vnesti kot v odstavku A.3.2.8 protokola tr-069:
<link>
<url>http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk</url>
<Username>user</Username>
<Password>pass</Password>
</link>
Ali pa povprašajte neposredno uradnike Mikrotika, pa tudi o največji dolžini poti do * .npk
Gremo k znanemu Files & Scripts
in tam ustvarite datoteko PROGRAMSKA OPREMA z ime:ros.xml, Ime cilja:ros.xml in različica:6.45.6
Pozor! Tu je treba določiti različico točno v obliki, v kateri je prikazana na napravi in posredovana v parametru System.X_FREEACS-COM.Device.SoftwareVersion
.
Izberemo našo datoteko xm za nalaganje in končali ste.
Zdaj imamo veliko načinov za posodobitev naprave. Preko čarovnika v glavnem meniju, prek naprednega zagotavljanja in opravil z vrsto PROGRAMSKA OPREMA ali pa preprosto pojdite na konfiguracijo enote in kliknite Nadgradnja. Izberimo najlažji način, sicer je članek nabrekel.
Pritisnemo gumb, sprožimo zagotavljanje in končali ste. Testni program je zaključen. Zdaj lahko z mikrotikom naredimo več.
5. Zaključek
Ko sem začel pisati, sem želel najprej opisati povezavo ip-telefona in na njegovem primeru razložiti, kako kul je lahko, ko tr-069 deluje enostavno in brez truda. Potem pa, ko sem napredoval in se poglobil v gradivo, sem pomislil, da za tiste, ki so povezovali Mikrotik, noben telefon ne bo strašen za samostojno učenje.
Načeloma je Freeacs, ki smo ga preizkusili, že mogoče uporabljati v produkciji, vendar morate za to konfigurirati varnost, SSL, konfigurirati morate mikrotike za samodejno konfiguracijo po ponastavitvi, razhroščiti morate pravilen dodatek tipa enote, razstaviti delo spletnih storitev in fusion lupine ter še veliko več. Poskusite, izumite in napišite nadaljevanje!
Vsi, hvala za pozornost! Vesela bom popravkov in komentarjev!
Seznam uporabljenih materialov in uporabnih povezav:
Vir: www.habr.com