En ĉi tiu artikolo, mi provos priskribi paŝon post paŝo la procezon de instalado de testa servilo de bonega projekto
La celo de la artikolo estas puŝi kolegojn rifuzi administri retajn aparatojn uzante terurajn rastilojn kaj lambastonojn, en formo de memskribitaj skriptoj, Dude, Ansible, ktp. Kaj, ĉi-okaze, kaŭzi artfajraĵon kaj amasan ĝojon en la kvadratoj.
0 La elekto
Kial freeacs kaj ne genie-acs menciitaj en
Ĉar ekzistas hispanaj eldonaĵoj pri genie-acs kun mikrotik. Ĉi tie ili estas
1. Freeacs-instalado
Ni instalos en Centos7, kaj ĉar la aparatoj transdonas multajn datumojn, kaj ACS aktive laboras kun la datumbazo, ni ne avidas rimedojn. Por komforta laboro, ni elektos 2 CPU-kernojn, 4GB de RAM kaj 16GB de rapida stokado ssd raid10. Mi instalos freeacs en la Proxmox VE lxc-ujo, kaj vi povas labori en iu ajn ilo, kiu taŭgas por vi.
Ne forgesu agordi la ĝustan tempon sur la maŝino kun ACS.
La sistemo estos prova, do ni ne estu saĝaj, kaj nur uzu la afable provizitan instalan skripton, kiel estas.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./ install_centos.sh
Tuj kiam la skripto finiĝas, vi povas tuj eniri la retan interfacon per la ip de la maŝino, kun la akreditaĵoj admin/freeacs
Jen tiel bela minimumisma interfaco, kaj kiel malvarmeta kaj rapide ĉio rezultis
2. Komenca agordo de Freeacs
La baza unuo de kontrolo por ACS estas la unuo aŭ CPE (Customer Premises Equipment). Kaj plej grave, kion ni bezonas por administri unuojn estas ilia Unuo-Tipo, t.e. hardvarmodelo kiu difinas aron de agordeblaj parametroj por unuo kaj ĝia softvaro. Sed kvankam ni ne scias kiel ĝuste komenci novan Unuo-Tipon, plej bone estus demandi la unuon mem pri tio ŝaltante Malkovran Reĝimon.
En produktado, ĉi tiu reĝimo estas absolute neeble uzi, sed ni devas komenci la motoron kiel eble plej baldaŭ kaj vidi la kapablojn de la sistemo. Ĉiuj bazaj agordoj estas konservitaj en /opt/freeacs-*. Tial ni malfermas
vi /opt/freeacs-tr069/config/application-config.conf
, ni trovas
discovery.mode = false
kaj ŝanĝi al
discovery.mode = true
Krome, ni ŝatus pliigi la maksimumajn dosiergrandojn, kun kiuj funkcios nginx kaj mysql. Por mysql, aldonu la linion al /etc/my.cnf
max_allowed_packet=32M
, kaj por nginx, aldonu al /etc/nginx/nginx.conf
client_max_body_size 32m;
al la http-sekcio. Alie, ni povos labori kun firmvaro ne pli ol 1M.
Ni rekomencas, kaj ni pretas labori kun aparatoj.
Kaj en la rolo de la aparato (CPE) ni havos bebon labormaniulon
Antaŭ testa konekto, estas rekomendinde agordi la CPE al la minimuma funkcia agordo por ke la parametroj, kiujn vi volas agordi estonte, ne estu malplenaj. Por enkursigilo, vi povas minimume ebligi dhcp-klienton sur ether1, instali la tr-069client-pakaĵon kaj agordi pasvortojn.
3. Konekti Mikrotik
Estas dezirinde konekti ĉiujn unuojn uzante validan serian numeron kiel ensaluton. Tiam ĉio estos klara al vi en la protokoloj. Iu konsilas uzi WAN MAC - ne kredu ĝin. Iu uzas komunan ensaluton/enirpermesilparon por ĉiuj - preteriru ilin.
Malfermante la tr-069-protokolo por kontroli "intertraktadojn"
tail -f /var/log/freeacs-tr069/tr069-conversation.log
Malfermu winbox, menuero TR-069.
AC URL: http://10.110.0.109/tr069/prov
(anstataŭigi per via IP)
Uzantnomo: 9249094C26CB (kopiu serialon de sistemo> enkursigilo)
Pasvorto: 123456 (ne necesa por malkovro, sed por esti)
Ni ne ŝanĝas la Periodan informan intervalon. Ni eldonos ĉi tiun agordon per nia ACS
Malsupre estas la agordoj por fora inicialigo de la konekto, sed mi ne povis igi mikrotik labori kun ĝi per svingo. Kvankam fora peto funkcias el la skatolo kun telefonoj. Devos eltrovi ĝin.
Post premado de la butono Apliki, datumoj estos interŝanĝitaj en la terminalo, kaj en la retejo de Freeacs vi povas vidi nian enkursigilon kun la aŭtomate kreita Unuo-Tipo "hAPaclite".
La enkursigilo estas konektita. Vi povas rigardi la aŭtomate generitan Unuo-Tipon. Ni malfermas Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite
. Kio ne estas tie! Eĉ 928 parametroj (mi spionis la ŝelon). Multe aŭ malmulte – ni eltrovos ĝin poste, sed nuntempe ni simple rigardos. Tion signifas Unuo-Tipo. Ĉi tio estas listo de subtenataj opcioj kun ŝlosiloj sed neniuj valoroj. Valoroj estas fiksitaj en la subaj niveloj - Profiloj kaj Unuoj.
4. Agordi Mikrotik
Estas tempo por elŝuti
Kaj ni mem, en la retinterfaco, alklaku la krajonon apud nia unuo kaj iru al la unuo-agorda reĝimo. Ĝi aspektas jene:
Ni mallonge analizu kio estas interesa en ĉi tiu paĝo:
Unua agorda bloko
- Profilo: Ĉi tiu estas la profilo en la Unuo-Tipo. La hierarkio estas jena:
UnitType > Profile > Unit
. Tio estas, ni povas krei, ekzemple, profilojnhAPaclite > hotspot
иhAPaclite > branch
, sed ene de la aparato modelo
Bloko-Provizo kun butonoj
Sugestoj sugestas, ke ĉiuj butonoj en la Provizobloko povas tuj apliki la agordon per ConnectionRequestURL. Sed, kiel mi diris supre, ĉi tio ne funkcias, do post premado de la butonoj, vi devos rekomenci la tr-069-klienton ĉe mikrotik por permane komenci provizanton.
- Ofteco/Disvastigo: Kiom da fojoj semajne liveri la agordon ± % por redukti la ŝarĝon sur la servilo kaj komunikaj kanaloj. Defaŭlte, ĝi kostas 7/20, t.e. ĉiutage ± 20% kaj indiku kiel ĝi estas en sekundoj. Ĝis nun, ne utilas ŝanĝi la ofteco de transdono, ĉar. estos ekstra bruo en la protokoloj kaj ne ĉiam atendata apliko de agordoj
Provizanta historia bloko (lastaj 48 horoj)
- En aspekto, la rakonto estas kiel rakonto, sed alklakante la titolon, vi atingas oportunan datumbazan serĉilon kun regexp kaj bonaĵoj.
Blokaj Parametroj
La plej granda kaj plej grava bloko, kie, fakte, la parametroj por ĉi tiu unuo estas fiksitaj kaj legitaj. Nun ni vidas nur la plej gravajn sistemajn parametrojn, sen kiuj ACS ne povas funkcii kun la unuo. Sed ni memoras, ke ni havas ilin en Unuo-Tipo - 928. Ni vidu ĉiujn valorojn, kaj decidu per kio Mikrotik manĝas.
4.1 Legado de la parametroj
En la Provizobloko, alklaku la butonon Legu ĉion. La bloko havas ruĝan surskribon. Kolumno aperos dekstre CPE (nuna) valoro. Ŝanĝis ProvisioningMode al READALL en sistemaj agordoj.
Kaj... nenio okazos krom mesaĝo en System.X_FREEACS-COM.IM.Message Kick failed at...
.
Rekomencu la TR-069-klienton aŭ rekomencu la enkursigilon, kaj daŭre refreŝigu la retumilon ĝis vi ricevos la parametrojn en la gajaj grizaj skatoloj dekstre.
Se iu volas trinki la malnovan spicitan, ĉi tiu reĝimo estas priskribita en la manlibro kiel 10.2 Inspekta reĝimo. Ĝi ŝaltas kaj funkcias iomete alimaniere, sed la esenco estas sufiĉe priskribita
La READALL-reĝimo malŝaltos sin post 15 minutoj, kaj ni provos eltrovi kio estas utila ĉi tie, kaj kio povas esti korektita sur la flugo dum ni estas en ĉi tiu reĝimo.
Vi povas ŝanĝi IP-adresojn, ebligi/malŝalti interfacojn, fajroŝirmigajn regulojn, kiuj estas kun komentoj (alie kompleta malordo), Wi-Fi, ktp.
Tio estas, ankoraŭ ne eblas prudente agordi mikrotik per nur TR-069-iloj. Sed vi povas monitori tre bone. Estas disponeblaj statistikoj pri interfacoj kaj ilia stato, libera memoro ktp.
4.2 Livero de parametroj
Ni provu nun liveri la parametrojn al la enkursigilo, per tr-069, en "natura" maniero. La unua viktimo estos Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Ni trovas ĝin en la parametroj de la All-unuo. Kiel vi povas vidi, ĝi ne estas agordita. Ĉi tio signifas, ke ĉiu unuo povas mem havi ajnan Identecon. Sufiĉe toleri ĉi tion!
Ni pikas en la krea kolumno, starigas la nomon Mr.White kaj pikas la butonon Ĝisdatigu parametrojn. Kio okazos poste, vi jam divenis. Ĉe la sekva komunika sesio kun la ĉefsidejo, la enkursigilo devas ŝanĝi sian Identecon.
Sed ĉi tio ne sufiĉas por ni. Parametro kiel Identeco estas bone havi ĉiam ĉe mano kiam serĉas la ĝustan unuon. Ni enŝovas la nomon de la parametro kaj metas la markobutonojn Montru (D) kaj Serĉeblan (S) tie. La parametroŝlosilo estas ŝanĝita al RWSD (Memoru, nomoj kaj ŝlosiloj estas fiksitaj ĉe la plej alta Unuo-Tipo-nivelo)
La valoro nun estas ne nur montrata en la ĝenerala serĉlisto, sed ankaŭ disponebla por serĉo enen Support > Search > Advanced form
Ni iniciatas provizon kaj rigardas Identecon. Saluton sinjoro White! Nun vi ne povos mem ŝanĝi vian identecon dum tr-069client funkcias
4.3 Efektivigo de skriptoj
Ĉar ni eksciis, ke sen ili ne ekzistas maniero, ni plenumu ilin.
Sed antaŭ ol ni komencas labori kun dosieroj, ni devas korekti la direktivon public.url
en dosiero /opt/freeacs-tr069/config/application-config.conf
Post ĉio, ni ankoraŭ havas testan agordon instalitan kun unu skripto. Ĉu vi ne forgesis?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}
Rekomencu la ACS kaj iru rekte al Files & Scripts
.
Sed kio estas malfermita ĉe ni nun apartenas al la Unuo-Tipo, t.e. tutmonde al ĉiuj hAP ac lite-enkursigiloj, ĉu ĝi estas branĉa enkursigilo, hotspot aŭ kapsman. Ni ankoraŭ ne bezonas tian altan nivelon, tial, antaŭ ol labori kun skriptoj kaj dosieroj, vi devus krei profilon. Vi povas nomi ĝin mem, kiel la "pozicio" de la aparato.
Ni faru nian bebon tempservilo. Deca pozicio kun aparta programaro kaj malgranda nombro da parametroj. Ni iru al Easy Provisioning > Profile > Create Profile
kaj kreu profilon en Unuo-Tipo: hAPclite tempservilo. Ni ne havis iujn parametrojn en la defaŭlta profilo, do estas nenio por kopii Kopiu parametrojn de: "ne kopiu..."
Ĉi tie ankoraŭ ne ekzistas parametroj, sed eblos agordi tiujn, kiujn ni poste volas vidi sur niaj tempserviloj mulditaj el hAPclite. Ekzemple, la ĝeneralaj adresoj de NTP-serviloj.
Ni iru al la unuo-agordo, kaj movu ĝin al la temposervila profilo
Fine ni iras al Files & Scripts
, faru skriptojn, kaj ĉi tie ni atendas mirinde oportunajn bulkojn.
Por ekzekuti skripton sur unuo, ni devas elekti Tipo:TR069_SCRIPT а Nomo и celnomo devas havi .alter etendon
Samtempe, por skriptoj, male al programaro, vi povas aŭ alŝuti finitan dosieron, aŭ simple skribi / redakti ĝin en la kampo Enhavo. Ni provu skribi ĝuste tie.
Kaj por ke vi tuj vidu la rezulton - aldonu la vlan-enkursigilon al ether1
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Ni veturas, ni premas alŝuto kaj farita. Nia skripto vlan1.alter
atendante en la flugiloj.
Nu, ni iru? Ne. Ni ankaŭ devas aldoni grupon por nia profilo. Grupoj ne estas inkluditaj en la ekipaĵhierarkio, sed estas necesaj por serĉi unuojn en UnitType aŭ Profile kaj estas postulataj por manuskripto-ekzekuto tra Advanced Provisioning. Kutime, grupoj estas rilataj al lokoj, kaj havas nestitan strukturon. Ni faru rusan grupon.
Imagu, ke ni ĵus malvastigis nian serĉon de "Ĉiuj mondaj temposerviloj sur hAPaclite" al "Ĉiuj rusaj temposerviloj sur hAPaclite". Estas ankoraŭ grandega tavolo de ĉio interesa kun grupoj, sed ni ne havas tempon. Ni eniru la skriptojn.
Advanced Provisioning > Job > Create Job
Ĉar ni estas en Altnivela reĝimo, post ĉio, ĉi tie vi povas specifi amason da malsamaj kondiĉoj por la komenco de la tasko, erarkonduto, ripetoj kaj tempodaŭroj. Mi rekomendas legi ĉion ĉi en la manlibroj aŭ diskuti ĝin poste kiam oni efektivigas ĝin en produktado. Nuntempe, ni simple agordu n1 al Haltigaj reguloj por ke la tasko ĉesu tuj kiam ĝi estas finita sur nia 1-a unuo.
Ni plenigas la necesajn, kaj restas nur lanĉi!
Premu START kaj atendu. Nun vigle funkcios la nombrilo de aparatoj mortigitaj de la subĉimigita skripto! Kompreneble ne. Tiaj taskoj estas donitaj dum longa tempo, kaj ĉi tio estas ilia diferenco de skriptoj, Ansible, ktp. Unuoj mem petas taskojn laŭ horaro aŭ kiel ili aperas en la reto, ACS konservas trakon de kiuj unuoj jam ricevis taskojn, kaj kiel ili finiĝis, kaj skribas tion al la parametroj de la unuo. Estas 1 unuo en nia grupo, kaj se estus 1001 el ili, la administranto komencus ĉi tiun taskon kaj iru fiŝkapti.
Venu. Jam rekomencu la enkursigilon aŭ rekomencu la klienton TR-069. Ĉio devus iri glate kaj Mr.White ricevos novan vlan. Kaj nia Ĉesiga regulo-tasko eniros la staton PaŭZITA. Tio estas, ĝi ankoraŭ povas esti rekomencita aŭ ŝanĝita. Se vi premas FINISH, la tasko estos forigita al la arkivo
4.4 Ĝisdatigi la programaron
Ĉi tio estas tre grava punkto, ĉar Mikrotik-firmvaro estas modula, sed aldoni modulojn ne ŝanĝas la ĝeneralan firmvarversion de la aparato. Nia ACS estas normala kaj ne kutimas ĉi tion.
Nun ni faros ĝin en la stilo de rapida kaj malpura, kaj tuj puŝos la NTP-modulon en la ĝeneralan firmvaron, sed tuj kiam la versio estos ĝisdatigita sur la aparato, ni ne povos aldoni alian modulon en la sama maniero. .
En produktado, estas pli bone ne uzi tian lertaĵon, kaj instali modulojn kiuj estas laŭvolaj por Unuo-Tipo nur kun skriptoj.
Do, la unua afero, kiun ni devas fari, estas prepari programarajn pakaĵojn de la bezonataj versioj kaj arkitekturo, kaj meti ilin sur iun disponeblan retservilon. Por la testo, ĉiu, kiu povas atingi nian Mr.White iros, kaj por produktado, estas pli bone konstrui aŭtomaten ĝisdatigantan spegulon de la necesa programaro, kiu ne estas timiga por meti en la reto.
Grave! Ne forgesu ĉiam inkluzivi la tr-069client-pakaĵon en ĝisdatigojn!
Kiel rezultis, la longeco de la vojo al la pakaĵoj estas tre grava! Kiam mi provas uzi ion similan http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk
, mikrotik falis en ciklan rilaton kun la rimedo, sendante ripetajn TRANSFERCOMPLETE protokolojn al tr-069. Kaj mi malŝparis kelkajn nervajn ĉelojn provante eltrovi kio estis malĝusta. Tial, dum ni metas ĝin en la radikon, ĝis klarigo
Do, ni devus havi tri npk dosierojn disponeblaj per http. Mi ricevis ĝin tiel
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
Nun ĉi tio devas esti formatita en xml-dosieron kun FileType = "1 Firmware Upgrade Image", kiun ni nutros al Mikrotik. Estu la nomo ros.xml
Ni faras laŭ la instrukcioj de
<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>
Manko evidentiĝas Username/Password
por aliri la elŝutservilon. Vi povas aŭ provi enigi ĝin kiel en paragrafo A.3.2.8 de la protokolo 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>
Aŭ demandu rekte al la funkciuloj de Mikrotik, same kiel la maksimuman vojon al * .npk
Ni iras al la konata Files & Scripts
, kaj kreu PROVARAN dosieron tie per nomo:ros.xml, Cela Nomo:ros.xml kaj versio:6.45.6
Atentu! La versio devas esti specifita ĉi tie precize en la formato, en kiu ĝi estas montrata sur la aparato kaj estas transdonita en la parametro System.X_FREEACS-COM.Device.SoftwareVersion
.
Ni elektas nian xm-dosieron por ŝarĝo kaj vi finis.
Nun ni havas multajn manierojn ĝisdatigi la aparaton. Per la Sorĉisto en la ĉefa menuo, per Altnivela Provizo kaj taskoj kun la PROVARO-tipo, aŭ simple iru al la unuo-agordo kaj alklaku Ĝisdatigi. Ni elektu la plej facilan manieron, alie la artikolo ŝveliĝas.
Ni premas la butonon, komencas provizon kaj vi finis. La testprogramo estis kompletigita. Nun ni povas fari pli kun mikrotik.
5. Konkludo
Kiam mi komencis verki, mi volis unue priskribi la konekton de ip-telefono, kaj uzi ĝian ekzemplon por klarigi kiom malvarmeta ĝi povas esti kiam tr-069 funkcias facile kaj senpene. Sed tiam, dum mi progresis kaj enfosis la materialojn, mi pensis, ke por tiuj, kiuj konektis la Mikrotik, neniu telefono timus por memlernado.
Principe, Freeacs, kiujn ni testis, jam povas esti uzata en produktado, sed por tio vi devas agordi sekurecon, SSL, vi devas agordi mikrotikojn por aŭtomata agordo post rekomencigo, vi devas sencimigi la ĝustan aldonon de Unuo-Tipo, malmunti la laboro de retservoj kaj fuzioŝelo, kaj multe pli. Provu, inventu kaj verku sekvon!
Ĉiuj, dankon pro via atento! Mi ĝojos pri korektoj kaj komentoj!
Listo de uzitaj materialoj kaj utilaj ligiloj:
fonto: www.habr.com