Sa artikulong ito, susubukan kong ilarawan ang hakbang-hakbang na proseso ng pag-install ng isang test server ng isang mahusay na proyekto
Ang layunin ng artikulo ay itulak ang mga kasamahan na tumanggi na pamahalaan ang mga device sa network gamit ang mga kakila-kilabot na rake at saklay, sa anyo ng mga self-written na script, Dude, Ansible, atbp. At, sa pagkakataong ito, upang maging sanhi ng mga paputok at mass rejoicing sa mga parisukat.
0. Ang pagpipilian
Bakit freeacs at hindi genie-acs ang binanggit sa
Kasi may mga Spanish publication sa genie-acs na may mikrotik. Nandito na sila
1. Pag-install ng Freeacs
Mag-i-install kami sa Centos7, at dahil ang mga device ay nagpapadala ng maraming data, at ang ACS ay aktibong nagtatrabaho sa database, hindi kami magiging sakim sa mga mapagkukunan. Para sa kumportableng trabaho, maglalaan kami ng 2 CPU core, 4GB RAM at 16GB ng fast ssd raid10 storage. Mag-i-install ako ng mga freeac sa lalagyan ng Proxmox VE lxc, at maaari kang magtrabaho sa anumang tool na maginhawa para sa iyo.
Huwag kalimutang itakda ang tamang oras sa makina na may ACS.
Magiging isang pagsubok ang system, kaya huwag tayong maging matalino, at gamitin lang ang mabait na ibinigay na script ng pag-install, tulad ng dati.
wget https://raw.githubusercontent.com/freeacs/freeacs/master/scripts/install_centos.sh
chmod +x install_centos.sh
./ install_centos.sh
Sa sandaling matapos ang script, maaari kang agad na makapasok sa web interface sa pamamagitan ng ip ng makina, kasama ang mga kredensyal na admin/freeacs
Narito ang napakagandang minimalistic na interface, at kung gaano kaganda at kabilis ang lahat
2. Paunang setup ng freeacs
Ang pangunahing yunit ng kontrol para sa ACS ay ang yunit o CPE (Customer Premises Equipment). At ang pinakamahalaga, ang kailangan nating pamahalaan ang mga unit ay ang Uri ng Unit nila, i.e. isang modelo ng hardware na tumutukoy sa isang hanay ng mga na-configure na parameter para sa isang unit at sa software nito. Ngunit hangga't hindi natin alam kung paano makakuha ng bagong Uri ng Unit nang tama, pinakamahusay na tanungin ang unit mismo tungkol dito sa pamamagitan ng pag-on sa Discovery Mode.
Sa produksyon, ang mode na ito ay ganap na imposibleng gamitin, ngunit kailangan nating simulan ang makina sa lalong madaling panahon at makita ang mga kakayahan ng system. Ang lahat ng mga pangunahing setting ay naka-imbak sa /opt/freeacs-*. Samakatuwid, binuksan namin
vi /opt/freeacs-tr069/config/application-config.conf
, nahanap namin
discovery.mode = false
at magpalit sa
discovery.mode = true
Bilang karagdagan, nais naming dagdagan ang maximum na laki ng file na gagana sa nginx at mysql. Para sa mysql, idagdag ang linya sa /etc/my.cnf
max_allowed_packet=32M
, at para sa nginx, idagdag sa /etc/nginx/nginx.conf
client_max_body_size 32m;
sa seksyong http. Kung hindi, makakapagtrabaho kami sa firmware na hindi hihigit sa 1M.
Nag-reboot kami, at handa kaming magtrabaho kasama ang mga device.
At sa papel ng aparato (CPE) magkakaroon tayo ng isang workaholic na sanggol
Bago ang isang pagsubok na koneksyon, ipinapayong manu-manong i-configure ang CPE sa pinakamababang configuration ng gumagana upang ang mga parameter na gusto mong i-configure sa hinaharap ay hindi walang laman. Para sa isang router, maaari mong minimally paganahin ang isang dhcp client sa ether1, i-install ang tr-069client package at magtakda ng mga password.
3. Ikonekta ang Mikrotik
Ito ay kanais-nais na ikonekta ang lahat ng mga yunit gamit ang isang wastong serial number bilang isang pag-login. Pagkatapos ang lahat ay magiging malinaw sa iyo sa mga tala. May nagpapayo na gumamit ng WAN MAC - huwag maniwala. May gumagamit ng karaniwang pares ng pag-log in / pass para sa lahat - laktawan sila.
Pagbubukas ng tr-069 log upang subaybayan ang "negosasyon"
tail -f /var/log/freeacs-tr069/tr069-conversation.log
Buksan ang winbox, menu item TR-069.
AC URL: http://10.110.0.109/tr069/prov
(palitan ng iyong IP)
Username: 9249094C26CB (kopyahin ang serial mula sa system>routerboard)
Password: 123456 (hindi kailangan para sa pagtuklas, ngunit kailangan)
Hindi namin binabago ang Pana-panahong agwat ng impormasyon. Ibibigay namin ang setting na ito sa pamamagitan ng aming ACS
Nasa ibaba ang mga setting para sa malayuang pagsisimula ng koneksyon, ngunit hindi ko makuha ang mikrotik upang gumana dito nang mabilis. Bagama't gumagana ang remote na kahilingan sa labas ng kahon sa mga telepono. Kailangang malaman ito.
Pagkatapos ng pagpindot sa pindutang Ilapat, mapapalitan ang data sa terminal, at sa web interface ng Freeacs makikita mo ang aming router na may awtomatikong nilikhang Uri ng Unit na "hAPaclite".
Ang router ay konektado. Maaari mong tingnan ang awtomatikong ginawang Uri ng Unit. Pagbubukas Easy Provisioning > Unit Type > Unit Type Overview > hAPaclite
. Anong wala! Hanggang sa 928 na mga parameter (namasid ako sa shell). Marami o kaunti - malalaman natin ito sa ibang pagkakataon, ngunit sa ngayon ay titingnan lang natin nang mabilis. Iyan ang ibig sabihin ng Uri ng Unit. Ito ay isang listahan ng mga sinusuportahang opsyon na may mga susi ngunit walang mga halaga. Ang mga halaga ay nakatakda sa mga antas sa ibaba - Mga Profile at Unit.
4. I-configure ang Mikrotik
Oras na para mag-download
At ang ating sarili, sa web interface, mag-click sa lapis sa tabi ng aming unit at pumunta sa unit configuration mode. Mukhang ganito:
Suriin natin sandali kung ano ang kawili-wili sa pahinang ito:
Bloke ng pagsasaayos ng unit
- Profile: Ito ang profile sa loob ng Uri ng Unit. Ang hierarchy ay ganito:
UnitType > Profile > Unit
. Iyon ay, maaari tayong lumikha, halimbawa, mga profilehAPaclite > hotspot
ΠΈhAPaclite > branch
, ngunit sa loob ng modelo ng device
Block Provisioning na may mga pindutan
Ang mga pahiwatig ay nagpapahiwatig na ang lahat ng mga pindutan sa Provisioning block ay maaaring agad na ilapat ang configuration sa pamamagitan ng ConnectionRequestURL. Ngunit, tulad ng sinabi ko sa itaas, hindi ito gumagana, kaya pagkatapos ng pagpindot sa mga pindutan, kakailanganin mong i-restart ang tr-069 client sa mikrotik upang manu-manong simulan ang probisyon.
- Freq/Spread: Ilang beses sa isang linggo ihahatid ang configuration Β± % para mabawasan ang load sa server at mga channel ng komunikasyon. Bilang default, nagkakahalaga ito ng 7/20, i.e. araw-araw Β± 20% at ipahiwatig kung paano ito sa mga segundo. Sa ngayon, walang punto sa pagbabago ng dalas ng paghahatid, dahil. magkakaroon ng dagdag na ingay sa mga log at hindi palaging inaasahang aplikasyon ng mga setting
Provisioning history block (huling 48 oras)
- Sa hitsura, ang kuwento ay tulad ng isang kuwento, ngunit sa pamamagitan ng pag-click sa pamagat, makakakuha ka ng isang maginhawang tool sa paghahanap ng database na may regexp at goodies
Parameter Block
Ang pinakamalaki at pinakamahalagang bloke, kung saan, sa katunayan, ang mga parameter para sa yunit na ito ay itinakda at binabasa. Ngayon nakikita lamang namin ang pinakamahalagang mga parameter ng system, kung wala ang ACS ay hindi maaaring gumana sa yunit. Ngunit naaalala namin na mayroon kaming mga ito sa Uri ng Unit - 928. Tingnan natin ang lahat ng mga halaga, at magpasya kung ano ang kinakain ng Mikrotik.
4.1 Pagbasa ng mga parameter
Sa Provisioning block, i-click ang Basahin lahat na button. Ang bloke ay may pulang inskripsiyon. May lalabas na column sa kanan CPE (kasalukuyang) halaga. Binago ang ProvisioningMode sa READALL sa mga setting ng system.
At... walang mangyayari maliban sa isang mensahe sa System.X_FREEACS-COM.IM.Message Kick failed at...
.
I-restart ang TR-069 client o i-reboot ang router, at patuloy na i-refresh ang browser page hanggang makuha mo ang mga parameter sa masasayang kulay abong mga kahon sa kanan
Kung may gustong humigop ng lumang napapanahong paraan, ang mode na ito ay inilalarawan sa manual bilang 10.2 Inspection mode. Ito ay lumiliko at gumagana nang medyo naiiba, ngunit ang kakanyahan ay lubos na inilarawan
Ang READALL mode ay i-off ang sarili pagkatapos ng 15 minuto, at susubukan naming malaman kung ano ang kapaki-pakinabang dito, at kung ano ang maaaring itama "on the fly" habang tayo ay nasa mode na ito.
Maaari mong baguhin ang mga IP address, paganahin / huwag paganahin ang mga interface, mga panuntunan sa firewall, na may mga komento (kung hindi man ay isang kumpletong gulo), Wi-Fi, at iba pa maliliit na bagay.
Iyon ay, hindi pa posible na maayos na i-configure ang mikrotik gamit lamang ang mga tool na TR-069. Ngunit maaari mong subaybayan nang mahusay. Available ang mga istatistika sa mga interface at ang kanilang katayuan, libreng memorya, atbp.
4.2 Paghahatid ng mga parameter
Subukan nating ihatid ang mga parameter sa router, sa pamamagitan ng tr-069, sa "natural" na paraan. Ang unang biktima ay ang Device.DeviceInfo.X_MIKROTIK_SystemIdentity. Natagpuan namin ito sa mga parameter ng All unit. Tulad ng nakikita mo, hindi ito nakatakda. Nangangahulugan ito na ang anumang yunit ay maaaring magkaroon ng anumang Pagkakakilanlan. Sapat na ang pagpaparaya dito!
Sundutin namin ang isang daw sa column ng create, itakda ang pangalang Mr.White at sundutin ang pindutan ng Update parameters. Ano ang susunod na mangyayari, nahulaan mo na. Sa susunod na sesyon ng komunikasyon sa punong-tanggapan, dapat baguhin ng router ang Pagkakakilanlan nito.
Ngunit ito ay hindi sapat para sa amin. Ang isang parameter tulad ng Identity ay mainam na laging nasa kamay kapag naghahanap ng tamang unit. Sinundot namin ang pangalan ng parameter at inilalagay ang mga checkbox na Display (D) at Searchable (S) doon. Ang parameter key ay binago sa RWSD (Tandaan, ang mga pangalan at key ay nakatakda sa pinakamataas na antas ng Uri ng Unit)
Ang halaga ay hindi lamang ipinapakita sa pangkalahatang listahan ng paghahanap, ngunit magagamit din para sa paghahanap sa Support > Search > Advanced form
Sinimulan namin ang probisyon at tinitingnan ang Pagkakakilanlan. Hello Mr.White! Ngayon ay hindi mo na mababago ang iyong pagkakakilanlan sa iyong sarili habang tumatakbo ang tr-069client
4.3 Pagpapatupad ng mga script
Dahil nalaman natin na walang paraan kung wala sila, tuparin natin.
Ngunit bago tayo magsimulang magtrabaho sa mga file, kailangan nating iwasto ang direktiba public.url
sa file /opt/freeacs-tr069/config/application-config.conf
Pagkatapos ng lahat, mayroon pa rin kaming naka-install na configuration ng pagsubok na may isang script. Hindi nakakalimutan?
# --- Public url (used for download f. ex.) ---
public.url = "http://10.110.0.109"
public.url: ${?PUBLIC_URL}
I-reboot ang ACS at dumiretso sa Files & Scripts
.
Ngunit ang binubuksan sa amin ngayon ay kabilang sa Uri ng Unit, i.e. sa buong mundo sa lahat ng mga router ng hAP ac lite, maging ito ay isang branch router, hotspot o capsman. Hindi pa namin kailangan ang ganoong mataas na antas, samakatuwid, bago gumawa ng mga script at file, dapat kang lumikha ng isang profile. Maaari mo itong tawagan sa iyong sarili, bilang ang "posisyon" ng device.
Gawin nating time server ang baby natin. Disenteng posisyon na may hiwalay na software package at isang maliit na bilang ng mga parameter. Pumunta tayo sa Easy Provisioning > Profile > Create Profile
at gumawa ng profile sa Unit Type:hAPaclite timeserver. Wala kaming anumang mga parameter sa default na profile, kaya walang dapat kopyahin Kopyahin ang mga parameter mula sa: "huwag kopyahin..."
Wala pang mga parameter dito, ngunit posibleng itakda ang mga gusto naming makita sa ibang pagkakataon sa aming mga time server na hinulma mula sa hAPaclite. Halimbawa, ang mga pangkalahatang address ng mga NTP server.
Pumunta tayo sa configuration ng unit, at ilipat ito sa profile ng timeserver
Sa wakas pupunta tayo Files & Scripts
, gumawa ng mga script, at dito naghihintay sa amin ang mga kamangha-manghang maginhawang tinapay.
Upang maisagawa ang isang script sa isang yunit, kailangan nating pumili Uri:TR069_SCRIPT Π° Pangalan ΠΈ pangalan ng target dapat may .alter extension
Kasabay nito, para sa mga script, hindi katulad ng software, maaari kang mag-upload ng natapos na file, o isulat/i-edit lang ito sa field. Nilalaman. Subukan nating magsulat doon.
At para makita mo agad ang resulta - idagdag ang vlan router sa ether1
/interface vlan
add interface=ether1 name=vlan1 vlan-id=1
Magmaneho, pindutin Mag-upload at tapos na. Ang script namin vlan1.alter
naghihintay sa mga pakpak.
Tara, tayo na? Hindi. Kailangan din naming magdagdag ng grupo para sa aming profile. Ang mga pangkat ay hindi kasama sa hierarchy ng kagamitan, ngunit kinakailangan upang maghanap ng mga unit sa UnitType o Profile at kinakailangan para sa pagpapatupad ng script sa pamamagitan ng Advanced na Provisioning. Karaniwan, ang mga pangkat ay nauugnay sa mga lokasyon, at may nested na istraktura. Gumawa tayo ng grupong Russia.
Isipin na pinaliit lang namin ang aming paghahanap mula sa "Lahat ng mga server ng oras ng mundo sa hAPaclite" hanggang sa "Lahat ng mga server ng oras ng Russia sa hAPaclite". Mayroon pa ring malaking layer ng lahat ng bagay na kawili-wili sa mga grupo, ngunit wala kaming oras. Pumasok tayo sa mga script.
Advanced Provisioning > Job > Create Job
Dahil kami ay nasa Advanced na mode, pagkatapos ng lahat, dito maaari mong tukuyin ang isang bungkos ng iba't ibang mga kondisyon para sa pagsisimula ng gawain, pag-uugali ng error, pag-uulit at pag-timeout. Inirerekomenda kong basahin ang lahat ng ito sa mga manwal o talakayin ito sa ibang pagkakataon kapag ipinapatupad ito sa produksyon. Sa ngayon, itakda na lang natin ang n1 sa Stop rules para matigil ang gawain sa sandaling makumpleto ito sa ating 1st unit.
Pinupunan namin ang kinakailangang impormasyon, at ang natitira na lang ay ilunsad ito!
Pindutin ang START at maghintay. Ngayon ang counter ng mga device na pinatay ng underdebugged na script ay tatakbo nang mabilis! Syempre hindi. Ang ganitong mga gawain ay ibinibigay sa loob ng mahabang panahon, at ito ang kanilang pagkakaiba mula sa mga script, Ansible, at iba pa. Ang mga unit mismo ay nag-a-apply para sa mga gawain sa isang iskedyul o kapag lumilitaw ang mga ito sa network, sinusubaybayan ng ACS kung aling mga unit ang nakatanggap na ng mga gawain, at kung paano sila natapos, at isinusulat ito sa mga parameter ng unit. Mayroong 1 unit sa aming grupo, at kung mayroong 1001 sa kanila, sisimulan ng admin ang gawaing ito at mangingisda.
Halika na. I-reboot na ang router o i-restart ang TR-069 client. Dapat maging maayos ang lahat at magkakaroon ng bagong vlan si Mr.White. At ang aming gawain sa Stop rule ay mapupunta sa status na NA-PAUSED. Ibig sabihin, maaari pa rin itong i-restart o baguhin. Kung pinindot mo ang FINISH, ang gawain ay isusulat sa archive
4.4 Pag-update ng software
Ito ay isang napakahalagang punto, dahil ang Mikrotik firmware ay modular, ngunit ang pagdaragdag ng mga module ay hindi nagbabago sa pangkalahatang bersyon ng firmware ng device. Ang aming ACS ay normal at hindi sanay dito.
Ngayon ay gagawin namin ito sa mabilis at maduming istilo at itulak kaagad ang NTP module sa pangkalahatang firmware, ngunit sa sandaling ma-update ang bersyon sa device, hindi na kami makakapagdagdag ng isa pang module sa parehong paraan.
Sa produksyon, mas mainam na huwag gumamit ng ganoong trick, at mag-install ng mga module na opsyonal para sa Uri ng Unit na may mga script lamang.
Kaya, ang unang bagay na kailangan nating gawin ay maghanda ng mga software package ng mga kinakailangang bersyon at arkitektura, at ilagay ang mga ito sa ilang available na web server. Para sa pagsubok, pupunta ang sinumang makakaabot sa aming Mr.White, at para sa produksyon, mas mahusay na bumuo ng isang auto-update na salamin ng kinakailangang software, na hindi nakakatakot na ilagay sa web
Mahalaga! Huwag kalimutang palaging isama ang tr-069client package sa mga update!
Tulad ng nangyari, ang haba ng landas patungo sa mga packet ay napakahalaga! Kapag sinubukan kong gumamit ng isang bagay tulad ng http://192.168.0.237/routeros/stable/mipsbe/routeros-mipsbe-6.45.6.npk
, ang mikrotik ay nahulog sa isang paikot na koneksyon sa mapagkukunan, na nagpapadala ng paulit-ulit na TRANSFERCOMPLETE na mga log sa tr-069. At nag-aksaya ako ng ilang nerve cell na sinusubukang malaman kung ano ang mali. Samakatuwid, habang inilalagay namin ito sa ugat, hanggang sa paglilinaw
Kaya, dapat tayong magkaroon ng tatlong npk file na magagamit sa pamamagitan ng http. Nakuha ko ito ng ganito
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
Ngayon ito ay kailangang ma-format sa isang xml file na may FileType = "1 Firmware Upgrade Image", na ipapakain namin sa Mikrotik. Hayaan ang pangalan ay ros.xml
Ginagawa namin ayon sa mga tagubilin mula sa
<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>
Ang isang kakulangan ay maliwanag Username/Password
para ma-access ang download server. Maaari mong subukang ipasok ito tulad ng sa talata A.3.2.8 ng tr-069 protocol:
<link>
<url>http://192.168.0.237/routeros/stable/mipsbe/ntp-6.45.6-mipsbe.npk</url>
<Username>user</Username>
<Password>pass</Password>
</link>
O tanungin ang mga opisyal ng Mikrotik nang direkta, pati na rin ang tungkol sa maximum na haba ng landas sa * .npk
Pumunta kami sa kilala Files & Scripts
, at lumikha ng SOFTWARE file doon gamit ang pangalan:ros.xml, Pangalan ng Target:ros.xml at Bersyon:6.45.6
Pansin! Ang bersyon ay dapat na tinukoy dito nang eksakto sa format kung saan ito ay ipinapakita sa device at ipinasa sa parameter System.X_FREEACS-COM.Device.SoftwareVersion
.
Pinipili namin ang aming xm-file para sa paglo-load at tapos ka na.
Ngayon, marami na tayong paraan para i-update ang device. Sa pamamagitan ng Wizard sa pangunahing menu, sa pamamagitan ng Advanced na Provisioning at mga gawain na may uri ng SOFTWARE, o pumunta lamang sa configuration ng unit at i-click ang I-upgrade. Piliin natin ang pinakamadaling paraan, kung hindi man ay namamaga ang artikulo.
Pinindot namin ang button, simulan ang probisyon at tapos ka na. Nakumpleto na ang test program. Ngayon ay marami na tayong magagawa sa mikrotik.
5. Konklusyon
Noong nagsimula akong magsulat, gusto kong ilarawan muna ang koneksyon ng isang ip-phone, at gamitin ang halimbawa nito upang ipaliwanag kung gaano ito ka-cool kapag ang tr-069 ay gumagana nang madali at walang kahirap-hirap. Ngunit pagkatapos, sa pag-unlad at paghuhukay ko sa mga materyales, naisip ko na para sa mga kumonekta sa Mikrotik, walang telepono ang magiging nakakatakot para sa pag-aaral sa sarili.
Sa prinsipyo, ang Freeacs, na sinubukan namin, ay magagamit na sa produksyon, ngunit para dito kailangan mong i-configure ang seguridad, SSL, kailangan mong i-configure ang microtics para sa autoconfiguration pagkatapos ng pag-reset, kailangan mong i-debug ang tamang pagdaragdag ng Uri ng Unit, i-disassemble ang gawain ng mga webservice at fusion shell, at marami pang iba. Subukan, mag-imbento, at magsulat ng isang sumunod na pangyayari!
Lahat, salamat sa iyong pansin! Ako ay natutuwa sa mga pagwawasto at komento!
Listahan ng mga ginamit na materyales at kapaki-pakinabang na mga link:
Pinagmulan: www.habr.com